summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-11-14 10:09:14 +0000
committeralecpl <alec@alec.pl>2010-11-14 10:09:14 +0000
commita4c970508b899fd9e467b33319d689470908a24c (patch)
tree75cd5b1166c17a70c09cbba373a942f21b396c82
parentef17c54e739676a73fff69fa85ea39a3a516fcab (diff)
- Re-fix handling of html entity strings in plain/text messages
-rw-r--r--program/include/main.inc4
-rw-r--r--program/steps/mail/func.inc8
2 files changed, 7 insertions, 5 deletions
diff --git a/program/include/main.inc b/program/include/main.inc
index d2cac3227..301e2f716 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -560,9 +560,7 @@ function rep_specialchars_output($str, $enctype='', $mode='', $newlines=TRUE)
$out = strtr($str, $encode_arr);
// avoid douple quotation of &
- // commented out, because this breaks displaying of text with entity strings
- // in text messages.
- //$out = preg_replace('/&amp;([A-Za-z]{2,6}|#[0-9]{2,4});/', '&\\1;', $out);
+ $out = preg_replace('/&amp;([A-Za-z]{2,6}|#[0-9]{2,4});/', '&\\1;', $out);
return $newlines ? nl2br($out) : $out;
}
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 747dce529..c7498d5b1 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -831,8 +831,12 @@ function rcmail_plain_body($body, $flowed=false)
$quote_level = $q;
}
- // quote plain text
- $body = Q(join("\n", $a_lines), 'dummy', false);
+ $body = join("\n", $a_lines);
+
+ // quote plain text (don't use Q() here, to display entities "as is")
+ $table = get_html_translation_table(HTML_SPECIALCHARS);
+ unset($table['?']);
+ $body = strtr($body, $table);
// colorize signature (up to <sig_max_lines> lines)
$len = strlen($body);