summaryrefslogtreecommitdiff
path: root/program/include/rcube_imap.php
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2009-02-13 10:44:49 +0000
committeralecpl <alec@alec.pl>2009-02-13 10:44:49 +0000
commit050410f56097bfb29bb8e5d99e792cc3a9165a55 (patch)
tree38949402fa7fa7d26b8f5f4a3adeb92cac65e0d7 /program/include/rcube_imap.php
parent33875df40b31d571597d92e9f1bd100fba10d10b (diff)
- Fix multiple recipients input parsing (#1485733)
- added shared rcube_explode_quoted_string() function
Diffstat (limited to 'program/include/rcube_imap.php')
-rw-r--r--program/include/rcube_imap.php27
1 files changed, 2 insertions, 25 deletions
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 0e2dd6a07..3dbd35d90 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -2958,13 +2958,13 @@ class rcube_imap
function _parse_address_list($str, $decode=true)
{
// remove any newlines and carriage returns before
- $a = $this->_explode_quoted_string('[,;]', preg_replace( "/[\r\n]/", " ", $str));
+ $a = rcube_explode_quoted_string('[,;]', preg_replace( "/[\r\n]/", " ", $str));
$result = array();
foreach ($a as $key => $val)
{
$val = preg_replace("/([\"\w])</", "$1 <", $val);
- $sub_a = $this->_explode_quoted_string(' ', $decode ? $this->decode_header($val) : $val);
+ $sub_a = rcube_explode_quoted_string(' ', $decode ? $this->decode_header($val) : $val);
$result[$key]['name'] = '';
foreach ($sub_a as $k => $v)
@@ -2985,29 +2985,6 @@ class rcube_imap
return $result;
}
-
- /**
- * @access private
- */
- function _explode_quoted_string($delimiter, $string)
- {
- $result = array();
- $strlen = strlen($string);
- for ($q=$p=$i=0; $i < $strlen; $i++)
- {
- if ($string{$i} == "\"" && $string{$i-1} != "\\")
- $q = $q ? false : true;
- else if (!$q && preg_match("/$delimiter/", $string{$i}))
- {
- $result[] = substr($string, $p, $i - $p);
- $p = $i + 1;
- }
- }
-
- $result[] = substr($string, $p);
- return $result;
- }
-
} // end class rcube_imap