code: void append(String s) throws IOException {
      if (closed) throw new IllegalStateException("closed");
  
      if (nextFlush != null) {
        int nextNewline = s.indexOf('\n');
  
        // If s doesn't cause the current line to cross the limit, buffer it and return. We'll decide
        // whether or not we have to wrap it later.
        if (nextNewline == -1 && column + s.length() <= columnLimit) {
          buffer.append(s);
          column += s.length();
          return;
        }
  
        // Wrap if appending s would overflow the current line.
        boolean wrap = nextNewline == -1 || column + nextNewline > columnLimit;
        flush(wrap ? FlushType.WRAP : nextFlush);
      }
  
      out.append(s);
      int lastNewline = s.lastIndexOf('\n');
      column = lastNewline != -1
          ? s.length() - lastNewline - 1
          : column + s.length();
    }
docs: Emit {@code s}. This may be buffered to permit line wraps to be inserted.