From da1722a587edc378d94409a735883d600f7b3430 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 12 Jan 2010 02:46:22 -0500
Subject: [PATCH] - Fix to-text converting of HTML entities inside b/strong/th/hX tags (#1486422)

---
 CHANGELOG                 |    1 +
 program/lib/html2text.php |    6 ++++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 12a5d31..7a44f89 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG RoundCube Webmail
 ===========================
 
+- Fix to-text converting of HTML entities inside b/strong/th/hX tags (#1486422)
 - Bug in spellchecker suggestions when server charset != UTF8 (#1486406)
 - Managesieve: Fix requires generation for multiple actions (#1486397)
 - Fix LDAP problem with special characters in RDN (#1486320)
diff --git a/program/lib/html2text.php b/program/lib/html2text.php
index dbf0943..49c636f 100644
--- a/program/lib/html2text.php
+++ b/program/lib/html2text.php
@@ -468,10 +468,12 @@
 
         // Run our defined search-and-replace
         $text = preg_replace($this->search, $this->replace, $text);
-        $text = preg_replace_callback($this->callback_search, array('html2text', '_preg_callback'), $text);
 
         // Replace known html entities
         $text = html_entity_decode($text, ENT_COMPAT, 'UTF-8');
+
+        // Run our defined search-and-replace with callback
+        $text = preg_replace_callback($this->callback_search, array('html2text', '_preg_callback'), $text);
 
         // Remove unknown/unhandled entities (this cannot be done in search-and-replace block)
         $text = preg_replace('/&[^&;]+;/i', '', $text); 
@@ -566,7 +568,7 @@
         case 'b':
         case 'strong':
             return $this->_strtoupper($matches[2]);
-        case 'hr':
+        case 'th':
             return $this->_strtoupper("\t\t". $matches[2] ."\n");
         case 'h':
             return $this->_strtoupper("\n\n". $matches[2] ."\n\n");

--
Gitblit v1.9.1