aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-format.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-04-30 00:59:00 +0800
committerDan Winship <danw@src.gnome.org>2001-04-30 00:59:00 +0800
commitaeac2bb33b90f205f40d047eb02b3d938287b66e (patch)
tree5394d78f5e0cf7bde8adeefb375d9c243e7bf451 /mail/mail-format.c
parent2a281b9296e36a68c0797cf3a271b964789a1cd9 (diff)
downloadgsoc2013-evolution-aeac2bb33b90f205f40d047eb02b3d938287b66e.tar.gz
gsoc2013-evolution-aeac2bb33b90f205f40d047eb02b3d938287b66e.tar.zst
gsoc2013-evolution-aeac2bb33b90f205f40d047eb02b3d938287b66e.zip
Mojo this a bit so that "\n\n>" gets translated to "<br><blockquote>"
* mail-format.c (handle_text_plain_flowed): Mojo this a bit so that "\n\n>" gets translated to "<br><blockquote>" rather than "<br><br><blockquote>", since the transition to blockquote mode creates a blank line itself. Makes Mozilla-generated flowed replies look better. svn path=/trunk/; revision=9627
Diffstat (limited to 'mail/mail-format.c')
-rw-r--r--mail/mail-format.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/mail/mail-format.c b/mail/mail-format.c
index 036a36a84b..81766f6206 100644
--- a/mail/mail-format.c
+++ b/mail/mail-format.c
@@ -958,8 +958,7 @@ static gboolean
handle_text_plain_flowed (char *buf, MailDisplay *md)
{
char *text, *line, *eol, *p;
- int prevquoting = 0, quoting, len;
- gboolean br_pending = FALSE;
+ int prevquoting = 0, quoting, len, br_pending = 0;
guint32 citation_color = mail_config_get_citation_color ();
mail_html_write (md->html, md->stream,
@@ -985,6 +984,8 @@ handle_text_plain_flowed (char *buf, MailDisplay *md)
"<blockquote>");
prevquoting++;
}
+ if (br_pending)
+ br_pending--;
while (quoting < prevquoting) {
mail_html_write (md->html, md->stream,
"</blockquote>");
@@ -994,13 +995,20 @@ handle_text_plain_flowed (char *buf, MailDisplay *md)
mail_html_write (md->html, md->stream,
"</font>\n");
}
- } else if (br_pending) {
- mail_html_write (md->html, md->stream, "<br>\n");
- br_pending = FALSE;
}
if (*p == ' ')
p++;
+ len = strlen (p);
+ if (len == 0) {
+ br_pending++;
+ continue;
+ }
+
+ while (br_pending) {
+ mail_html_write (md->html, md->stream, "<br>\n");
+ br_pending--;
+ }
/* replace '<' with '&lt;', etc. */
text = e_text_to_html (p, E_TEXT_TO_HTML_CONVERT_SPACES |
@@ -1009,9 +1017,8 @@ handle_text_plain_flowed (char *buf, MailDisplay *md)
mail_html_write (md->html, md->stream, "%s", text);
g_free (text);
- len = strlen (p);
- if (len == 0 || p[len - 1] != ' ' || !strcmp (p, "-- "))
- br_pending = TRUE;
+ if (p[len - 1] != ' ' || !strcmp (p, "-- "))
+ br_pending++;
if (!eol)
break;