diff options
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 5 | ||||
-rw-r--r-- | camel/camel-mime-parser.c | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 7e65ed67ef..44a7c1b560 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,10 @@ 2002-09-04 Not Zed <NotZed@Ximian.com> + * camel-mime-parser.c (folder_scan_content): If we fake the from + eof file boundary, also make sure we say we matched nothing. Also + make the end case a little more robust to make sure we expired all + hope of finding a sub-boundary. + * providers/imap/camel-imap-store.c, providers/imap/camel-imap-folder.c: Lots of changes, too numerous to list. Changed to use camel-imap-store-summary to cache list diff --git a/camel/camel-mime-parser.c b/camel/camel-mime-parser.c index ed4f50ca46..a51553d33a 100644 --- a/camel/camel-mime-parser.c +++ b/camel/camel-mime-parser.c @@ -1094,14 +1094,18 @@ folder_scan_skip_line(struct _header_scan_state *s, GByteArray *save) s->atleast = 1; + d(printf("skipping line\n")); + while ( (len = folder_read(s)) > 0 && len > s->atleast) { /* ensure we have at least enough room here */ inptr = s->inptr; inend = s->inend-1; c = -1; while (inptr<inend - && (c = *inptr++)!='\n') + && (c = *inptr++)!='\n') { + d(printf("(%2x,%c)", c, isprint(c)?c:'.')); ; + } if (save) g_byte_array_append(save, s->inptr, inptr-s->inptr); @@ -1433,9 +1437,12 @@ folder_scan_content(struct _header_scan_state *s, int *lastone, char **data, int content: /* treat eof as the last boundary in From mode */ - if (s->scan_from && s->eof) + if (s->scan_from && s->eof && s->atleast <= 1) { onboundary = TRUE; - part = s->parts; + part = NULL; + } else { + part = s->parts; + } normal_exit: s->atleast = atleast; s->inptr = inptr; |