changeset 516:fc13fbca2fff HEAD

Header parser was still a bit wrong.
author Timo Sirainen <tss@iki.fi>
date Fri, 25 Oct 2002 07:16:50 +0300
parents f0e88a0751e5
children ca99b1d7ceef
files src/lib-mail/message-parser.c
diffstat 1 files changed, 11 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-mail/message-parser.c	Fri Oct 25 06:29:53 2002 +0300
+++ b/src/lib-mail/message-parser.c	Fri Oct 25 07:16:50 2002 +0300
@@ -328,13 +328,18 @@
 			continue;
 		}
 
-		if (ret < 0 || (ret == 0 && size == startpos)) {
-			/* EOF and nothing in buffer. the later check is
-			   needed only when there's no message body */
-			break;
+		if (size <= startpos) {
+			if (ret <= 0) {
+				/* EOF and nothing in buffer. the later check is
+				   needed only when there's no message body */
+				break;
+			}
+
+			parse_size = size;
+		} else {
+			parse_size = size-1;
 		}
 
-		parse_size = ret > 0 && size > 0 ? size-1 : size;
 		for (i = startpos; i < parse_size; i++) {
 			if (msg[i] == ':' && colon_pos == UINT_MAX) {
 				colon_pos = i;
@@ -400,7 +405,7 @@
 			}
 		}
 
-		if (i < size) {
+		if (i < parse_size) {
 			/* end of header */
 			startpos = i+1;
 			break;