cvs: php4(PHP_4_2_0) /ext/mailparse rfc2045.c
| From: | Derick Rethans | Date: | Wed, 27 Mar 2002 20:39:26 +0000 |
| Subject: | cvs: php4(PHP_4_2_0) /ext/mailparse rfc2045.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-10726@lists.php.net to get a copy of this message | ||
derick Wed Mar 27 15:39:26 2002 EDT
Modified files: (Branch: PHP_4_2_0)
/php4/ext/mailparse rfc2045.c
Log:
- MFH for multiple To: lines
Index: php4/ext/mailparse/rfc2045.c
diff -u php4/ext/mailparse/rfc2045.c:1.4 php4/ext/mailparse/rfc2045.c:1.4.2.1
--- php4/ext/mailparse/rfc2045.c:1.4 Sun Sep 9 09:28:55 2001
+++ php4/ext/mailparse/rfc2045.c Wed Mar 27 15:39:25 2002
@@ -1,4 +1,4 @@
-/* $Id: rfc2045.c,v 1.4 2001/09/09 13:28:55 derick Exp $ */
+/* $Id: rfc2045.c,v 1.4.2.1 2002/03/27 20:39:25 derick Exp $ */
/*
** Copyright 1998 - 1999 Double Precision, Inc. See COPYING for
** distribution information.
@@ -758,7 +758,33 @@
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)
{