diff options
author | Not Zed <NotZed@Ximian.com> | 2002-09-04 11:15:06 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2002-09-04 11:15:06 +0800 |
commit | d27b52023b0ed91a777bc838e4f9b898ca7e2201 (patch) | |
tree | 755ea67494683b7c297115c8a7c7e8f2efdd9350 /camel/camel-mime-parser.c | |
parent | 59ef7e341ba9880c597e87ed5d97cf6d84e288f0 (diff) | |
download | gsoc2013-evolution-d27b52023b0ed91a777bc838e4f9b898ca7e2201.tar.gz gsoc2013-evolution-d27b52023b0ed91a777bc838e4f9b898ca7e2201.tar.zst gsoc2013-evolution-d27b52023b0ed91a777bc838e4f9b898ca7e2201.zip |
If we fake the from eof file boundary, also make sure we say we matched
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.
svn path=/trunk/; revision=17961
Diffstat (limited to 'camel/camel-mime-parser.c')
-rw-r--r-- | camel/camel-mime-parser.c | 13 |
1 files changed, 10 insertions, 3 deletions
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; |