summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2008-11-20 10:29:34 +0000
committeralecpl <alec@alec.pl>2008-11-20 10:29:34 +0000
commit300fc65a461ce37999e3f0df991b24ed1b3c1bd3 (patch)
tree7d0b57759414b710f7cc48e58fa2abf65c456003
parent322b79db06cfd0d9a0ca5c63536c36265d5ce7d2 (diff)
- Better HTML entities conversion in html2text (#1485519)
-rw-r--r--CHANGELOG1
-rw-r--r--bin/html2text.php2
-rw-r--r--program/lib/html2text.php7
-rw-r--r--program/steps/mail/compose.inc3
-rw-r--r--program/steps/mail/sendmail.inc2
5 files changed, 9 insertions, 6 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 350973366..775379d64 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,7 @@ CHANGELOG RoundCube Webmail
----------
- Fix handling of some malformed messages (#1484438)
- Speed up raw message body handling
+- Better HTML entities conversion in html2text (#1485519)
2008/11/15 (alec)
----------
diff --git a/bin/html2text.php b/bin/html2text.php
index e07fb3538..3839f5d34 100644
--- a/bin/html2text.php
+++ b/bin/html2text.php
@@ -22,7 +22,7 @@
define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/');
require INSTALL_PATH.'program/include/iniset.php';
-$converter = new html2text(html_entity_decode($HTTP_RAW_POST_DATA, ENT_COMPAT, 'UTF-8'));
+$converter = new html2text($HTTP_RAW_POST_DATA);
header('Content-Type: text/plain; charset=UTF-8');
print trim($converter->get_text());
diff --git a/program/lib/html2text.php b/program/lib/html2text.php
index 4180cac28..938dfecfe 100644
--- a/program/lib/html2text.php
+++ b/program/lib/html2text.php
@@ -232,7 +232,7 @@ class html2text
'--',
'-',
'*',
- '£',
+ '£',
'EUR', // Euro sign. € ?
'', // Unknown/unhandled entities
' ' // Runs of spaces, post-handling
@@ -465,7 +465,10 @@ class html2text
// Convert <PRE>
$this->_convert_pre($text);
-
+
+ // Replace known html entities
+ $text = html_entity_decode($text, ENT_COMPAT, 'UTF-8');
+
// Run our defined search-and-replace
$text = preg_replace($this->search, $this->replace, $text);
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index d1d913b68..d4348f287 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -323,8 +323,7 @@ function rcmail_compose_header_from($attrib)
if ($a_signatures[$identity_id]['is_html'])
{
$h2t = new html2text($a_signatures[$identity_id]['text'], false, false);
- $plainTextPart = $h2t->get_text();
- $a_signatures[$identity_id]['plain_text'] = trim(html_entity_decode($plainTextPart, ENT_NOQUOTES, 'UTF-8'));
+ $a_signatures[$identity_id]['plain_text'] = trim($h2t->get_text());
}
}
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 784d46a8f..7ee6dd4cc 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -265,7 +265,7 @@ if ($isHtml)
// empty message body breaks attachment handling in drafts
$plainTextPart = "\r\n";
}
- $MAIL_MIME->setTXTBody(html_entity_decode($plainTextPart, ENT_COMPAT, 'utf-8'));
+ $MAIL_MIME->setTXTBody($plainTextPart);
// look for "emoticon" images from TinyMCE and copy into message as attachments
rcmail_attach_emoticons($MAIL_MIME);