From 7079110c61d41020912baab91cef8b3a3acdb577 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 08 May 2014 09:08:45 -0400
Subject: [PATCH] Allow data-* attributes (#1489860)

---
 program/include/rcmail_output_html.php |    2 +-
 program/lib/Roundcube/html.php         |    5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php
index 1b836ab..42b208e 100644
--- a/program/include/rcmail_output_html.php
+++ b/program/include/rcmail_output_html.php
@@ -1232,7 +1232,7 @@
 
         // generate html code for button
         if ($btn_content) {
-            $attrib_str = html::attrib_string($attrib, array_merge($link_attrib, array('data-*')));
+            $attrib_str = html::attrib_string($attrib, $link_attrib);
             $out = sprintf('<a%s>%s</a>', $attrib_str, $btn_content);
         }
 
diff --git a/program/lib/Roundcube/html.php b/program/lib/Roundcube/html.php
index f47ef29..a88570d 100644
--- a/program/lib/Roundcube/html.php
+++ b/program/lib/Roundcube/html.php
@@ -283,10 +283,9 @@
                 continue;
             }
 
-            // ignore not allowed attributes
+            // ignore not allowed attributes, except data-*
             if (!empty($allowed)) {
-                $is_data_attr = @substr_compare($key, 'data-', 0, 5) === 0;
-                if (!isset($allowed_f[$key]) && (!$is_data_attr || !isset($allowed_f['data-*']))) {
+                if (!isset($allowed_f[$key]) && @substr_compare($key, 'data-', 0, 5) !== 0) {
                     continue;
                 }
             }

--
Gitblit v1.9.1