public void write()

in main/src/main/java/org/apache/james/jdkim/canon/RelaxedBodyCanonicalizer.java [39:68]


    public void write(byte[] buffer, int off, int len) throws IOException {
        int start = off;
        int end = len + off;
        for (int k = off; k < end; k++) {
            if (pendingSpaces) {
                if (buffer[k] != ' ' && buffer[k] != '\t') {
                    if (buffer[k] != '\r')
                        out.write(' ');
                    pendingSpaces = false;
                    len = len - k + start;
                    start = k;
                }
            } else {
                if (buffer[k] == ' ' || buffer[k] == '\t') {
                    if (k + 1 < end && buffer[k] == ' ' && buffer[k + 1] != ' '
                            && buffer[k + 1] != '\t' && buffer[k + 1] != '\r') {
                        // optimization: we skip single spaces
                        // make sure we optimize only when we are on a space.
                    } else {
                        // compute everything from start to end;
                        out.write(buffer, start, k - start);
                        pendingSpaces = true;
                    }
                }
            }
        }
        if (!pendingSpaces) {
            out.write(buffer, start, len);
        }
    }