From 5bf83d551e3c748b8ba37ad6459a505730ec9877 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 27 May 2014 08:44:52 -0400
Subject: [PATCH] Fix unintentional line-height style modification in HTML messages (#1489917)

---
 CHANGELOG                               |    1 +
 program/lib/Roundcube/rcube_washtml.php |    2 +-
 tests/Framework/Washtml.php             |   14 ++++++++++++++
 3 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 03d1d28..af23c6e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -29,6 +29,7 @@
 - Fix incorrect handling of HTML comments in messages sanitization code (#1489904)
 - Fix so current page is reset on list-mode change (#1489907)
 - Fix so responses menu hides on click in classic skin (#1489915)
+- Fix unintentional line-height style modification in HTML messages (#1489917)
 
 RELEASE 1.0.1
 -------------
diff --git a/program/lib/Roundcube/rcube_washtml.php b/program/lib/Roundcube/rcube_washtml.php
index 5f40eec..9842943 100644
--- a/program/lib/Roundcube/rcube_washtml.php
+++ b/program/lib/Roundcube/rcube_washtml.php
@@ -206,7 +206,7 @@
                         $value .= ' ' . $val;
 
                         // #1488535: Fix size units, so width:800 would be changed to width:800px
-                        if (preg_match('/(left|right|top|bottom|width|height)/i', $cssid)
+                        if (preg_match('/^(left|right|top|bottom|width|height)/i', $cssid)
                             && preg_match('/^[0-9]+$/', $val)
                         ) {
                             $value .= 'px';
diff --git a/tests/Framework/Washtml.php b/tests/Framework/Washtml.php
index 5c15c69..f041504 100644
--- a/tests/Framework/Washtml.php
+++ b/tests/Framework/Washtml.php
@@ -169,4 +169,18 @@
 
         $this->assertRegExp('|style="font-family: 新細明體; color: red"|', $washed, "Unicode chars in style attribute (#1489697)");
     }
+
+    /**
+     * Test style item fixes
+     */
+    function test_style_wash()
+    {
+        $html = "<p style=\"line-height: 1; height: 10\">a</p>";
+
+        $washer = new rcube_washtml;
+        $washed = $washer->wash($html);
+
+        $this->assertRegExp('|line-height: 1;|', $washed, "Untouched line-height (#1489917)");
+        $this->assertRegExp('|; height: 10px|', $washed, "Fixed height units");
+    }
 }

--
Gitblit v1.9.1