From 8b3c68d42d4ee142449f9249590b45658b93cd26 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 06 Mar 2012 14:42:23 -0500
Subject: [PATCH] - Fix handling of % character in IMAP protocol (#1488382)

---
 CHANGELOG                              |    1 +
 program/include/rcube_imap_generic.php |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 5864b2b..929c04b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix handling of % character in IMAP protocol (#1488382)
 - Fix duplicate names handling in addressbook searches (#1488375)
 - Fix displaying HTML messages from Disqus (#1488372)
 - Exclude E_STRICT from error_reporting for PHP 5.4
diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php
index cffb250..f286ec6 100644
--- a/program/include/rcube_imap_generic.php
+++ b/program/include/rcube_imap_generic.php
@@ -3616,13 +3616,16 @@
         if ($string === null) {
             return 'NIL';
         }
+
         if ($string === '') {
             return '""';
         }
+
         // atom-string (only safe characters)
-        if (!$force_quotes && !preg_match('/[\x00-\x20\x22\x28-\x2A\x5B-\x5D\x7B\x7D\x80-\xFF]/', $string)) {
+        if (!$force_quotes && !preg_match('/[\x00-\x20\x22\x25\x28-\x2A\x5B-\x5D\x7B\x7D\x80-\xFF]/', $string)) {
             return $string;
         }
+
         // quoted-string
         if (!preg_match('/[\r\n\x00\x80-\xFF]/', $string)) {
             return '"' . addcslashes($string, '\\"') . '"';

--
Gitblit v1.9.1