From 050410f56097bfb29bb8e5d99e792cc3a9165a55 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Fri, 13 Feb 2009 05:44:49 -0500 Subject: [PATCH] - Fix multiple recipients input parsing (#1485733) - added shared rcube_explode_quoted_string() function --- program/include/rcube_imap.php | 27 ++------------------------- 1 files changed, 2 insertions(+), 25 deletions(-) diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 0e2dd6a..3dbd35d 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -2958,13 +2958,13 @@ 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) @@ -2982,29 +2982,6 @@ $result[$key]['address'] = $result[$key]['name']; } - 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; } -- Gitblit v1.9.1