cvs: php4 /ext/mailparse rfc2045.c
| From: | Wez Furlong | Date: | Wed, 27 Mar 2002 14:05:55 +0000 |
| Subject: | cvs: php4 /ext/mailparse rfc2045.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-10716@lists.php.net to get a copy of this message | ||
wez Wed Mar 27 09:05:55 2002 EDT
Modified files:
/php4/ext/mailparse rfc2045.c
Log:
allow headers hash to handle multiple To: lines
Index: php4/ext/mailparse/rfc2045.c
diff -u php4/ext/mailparse/rfc2045.c:1.4 php4/ext/mailparse/rfc2045.c:1.5
--- php4/ext/mailparse/rfc2045.c:1.4 Sun Sep 9 09:28:55 2001
+++ php4/ext/mailparse/rfc2045.c Wed Mar 27 09:05:55 2002
@@ -1,4 +1,4 @@
-/* $Id: rfc2045.c,v 1.4 2001/09/09 13:28:55 derick Exp $ */
+/* $Id: rfc2045.c,v 1.5 2002/03/27 14:05:55 wez Exp $ */
/*
** Copyright 1998 - 1999 Double Precision, Inc. See COPYING for
** distribution information.
@@ -758,7 +758,32 @@
val++;
while(isspace(*val))
val++;
- add_assoc_string(p->headerhash, t, val, 1);
+
+ if (strcmp(t, "to") == 0 || strcmp(t, "cc") == 0) {
+ /* join multiple To: or Cc: lines together, so that
+ * those addresses are not silently ignored by scripts
+ * that do not parse headers manually */
+ zval **existing = NULL;
+
+ if (SUCCESS == zend_hash_find(Z_ARRVAL_P(p->headerhash), t, strlen(t)+1,
(void**)&existing)) {
+ int newlen;
+ char *newstr;
+
+ newlen = strlen(val) + Z_STRLEN_PP(existing) + 3;
+ newstr = emalloc(newlen);
+
+ strcpy(newstr, Z_STRVAL_PP(existing));
+ strcat(newstr, ", ");
+ strcat(newstr, val);
+
+ add_assoc_string(p->headerhash, t, newstr, 0);
+
+ } else {
+ add_assoc_string(p->headerhash, t, val, 1);
+ }
+ } else {
+ add_assoc_string(p->headerhash, t, val, 1);
+ }
}
if (strcmp(t, "mime-version") == 0)
{