From 674a0fb41dc80c7d1a99339481339ac6e5f75004 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 09 Nov 2006 14:06:37 -0500
Subject: [PATCH] Corrected template parsing and output encoding

---
 program/include/rcube_shared.inc |    3 ++-
 program/include/main.inc         |    5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/program/include/main.inc b/program/include/main.inc
index b2e83b7..6768833 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -958,8 +958,9 @@
       }
     else if ($mode=='remove')
       $str = strip_tags($str);
-      
-    $out = strtr($str, $encode_arr);
+    
+    // avoid douple quotation of &
+    $out = preg_replace('/&amp;([a-z]{2,5});/', '&\\1;', strtr($str, $encode_arr));
       
     return $newlines ? nl2br($out) : $out;
     }
diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc
index 11af482..7f3771b 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/rcube_shared.inc
@@ -215,7 +215,8 @@
     if(($fpos = strrpos($output_lc, '</body>')) ||
        ($fpos = strrpos($output_lc, '</html>')))
       {
-      $output = substr($output,0,$fpos) . "$__page_footer\n" . substr($output,$fpos,strlen($output));
+      $fpos -= 8;
+      $output = substr($output,0,$fpos) . "$__page_footer\n" . substr($output,$fpos);
       }
     else
       $output .= "\n$__page_footer";

--
Gitblit v1.9.1