diff options
Diffstat (limited to 'mail/em-inline-filter.c')
-rw-r--r-- | mail/em-inline-filter.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mail/em-inline-filter.c b/mail/em-inline-filter.c index 1144cff503..9fc4294139 100644 --- a/mail/em-inline-filter.c +++ b/mail/em-inline-filter.c @@ -228,12 +228,14 @@ emif_scan(CamelMimeFilter *f, char *in, size_t len, int final) int len, linelen; /* check the length byte matches the data, if not, output what we have and re-scan this line */ - len = ((start[0] - ' ') & 077) * 4 / 3; + len = ((start[0] - ' ') & 077); linelen = inptr-start-1; while (linelen > 0 && (start[linelen] == '\r' || start[linelen] == '\n')) linelen--; linelen--; - if (linelen != len) { + linelen /= 4; + linelen *= 3; + if (!(len == linelen || len == linelen-1 || len == linelen-2)) { inptr[-1] = '\n'; emif_add_part(emif, data_start, start-data_start); data_start = start; |