private int transfer()

in core/src/main/java/org/apache/james/mime4j/codec/QuotedPrintableInputStream.java [149:175]


    private int transfer(
            final int b, final byte[] buffer, final int from, final int to, boolean keepblanks) throws IOException {
        int index = from;
        if (keepblanks && blanks.length() > 0) {
            int chunk = Math.min(blanks.length(), to - index);
            System.arraycopy(blanks.buffer(), 0, buffer, index, chunk);
            index += chunk;
            int remaining = blanks.length() - chunk;
            if (remaining > 0) {
                decodedBuf.append(blanks.buffer(), chunk, remaining);
            }
            blanks.clear();
        } else if (blanks.length() > 0 && !keepblanks) {
            StringBuilder sb = new StringBuilder(blanks.length() * 3);
            for (int i = 0; i < blanks.length(); i++) sb.append(" ").append(blanks.byteAt(i));
            if (monitor.warn("ignored blanks", sb.toString()))
                throw new IOException("ignored blanks");
        }
        if (b != -1) {
            if (index < to) {
                buffer[index++] = (byte) b;
            } else {
                decodedBuf.append(b);
            }
        }
        return index;
    }