fixed some heinous stream bugs
authoradam <adam@megacz.com>
Wed, 7 Jul 2004 08:54:30 +0000 (08:54 +0000)
committeradam <adam@megacz.com>
Wed, 7 Jul 2004 08:54:30 +0000 (08:54 +0000)
darcs-hash:20040707085430-5007d-e4acbb1bd44544998525e79ffbce8a78721ad1a4.gz

src/org/ibex/mail/protocol/IMAP.java

index 28cd51a..c82fd30 100644 (file)
@@ -662,7 +662,12 @@ public class IMAP {
                 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) {