moriyoshi Wed Apr 13 06:10:55 2005 EDT Modified files: (Branch: PHP_5_0) /php-src NEWS /php-src/ext/mbstring/libmbfl/mbfl mbfilter.c Log: - Commit the pending patch (bug #32311). # Ugh, it wasn't committed yet. http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.320&r2=1.1760.2.321&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1760.2.320 php-src/NEWS:1.1760.2.321 --- php-src/NEWS:1.1760.2.320 Tue Apr 12 10:01:01 2005 +++ php-src/NEWS Wed Apr 13 06:10:50 2005 @@ -37,6 +37,7 @@ to 3.7.0. (Moriyoshi) - Updated bundled libmbfl library (used for multibyte functions). (Moriyoshi) Fixed bugs: + . Bug #32311 (mb_encode_mimeheader() does not properly escape characters) . Bug #32063 (mb_convert_encoding ignores named entity 'alpha') . Bug #31911 (mb_decode_mimeheader() is case-sensitive to hex escapes) . bug #30573 (compiler warnings in libmbfl due to invalid type cast) http://cvs.php.net/diff.php/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c?r1=1.2.2.5&r2=1.2.2.6&ty=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.2.2.5 php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.2.2.6 --- php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.2.2.5 Wed Mar 23 18:56:38 2005 +++ php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c Wed Apr 13 06:10:54 2005 @@ -571,7 +571,7 @@ /* judge */ encoding = NULL; - for (i = 0; i < num; i++) { + for (i = num; --i >= 0;) { filter = &flist[i]; if (!filter->flag) { encoding = filter->encoding; @@ -1960,6 +1960,25 @@ static int mime_header_encoder_collector(int c, void *data) { + static int qp_table[256] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */ + 0, 0, 0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0, 1, 0, 1, /* 0x10 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x50 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x70 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x80 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x90 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xA0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xB0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xC0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xD0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xE0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 /* 0xF0 */ + }; + int n; struct mime_header_encoder_data *pe = (struct mime_header_encoder_data *)data; @@ -1969,7 +1988,7 @@ break; default: /* ASCII */ - if (c >= 0x21 && c < 0x7f) { /* ASCII exclude SPACE and CTLs */ + if (!qp_table[(c & 0xff)]) { /* ordinary characters */ mbfl_memory_device_output(c, &pe->tmpdev); pe->status1 = 1; } else if (pe->status1 == 0 && c == 0x20) { /* repeat SPACE */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php