while(stream.peekc() == ' ') stream.getc(); // whitespace
while (stream.getc() != '\n' && stream.getc() != '\r') { }
byte[] bytes = new byte[octets];
- stream.read(bytes, 0, bytes.length);
+ int numread = 0;
+ while(numread < bytes.length) {
+ int n = stream.read(bytes, numread, bytes.length - numread);
+ if (n == -1) bad("end of stream while reading IMAP qstring");
+ numread += n;
+ }
return new Token(new String(bytes), true);
} else if (c == '\"') {
while(true) {