docs: public char nextChar() throws ProtocolException {
          if (!nextSeen) {
              try {
                  final int read = input.read();
                  final char c = (char) read;
                  buf.append(c);
                  if(read == -1) {
                      dumpLine();
                      throw new ProtocolException("End of stream");
                  }
                  nextChar = c;
                  nextSeen = true;
              } catch (IOException e) {
                  throw new ProtocolException("Error reading from stream.", e);
              }
          }
          return nextChar;
      }