From 7dc7eb19f101203a508863d440e184fa7c6e9444 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 21 Jun 2012 11:31:27 -0400
Subject: [PATCH] Fixed custom header name validity check, made RFC2822-compliant Updated localization files list in package.xml

---
 plugins/managesieve/Changelog       |    3 +++
 plugins/managesieve/managesieve.php |    7 +++++--
 plugins/managesieve/package.xml     |   21 +++++++++++++++++++--
 3 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog
index 1e60110..64542c6 100644
--- a/plugins/managesieve/Changelog
+++ b/plugins/managesieve/Changelog
@@ -1,6 +1,9 @@
+* version 5.1 [2012-06-21]
+-----------------------------------------------------------
 - Fixed filter popup width (for non-english localizations)
 - Fixed tokenizer infinite loop on invalid script content
 - Larry skin support
+- Fixed custom header name validity check, made RFC2822-compliant
 
 * version 5.0 [2012-01-05]
 -----------------------------------------------------------
diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php
index 486b3fb..70ef5f5 100644
--- a/plugins/managesieve/managesieve.php
+++ b/plugins/managesieve/managesieve.php
@@ -707,9 +707,12 @@
                             if (!count($headers))
                                 $this->errors['tests'][$i]['header'] = $this->gettext('cannotbeempty');
                             else {
-                                foreach ($headers as $hr)
-                                    if (!preg_match('/^[a-z0-9-]+$/i', $hr))
+                                foreach ($headers as $hr) {
+                                    // RFC2822: printable ASCII except colon
+                                    if (!preg_match('/^[\x21-\x39\x41-\x7E]+$/i', $hr)) {
                                         $this->errors['tests'][$i]['header'] = $this->gettext('forbiddenchars');
+                                    }
+                                }
                             }
 
                             if (empty($this->errors['tests'][$i]['header']))
diff --git a/plugins/managesieve/package.xml b/plugins/managesieve/package.xml
index 2077939..1c60a7c 100644
--- a/plugins/managesieve/package.xml
+++ b/plugins/managesieve/package.xml
@@ -17,9 +17,9 @@
 		<email>alec@alec.pl</email>
 		<active>yes</active>
 	</lead>
-	<date>2012-01-05</date>
+	<date>2012-06-21</date>
 	<version>
-		<release>5.0</release>
+		<release>5.1</release>
 		<api>5.0</api>
 	</version>
 	<stability>
@@ -38,34 +38,51 @@
 				<tasks:replace from="@name@" to="name" type="package-info"/>
 				<tasks:replace from="@package_version@" to="version" type="package-info"/>
 			</file>
+			<file name="localization/be_BE.inc" role="data"></file>
 			<file name="localization/bg_BG.inc" role="data"></file>
+			<file name="localization/bs_BA.inc" role="data"></file>
+			<file name="localization/ca_ES_BA.inc" role="data"></file>
 			<file name="localization/cs_CZ.inc" role="data"></file>
+			<file name="localization/cy_GB.inc" role="data"></file>
+			<file name="localization/da_DK.inc" role="data"></file>
 			<file name="localization/de_CH.inc" role="data"></file>
 			<file name="localization/de_DE.inc" role="data"></file>
 			<file name="localization/el_GR.inc" role="data"></file>
 			<file name="localization/en_GB.inc" role="data"></file>
 			<file name="localization/en_US.inc" role="data"></file>
+			<file name="localization/eo.inc" role="data"></file>
 			<file name="localization/es_AR.inc" role="data"></file>
 			<file name="localization/es_ES.inc" role="data"></file>
 			<file name="localization/et_EE.inc" role="data"></file>
+			<file name="localization/fa_IR.inc" role="data"></file>
 			<file name="localization/fi_FI.inc" role="data"></file>
 			<file name="localization/fr_FR.inc" role="data"></file>
 			<file name="localization/gl_ES.inc" role="data"></file>
+			<file name="localization/he_IL.inc" role="data"></file>
 			<file name="localization/hr_HR.inc" role="data"></file>
 			<file name="localization/hu_HU.inc" role="data"></file>
+			<file name="localization/ia_IA.inc" role="data"></file>
+			<file name="localization/id_ID.inc" role="data"></file>
 			<file name="localization/it_IT.inc" role="data"></file>
 			<file name="localization/ja_JP.inc" role="data"></file>
+			<file name="localization/lt_LT.inc" role="data"></file>
 			<file name="localization/lv_LV.inc" role="data"></file>
+			<file name="localization/ml_ML.inc" role="data"></file>
+			<file name="localization/mr_IN.inc" role="data"></file>
 			<file name="localization/nb_NO.inc" role="data"></file>
 			<file name="localization/nl_NL.inc" role="data"></file>
 			<file name="localization/pl_PL.inc" role="data"></file>
 			<file name="localization/pt_BR.inc" role="data"></file>
 			<file name="localization/pt_PT.inc" role="data"></file>
+			<file name="localization/ro_RO.inc" role="data"></file>
 			<file name="localization/ru_RU.inc" role="data"></file>
+			<file name="localization/si_LK.inc" role="data"></file>
 			<file name="localization/sk_SK.inc" role="data"></file>
 			<file name="localization/sl_SI.inc" role="data"></file>
 			<file name="localization/sv_SE.inc" role="data"></file>
+			<file name="localization/tr_TR.inc" role="data"></file>
 			<file name="localization/uk_UA.inc" role="data"></file>
+			<file name="localization/vi_VN.inc" role="data"></file>
 			<file name="localization/zh_CN.inc" role="data"></file>
 			<file name="localization/zh_TW.inc" role="data"></file>
 			<file name="skins/default/managesieve.css" role="data"></file>

--
Gitblit v1.9.1