[prev in list] [next in list] [prev in thread] [next in thread]
List: squirrelmail-cvs
Subject: [SM-CVS] CVS: squirrelmail/class/mime Rfc822Header.class.php,1.19,1.20
From: Marc Groot Koerkamp <stekkel () users ! sourceforge ! net>
Date: 2003-05-28 22:09:52
[Download RAW message or body]
Update of /cvsroot/squirrelmail/squirrelmail/class/mime
In directory sc8-pr-cvs1:/tmp/cvs-serv12760
Modified Files:
Rfc822Header.class.php
Log Message:
better address parsing. This should fix wrong parsing of addresses with
comments
Index: Rfc822Header.class.php
===================================================================
RCS file: /cvsroot/squirrelmail/squirrelmail/class/mime/Rfc822Header.class.php,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -w -r1.19 -r1.20
--- Rfc822Header.class.php 21 May 2003 15:46:46 -0000 1.19
+++ Rfc822Header.class.php 28 May 2003 22:09:49 -0000 1.20
@@ -41,7 +41,6 @@
if (is_array($hdr)) {
$hdr = implode('', $hdr);
}
-
/* First we unfold the header */
$hdr = trim(str_replace(array("\r\n\t", "\r\n "),array('', ''), $hdr));
@@ -268,6 +267,7 @@
$is_encoded = true;
break;
case '"': /* get the personal name */
+ //$name .= parseString($address,$pos);
$start_encoded = $pos;
++$pos;
if ($address{$pos} == '"') {
@@ -304,17 +304,27 @@
}
break;
case '(': /* rip off comments */
- $addr_start = $pos;
+ $comment_start = $pos;
$pos = strpos($address,')');
if ($pos !== false) {
- $comment = substr($address, $addr_start+1,($pos-$addr_start-1));
- $address_start = substr($address, 0, $addr_start);
+ $comment = substr($address, $comment_start+1,($pos-$comment_start-1));
+ $address_start = substr($address, 0, $comment_start);
$address_end = substr($address, $pos + 1);
$address = $address_start . $address_end;
}
$j = strlen($address);
- $pos = $addr_start + 1;
+ if ($comment_start) {
+ $pos = $comment_start-1;
+ } else {
+ $pos = 0;
+ }
+ break;
+ case ';':
+ if ($group) {
+ $address = substr($address, 0, $pos - 1);
+ ++$pos;
break;
+ }
case ',': /* we reached a delimiter */
if (!$name && !$addr) {
$addr = substr($address, 0, $pos);
@@ -384,12 +394,6 @@
$j = strlen($address);
$group = '';
break;
- case ';':
- if ($group) {
- $address = substr($address, 0, $pos - 1);
- }
- ++$pos;
- break;
case ' ':
++$pos;
break;
@@ -429,6 +433,9 @@
if ($i_del) {
$addr = substr($address,$pos,$i_del-$pos);
$pos = $i_del;
+ } else if ($i_space) {
+ $addr = substr($address,$pos,$i_space-$pos);
+ $pos = $i_space+1;
} else {
$addr = substr($address,$pos);
$pos = $j;
-------------------------------------------------------
This SF.net email is sponsored by: eBay
Get office equipment for less on eBay!
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
--
squirrelmail-cvs mailing list
List Address: squirrelmail-cvs@lists.sourceforge.net
List Info: https://lists.sourceforge.net/lists/listinfo/squirrelmail-cvs
http://squirrelmail.org/cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic