cvs: php-src(PHP_5_2) /ext/json utf8_decode.c utf8_to_utf16.c /ext/json/tests bug46944.phpt
| From: | Scott MacVicar | Date: | Thu, 12 Feb 2009 00:15:46 +0000 |
| Subject: | cvs: php-src(PHP_5_2) /ext/json utf8_decode.c utf8_to_utf16.c /ext/json/tests bug46944.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-56193@lists.php.net to get a copy of this message | ||
scottmac Thu Feb 12 00:15:46 2009 UTC
Added files: (Branch: PHP_5_2)
/php-src/ext/json/tests bug46944.phpt
Modified files:
/php-src/ext/json utf8_decode.c utf8_to_utf16.c
Log:
MFH Fix bug #46944 - UTF-8 characters outside the BMP aren't encoded correctly.
Forgot to merge this back in January
http://cvs.php.net/viewvc.cgi/php-src/ext/json/utf8_decode.c?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/json/utf8_decode.c
diff -u php-src/ext/json/utf8_decode.c:1.1 php-src/ext/json/utf8_decode.c:1.1.2.1
--- php-src/ext/json/utf8_decode.c:1.1 Tue Jan 31 08:59:06 2006
+++ php-src/ext/json/utf8_decode.c Thu Feb 12 00:15:45 2009
@@ -165,7 +165,7 @@
/*
Three continuation (65536 to 1114111)
*/
- if ((c & 0xF1) == 0xF0) {
+ if ((c & 0xF8) == 0xF0) {
int c1 = cont(utf8);
int c2 = cont(utf8);
int c3 = cont(utf8);
http://cvs.php.net/viewvc.cgi/php-src/ext/json/utf8_to_utf16.c?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/json/utf8_to_utf16.c
diff -u php-src/ext/json/utf8_to_utf16.c:1.1.2.1 php-src/ext/json/utf8_to_utf16.c:1.1.2.2
--- php-src/ext/json/utf8_to_utf16.c:1.1.2.1 Thu Aug 21 18:10:48 2008
+++ php-src/ext/json/utf8_to_utf16.c Thu Feb 12 00:15:45 2009
@@ -46,7 +46,7 @@
w[the_index] = (unsigned short)c;
the_index += 1;
} else {
- c &= 0xFFFF;
+ c -= 0x10000;
w[the_index] = (unsigned short)(0xD800 | (c >> 10));
the_index += 1;
w[the_index] = (unsigned short)(0xDC00 | (c & 0x3FF));
http://cvs.php.net/viewvc.cgi/php-src/ext/json/tests/bug46944.phpt?view=markup&rev=1.1
Index: php-src/ext/json/tests/bug46944.phpt
+++ php-src/ext/json/tests/bug46944.phpt