diff options
| author | Dan Kalowsky <kalowsky@php.net> | 2002-09-18 11:57:17 +0000 | 
|---|---|---|
| committer | Dan Kalowsky <kalowsky@php.net> | 2002-09-18 11:57:17 +0000 | 
| commit | 3ae9127b465ca1596c2f42b4bd3ba8f6e819d1d9 (patch) | |
| tree | b5025fbe49fef568cdde3ac2ace59ec0450ac643 | |
| parent | ff7bece5bbcd9fa567c6bc581ff20912252bae3f (diff) | |
| download | php-git-3ae9127b465ca1596c2f42b4bd3ba8f6e819d1d9.tar.gz | |
Patch for Bug #19402 provided by Kevin Way (kevin.way@overtone.org)
| -rw-r--r-- | ext/imap/php_imap.c | 36 | 
1 files changed, 35 insertions, 1 deletions
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 00633b1c70..cf09072f37 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -2854,7 +2854,24 @@ PHP_FUNCTION(imap_mail_compose)  			tmp_param->attribute = "CHARSET";  			tmp_param->next = bod->parameter;  			bod->parameter = tmp_param; -		} +            } +        if (zend_hash_find(Z_ARRVAL_PP(data), "type.parameters", sizeof("type.parameters"), (void **) &pvalue)== SUCCESS) { +           if(Z_TYPE_PP(pvalue) == IS_ARRAY) { +               disp_param = tmp_param = NULL; +               while (zend_hash_get_current_data(Z_ARRVAL_PP(pvalue), (void **) &disp_data) == SUCCESS) { +                   disp_param = mail_newbody_parameter(); +                   zend_hash_get_current_key(Z_ARRVAL_PP(pvalue), &key, &ind, 0); +                   disp_param->attribute = key; +                   convert_to_string_ex(disp_data); +                   disp_param->value = (char *) fs_get(Z_STRLEN_PP(disp_data) + 1); +                   memcpy(disp_param->value, Z_STRVAL_PP(disp_data), Z_STRLEN_PP(disp_data) + 1); +                   zend_hash_move_forward(Z_ARRVAL_PP(pvalue)); +                   disp_param->next = tmp_param; +                   tmp_param = disp_param; +                 } +             bod->parameter = disp_param; +             } +        }  		if (zend_hash_find(Z_ARRVAL_PP(data), "subtype", sizeof("subtype"), (void **) &pvalue)== SUCCESS) {  			convert_to_string_ex(pvalue);  			bod->subtype = cpystr(Z_STRVAL_PP(pvalue)); @@ -2941,6 +2958,23 @@ PHP_FUNCTION(imap_mail_compose)  				tmp_param->next = bod->parameter;  				bod->parameter = tmp_param;  			} +            if (zend_hash_find(Z_ARRVAL_PP(data), "type.parameters", sizeof("type.parameters"), (void **) &pvalue)== SUCCESS) { +               if(Z_TYPE_PP(pvalue) == IS_ARRAY) { +                   disp_param = tmp_param = NULL; +                   while (zend_hash_get_current_data(Z_ARRVAL_PP(pvalue), (void **) &disp_data) == SUCCESS) { +                       disp_param = mail_newbody_parameter(); +                       zend_hash_get_current_key(Z_ARRVAL_PP(pvalue), &key, &ind, 0); +                       disp_param->attribute = key; +                       convert_to_string_ex(disp_data); +                       disp_param->value = (char *) fs_get(Z_STRLEN_PP(disp_data) + 1); +                       memcpy(disp_param->value, Z_STRVAL_PP(disp_data), Z_STRLEN_PP(disp_data) + 1); +                       zend_hash_move_forward(Z_ARRVAL_PP(pvalue)); +                       disp_param->next = tmp_param; +                       tmp_param = disp_param; +                   } +               bod->parameter = disp_param; +               } +            }  			if (zend_hash_find(Z_ARRVAL_PP(data), "subtype", sizeof("subtype"), (void **) &pvalue)== SUCCESS) {  				convert_to_string_ex(pvalue);  				bod->subtype = cpystr(Z_STRVAL_PP(pvalue));	  | 
