aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--em-format/em-inline-filter.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/em-format/em-inline-filter.c b/em-format/em-inline-filter.c
index 23e5a6f6ed..117ddb5366 100644
--- a/em-format/em-inline-filter.c
+++ b/em-format/em-inline-filter.c
@@ -198,6 +198,7 @@ inline_filter_scan (CamelMimeFilter *f, gchar *in, gsize len, gint final)
while (inptr < inend) {
gint rest_len;
+ gboolean set_null_byte = FALSE;
start = inptr;
@@ -213,10 +214,12 @@ inline_filter_scan (CamelMimeFilter *f, gchar *in, gsize len, gint final)
}
rest_len = inend - start;
- if (inptr < inend)
+ if (inptr < inend) {
*inptr++ = 0;
+ set_null_byte = TRUE;
+ }
- #define restore_inptr() G_STMT_START { if (inptr < inend) inptr[-1] = '\n'; } G_STMT_END
+ #define restore_inptr() G_STMT_START { if (set_null_byte) inptr[-1] = '\n'; } G_STMT_END
switch (emif->state) {
case EMIF_PLAIN: