From 6022b2b7816fea84919eef5993363f636bf734dc Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Mon, 3 Sep 2018 09:43:50 +0200
Subject: evo-I#86 - Quoting of plain text mail into HTML mode mangles deeper
levels
Related to https://gitlab.gnome.org/GNOME/evolution/issues/86
diff --git a/src/camel/camel-mime-filter-tohtml.c b/src/camel/camel-mime-filter-tohtml.c
index 07024aa1a..df6283655 100644
--- a/src/camel/camel-mime-filter-tohtml.c
+++ b/src/camel/camel-mime-filter-tohtml.c
@@ -303,6 +303,7 @@ html_convert (CamelMimeFilter *mime_filter,
outend = mime_filter->outbuf + mime_filter->outsize;
if (priv->flags & CAMEL_MIME_FILTER_TOHTML_PRE && !priv->pre_open) {
+ outptr = check_size (mime_filter, outptr, &outend, 6);
outptr = g_stpcpy (outptr, "<pre>");
priv->pre_open = TRUE;
}
@@ -339,13 +340,13 @@ html_convert (CamelMimeFilter *mime_filter,
depth = citation_depth (start, inend, &skip);
while (priv->blockquote_depth < depth) {
- outptr = check_size (mime_filter, outptr, &outend, 30);
- outptr = g_stpcpy (outptr, "<blockquote type=\"cite\">\n");
+ outptr = check_size (mime_filter, outptr, &outend, 25);
+ outptr = g_stpcpy (outptr, "<blockquote type=\"cite\">");
priv->blockquote_depth++;
}
while (priv->blockquote_depth > depth) {
- outptr = check_size (mime_filter, outptr, &outend, 15);
- outptr = g_stpcpy (outptr, "</blockquote>\n");
+ outptr = check_size (mime_filter, outptr, &outend, 14);
+ outptr = g_stpcpy (outptr, "</blockquote>");
priv->blockquote_depth--;
}
#if FOOLISHLY_UNMUNGE_FROM
@@ -463,14 +464,14 @@ html_convert (CamelMimeFilter *mime_filter,
outptr, &outend);
while (priv->blockquote_depth > 0) {
- outptr = check_size (mime_filter, outptr, &outend, 15);
+ outptr = check_size (mime_filter, outptr, &outend, 14);
outptr = g_stpcpy (outptr, "</blockquote>");
priv->blockquote_depth--;
}
if (priv->pre_open) {
/* close the pre-tag */
- outptr = check_size (mime_filter, outptr, &outend, 10);
+ outptr = check_size (mime_filter, outptr, &outend, 7);
outptr = g_stpcpy (outptr, "</pre>");
priv->pre_open = FALSE;
}