hirokawa Sat Nov 19 01:39:43 2005 EDT
Modified files: (Branch: PHP_4_4)
/php-src/ext/mbstring mbstring.c
Log:
MFH: fixed #35253 length of the encoded string vilolates a RFC.
http://cvs.php.net/diff.php/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.3&r2=1.142.2.47.2.4&ty=u
Index: php-src/ext/mbstring/mbstring.c
diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.3
php-src/ext/mbstring/mbstring.c:1.142.2.47.2.4
--- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.3 Fri Nov 4 20:14:05 2005
+++ php-src/ext/mbstring/mbstring.c Sat Nov 19 01:39:39 2005
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.142.2.47.2.3 2005/11/05 01:14:05 hirokawa Exp $ */
+/* $Id: mbstring.c,v 1.142.2.47.2.4 2005/11/19 06:39:39 hirokawa Exp $ */
/*
* PHP4 Multibyte String module "mbstring"
@@ -2924,16 +2924,17 @@
}
/* }}} */
-/* {{{ proto string mb_encode_mimeheader(string str [, string charset [,
string transfer-encoding [, string linefeed]]])
+/* {{{ proto string mb_encode_mimeheader(string str [, string charset [,
string transfer-encoding [, string linefeed [, int indent]]]])
Converts the string to MIME "encoded-word" in the format of
=?charset?(B|Q)?encoded_string?= */
PHP_FUNCTION(mb_encode_mimeheader)
{
- pval **argv[4];
+ pval **argv[5];
enum mbfl_no_encoding charset, transenc;
mbfl_string string, result, *ret;
char *p, *linefeed;
+ int indent;
- if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 4 ||
zend_get_parameters_array_ex(ZEND_NUM_ARGS(), argv) == FAILURE) {
+ if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 5 ||
zend_get_parameters_array_ex(ZEND_NUM_ARGS(), argv) == FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -2970,6 +2971,12 @@
linefeed = Z_STRVAL_PP(argv[3]);
}
+ indent = 0;
+ if (ZEND_NUM_ARGS() >= 5) {
+ convert_to_long_ex(argv[4]);
+ indent = Z_LVAL_PP(argv[4]);
+ }
+
convert_to_string_ex(argv[0]);
mbfl_string_init(&string);
mbfl_string_init(&result);
@@ -2977,7 +2984,7 @@
string.no_encoding = MBSTRG(current_internal_encoding);
string.val = Z_STRVAL_PP(argv[0]);
string.len = Z_STRLEN_PP(argv[0]);
- ret = mbfl_mime_header_encode(&string, &result, charset, transenc,
linefeed, 0);
+ ret = mbfl_mime_header_encode(&string, &result, charset, transenc,
linefeed, indent);
if (ret != NULL) {
RETVAL_STRINGL((char *)ret->val, ret->len, 0) /* the string
is already strdup()'ed */
} else {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php