]> granicus.if.org Git - php/commitdiff
fixed test case failures.
authorRui Hirokawa <hirokawa@php.net>
Sun, 11 Sep 2011 12:12:24 +0000 (12:12 +0000)
committerRui Hirokawa <hirokawa@php.net>
Sun, 11 Sep 2011 12:12:24 +0000 (12:12 +0000)
ext/mbstring/libmbfl/filters/mbfilter_utf32.c
ext/mbstring/mbstring.c
ext/mbstring/tests/bug20087.phpt
ext/mbstring/tests/bug28220.phpt
ext/mbstring/tests/bug49536.phpt
ext/mbstring/tests/illformed_utf_sequences.phpt
ext/mbstring/tests/mb_parse_str.phpt
ext/mbstring/tests/mb_parse_str02.phpt

index 56d6dd4c979f891f5f52d1088494859c81a66c27..3cef6b051aeef453a6342d897bb42495d2e7666a 100644 (file)
@@ -173,6 +173,9 @@ int mbfl_filt_conv_utf32_wchar(int c, mbfl_convert_filter *filter)
                        filter->status &= ~0xff;
                        if (n < MBFL_WCSPLANE_UTF32MAX && (n < 0xd800 || n > 0xdfff)) {
                                CK((*filter->output_function)(n, filter->data));
+                       } else {
+                               n = (n & MBFL_WCSGROUP_MASK) | MBFL_WCSGROUP_THROUGH;
+                               CK((*filter->output_function)(n, filter->data));
                        }
                }
                break;
@@ -205,6 +208,9 @@ int mbfl_filt_conv_utf32be_wchar(int c, mbfl_convert_filter *filter)
                n = (c & 0xff) | filter->cache;
                if (n < MBFL_WCSPLANE_UTF32MAX && (n < 0xd800 || n > 0xdfff)) {
                        CK((*filter->output_function)(n, filter->data));
+               } else {
+                       n = (n & MBFL_WCSGROUP_MASK) | MBFL_WCSGROUP_THROUGH;
+                       CK((*filter->output_function)(n, filter->data));
                }
        }
        return c;
@@ -253,7 +259,10 @@ int mbfl_filt_conv_utf32le_wchar(int c, mbfl_convert_filter *filter)
                n = ((c & 0xff) << 24) | filter->cache;
                if (n < MBFL_WCSPLANE_UTF32MAX && (n < 0xd800 || n > 0xdfff)) {
                        CK((*filter->output_function)(n, filter->data));
-               }
+               } else {
+                       n = (n & MBFL_WCSGROUP_MASK) | MBFL_WCSGROUP_THROUGH;
+                       CK((*filter->output_function)(n, filter->data));
+               }               
        }
        return c;
 }
index 75eb48f0a77d445843921a17447970a28290aec7..af68c2b104776291f24036e7671e290fe64c78a4 100644 (file)
@@ -2025,7 +2025,7 @@ PHP_FUNCTION(mb_preferred_mime_name)
 #define IS_SJIS1(c) ((((c)>=0x81 && (c)<=0x9f) || ((c)>=0xe0 && (c)<=0xf5)) ? 1 : 0)
 #define IS_SJIS2(c) ((((c)>=0x40 && (c)<=0x7e) || ((c)>=0x80 && (c)<=0xfc)) ? 1 : 0)
 
-/* {{{ proto bool mb_parse_str(string encoded_string , array result)
+/* {{{ proto bool mb_parse_str(string encoded_string [, array result])
    Parses GET/POST/COOKIE data and sets global variables */
 PHP_FUNCTION(mb_parse_str)
 {
@@ -2036,12 +2036,12 @@ PHP_FUNCTION(mb_parse_str)
        const mbfl_encoding *detected;
 
        track_vars_array = NULL;
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz", &encstr, &encstr_len, &track_vars_array) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z", &encstr, &encstr_len, &track_vars_array) == FAILURE) {
                return;
        }
 
-       /* Clear out the array */
        if (track_vars_array != NULL) {
+               /* Clear out the array */
                zval_dtor(track_vars_array);
                array_init(track_vars_array);
        }
@@ -2057,7 +2057,16 @@ PHP_FUNCTION(mb_parse_str)
        info.num_from_encodings     = MBSTRG(http_input_list_size); 
        info.from_language          = MBSTRG(language);
 
-       detected = _php_mb_encoding_handler_ex(&info, track_vars_array, encstr TSRMLS_CC);
+       if (track_vars_array != NULL) {
+               detected = _php_mb_encoding_handler_ex(&info, track_vars_array, encstr TSRMLS_CC);
+       } else {
+               zval tmp;
+               if (!EG(active_symbol_table)) {
+                       zend_rebuild_symbol_table(TSRMLS_C);
+               }
+               Z_ARRVAL(tmp) = EG(active_symbol_table);                
+               detected = _php_mb_encoding_handler_ex(&info, &tmp, encstr TSRMLS_CC);          
+       }
 
        MBSTRG(http_input_identify) = detected;
 
index bcd190185b115c61c207ad27685ca98428559370..01bcc90388ea0241445f1899ffa6323defe9976d 100644 (file)
@@ -2,7 +2,7 @@
 Bug #20087 (Assertion failure)
 --SKIPIF--
 <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
---XFAIL--
+--FAIL--
 register_globals calls killed the ability for mb_parse_str() to register into the global scope
 --FILE--
 <?php
index f195606a15724a7319e62c09d04635e1405980b4..527fdc6fe3d9fd1e51991146133df69f2047ae33 100644 (file)
@@ -21,5 +21,5 @@ foreach ($coderange as $r) {
 }
 ?>
 --EXPECT--
-8101
+8085
 63
index 32685d22673c7de3068c36c246190b04b08ac305..40328f79f038a8abb754679e2ecedf31631e0b8a 100644 (file)
@@ -16,5 +16,5 @@ var_dump(mb_detect_encoding("\xc0\x00", "UTF-8", true));
 --EXPECT--
 string(4) "SJIS"
 bool(false)
-string(5) "UTF-8"
+bool(false)
 bool(false)
index a462cd074538d2e5de8b152aca2009331d57a227..b5b9d94db8479a376ae3a476fc572288004a85e5 100644 (file)
@@ -4,145 +4,214 @@ Unicode standard conformance test (ill-formed UTF sequences.)
 <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
 --FILE--
 <?php
+function chk_enc($str, $n, $enc = "UTF-8", $with_bom = false) {
+       $src = bin2hex(mb_convert_encoding($str, "UCS-4BE", $enc));
+       $dst = str_repeat("0000fffd", $n);
+       if ($with_bom) {
+               $dst = "0000feff" . $dst;
+       }
+       if ($dst == $src) {
+               return false;
+       } else {
+               return $src;
+       }
+}
+
+mb_substitute_character(0xfffd);
+
+
 echo "UTF-8 redundancy\n";
-var_dump(bin2hex(mb_convert_encoding("\x31\x32\x33", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\x41\x42\x43", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xc0\xb1\xc0\xb2\xc0\xb3", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xc1\x81\xc1\x82\xc1\x83", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xe0\x80\xb1\xe0\x80\xb2\xe0\x80\xb3", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xe0\x81\x81\xe0\x81\x82\xe0\x81\x83", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf0\x80\x80\xb1\xf0\x80\x80\xb2\xf0\x80\x80\xb3", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf0\x80\x81\x81\xf0\x80\x81\x82\xf0\x81\x83", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf8\x80\x80\x80\xb1\xf8\x80\x80\x80\xb2\xf8\x80\x80\x80\xb3", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf8\x80\x80\x81\x81\xf8\x80\x80\x81\x82\xf8\x80\x80\x81\x83", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xfc\x80\x80\x80\x80\xb1\xfc\x80\x80\x80\x80\xb2\xfc\x80\x80\x80\x80\xb3", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xfc\x80\x80\x80\x81\x81\xfc\x80\x80\x80\x81\x82\xfc\x80\x80\x80\x81\x83", "UCS-4BE", "UTF-8")));
+var_dump(chk_enc("\x31\x32\x33", 0));
+var_dump(chk_enc("\x41\x42\x43", 0));
+var_dump(chk_enc("\xc0\xb1\xc0\xb2\xc0\xb3", 6));
+var_dump(chk_enc("\xc1\x81\xc1\x82\xc1\x83", 6));
+var_dump(chk_enc("\xe0\x80\xb1\xe0\x80\xb2\xe0\x80\xb3", 6));
+var_dump(chk_enc("\xe0\x81\x81\xe0\x81\x82\xe0\x81\x83", 6));
+var_dump(chk_enc("\xf0\x80\x80\xb1\xf0\x80\x80\xb2\xf0\x80\x80\xb3", 9));
+var_dump(chk_enc("\xf0\x80\x81\x81\xf0\x80\x81\x82\xf0\x81\x83", 8));
+var_dump(chk_enc("\xf8\x80\x80\x80\xb1\xf8\x80\x80\x80\xb2\xf8\x80\x80\x80\xb3", 15));
+var_dump(chk_enc("\xf8\x80\x80\x81\x81\xf8\x80\x80\x81\x82\xf8\x80\x80\x81\x83", 15));
+var_dump(chk_enc("\xfc\x80\x80\x80\x80\xb1\xfc\x80\x80\x80\x80\xb2\xfc\x80\x80\x80\x80\xb3", 18));
+var_dump(chk_enc("\xfc\x80\x80\x80\x81\x81\xfc\x80\x80\x80\x81\x82\xfc\x80\x80\x80\x81\x83", 18));
 
-var_dump(bin2hex(mb_convert_encoding("\xc2\xa2\xc2\xa3\xc2\xa5", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xe0\x82\xa2\xe0\x82\xa3\xe0\x82\xa5", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf0\x80\x82\xa2\xf0\x80\x82\xa3\xf0\x80\x82\xa5", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf8\x80\x80\x82\xa2\xf8\x80\x80\x82\xa3\xf8\x80\x80\x82\xa5", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xfc\x80\x80\x80\x82\xa2\xfc\x80\x80\x80\x82\xa3\xfc\x80\x80\x80\x82\xa5", "UCS-4BE", "UTF-8")));
+var_dump(chk_enc("\xc2\xa2\xc2\xa3\xc2\xa5", 0));
+var_dump(chk_enc("\xe0\x82\xa2\xe0\x82\xa3\xe0\x82\xa5", 6));
+var_dump(chk_enc("\xf0\x80\x82\xa2\xf0\x80\x82\xa3\xf0\x80\x82\xa5", 9));
+var_dump(chk_enc("\xf8\x80\x80\x82\xa2\xf8\x80\x80\x82\xa3\xf8\x80\x80\x82\xa5", 15));
+var_dump(chk_enc("\xfc\x80\x80\x80\x82\xa2\xfc\x80\x80\x80\x82\xa3\xfc\x80\x80\x80\x82\xa5", 18));
 
-var_dump(bin2hex(mb_convert_encoding("\xc1\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xc2\x80", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xdf\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xe0\x9f\xff", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xe0\xa0\x80", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xef\xbf\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf0\x8f\xbf\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf0\x90\x80\x80", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf7\xbf\xbf\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf8\x87\xbf\xbf\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xf8\x88\x80\x80\x80", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xfb\xbf\xbf\xbf\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xfc\x83\xbf\xbf\xbf\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xfc\x84\x80\x80\x80\x80", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xfd\xaf\xbf\xbf\xbf\xbf", "UCS-4BE", "UTF-8")));
-var_dump(bin2hex(mb_convert_encoding("\xfd\xbf\xbf\xbf\xbf\xbf", "UCS-4BE", "UTF-8")));
+var_dump(chk_enc("\xc1\xbf", 2));
+var_dump(chk_enc("\xc2\x80", 0));
+var_dump(chk_enc("\xdf\xbf", 0));
+var_dump(chk_enc("\xe0\x9f\xff", 2));
+var_dump(chk_enc("\xe0\xa0\x80", 2));
+var_dump(chk_enc("\xef\xbf\xbf", 0));
+var_dump(chk_enc("\xf0\x8f\xbf\xbf", 3));
+var_dump(chk_enc("\xf0\x90\x80\x80", 0));
+var_dump(chk_enc("\xf7\xbf\xbf\xbf", 4));
+var_dump(chk_enc("\xf8\x87\xbf\xbf\xbf", 5));
+var_dump(chk_enc("\xf8\x88\x80\x80\x80", 5));
+var_dump(chk_enc("\xfb\xbf\xbf\xbf\xbf", 5));
+var_dump(chk_enc("\xfc\x83\xbf\xbf\xbf\xbf", 6));
+var_dump(chk_enc("\xfc\x84\x80\x80\x80\x80", 6));
+var_dump(chk_enc("\xfd\xaf\xbf\xbf\xbf\xbf", 6));
+var_dump(chk_enc("\xfd\xbf\xbf\xbf\xbf\xbf", 6));
 
 echo "UTF-8 and surrogates area\n";
 $out = '';
+$cnt = 0;
 for ($i = 0xd7ff; $i <= 0xe000; ++$i) {
-    $out .= mb_convert_encoding(pack('C3', 0xe0 | ($i >> 12), 0x80 | ($i >> 6) & 0x3f, 0x80 | $i & 0x3f), "UCS-4BE", "UTF-8");
+       $s = chk_enc(pack('C3', 0xe0 | ($i >> 12), 0x80 | ($i >> 6) & 0x3f, 0x80 | $i & 0x3f), 2);
+       if ($s === false) {
+               $cnt++;
+       } else {
+               $out .= $s;
+       }
 }
-var_dump(bin2hex($out));
+var_dump($cnt);
+var_dump($out);
 
 echo "UTF-32 code range\n";
-var_dump(bin2hex(mb_convert_encoding("\x00\x11\x00\x00", "UCS-4BE", "UTF-32BE")));
-var_dump(bin2hex(mb_convert_encoding("\x00\x10\xff\xff", "UCS-4BE", "UTF-32BE")));
-var_dump(bin2hex(mb_convert_encoding("\x00\x00\x11\x00", "UCS-4BE", "UTF-32LE")));
-var_dump(bin2hex(mb_convert_encoding("\xff\xff\x10\x00", "UCS-4BE", "UTF-32LE")));
-var_dump(bin2hex(mb_convert_encoding("\x00\x11\x00\x00", "UCS-4BE", "UTF-32")));
-var_dump(bin2hex(mb_convert_encoding("\x00\x10\xff\xff", "UCS-4BE", "UTF-32")));
-var_dump(bin2hex(mb_convert_encoding("\x00\x00\xfe\xff\x00\x11\x00\x00", "UCS-4BE", "UTF-32")));
-var_dump(bin2hex(mb_convert_encoding("\x00\x00\xfe\xff\x00\x10\xff\xff", "UCS-4BE", "UTF-32")));
-var_dump(bin2hex(mb_convert_encoding("\xff\xfe\x00\x00\x00\x00\x11\x00", "UCS-4BE", "UTF-32")));
-var_dump(bin2hex(mb_convert_encoding("\xff\xfe\x00\x00\xff\xff\x10\x00", "UCS-4BE", "UTF-32")));
+var_dump(chk_enc("\x00\x11\x00\x00", 1, "UTF-32BE"));
+var_dump(chk_enc("\x00\x10\xff\xff", 0, "UTF-32BE"));
+var_dump(chk_enc("\x00\x00\x11\x00", 1, "UTF-32LE"));
+var_dump(chk_enc("\xff\xff\x10\x00", 0, "UTF-32LE"));
+var_dump(chk_enc("\x00\x11\x00\x00", 1, "UTF-32"));
+var_dump(chk_enc("\x00\x10\xff\xff", 0, "UTF-32"));
+var_dump(chk_enc("\x00\x00\xfe\xff\x00\x11\x00\x00", 0, "UTF-32"));
+var_dump(chk_enc("\x00\x00\xfe\xff\x00\x10\xff\xff", 0, "UTF-32"));
+var_dump(chk_enc("\xff\xfe\x00\x00\x00\x00\x11\x00", 0, "UTF-32"));
+var_dump(chk_enc("\xff\xfe\x00\x00\xff\xff\x10\x00", 0, "UTF-32"));
 
 echo "UTF-32 and surrogates area\n";
 $out = '';
+$cnt = 0;
 for ($i = 0xd7ff; $i <= 0xe000; ++$i) {
-    $out .= mb_convert_encoding(pack('C4', $i >> 24, ($i >> 16) & 0xff, ($i >> 8) & 0xff, $i & 0xff), "UCS-4BE", "UTF-32BE");
+    $s = chk_enc(pack('C4', $i >> 24, ($i >> 16) & 0xff, ($i >> 8) & 0xff, $i & 0xff), 1, "UTF-32BE");
+       if ($s === false) {
+               $cnt++;
+       } else {
+               $out .= $s;
+       }
 }
-var_dump(bin2hex($out));
+var_dump($cnt);
+var_dump($out);
 
 $out = '';
+$cnt = 0;
 for ($i = 0xd7ff; $i <= 0xe000; ++$i) {
-    $out .= mb_convert_encoding(pack('C4', $i & 0xff, ($i >> 8) & 0xff, ($i >> 16) & 0xff, ($i >> 24) & 0xff), "UCS-4BE", "UTF-32LE");
+    $s = chk_enc(pack('C4', $i & 0xff, ($i >> 8) & 0xff, ($i >> 16) & 0xff, ($i >> 24) & 0xff), 1, "UTF-32LE");
+       if ($s === false) {
+               $cnt++;
+       } else {
+               $out .= $s;
+       }
 }
-var_dump(bin2hex($out));
+var_dump($cnt);
+var_dump($out);
 
 $out = '';
+$cnt = 0;
 for ($i = 0xd7ff; $i <= 0xe000; ++$i) {
-    $out .= mb_convert_encoding(pack('C4', $i >> 24, ($i >> 16) & 0xff, ($i >> 8) & 0xff, $i & 0xff), "UCS-4BE", "UTF-32");
+    $s = chk_enc(pack('C4', $i >> 24, ($i >> 16) & 0xff, ($i >> 8) & 0xff, $i & 0xff), 1, "UTF-32");
+       if ($s === false) {
+               $cnt++;
+       } else {
+               $out .= $s;
+       }
 }
-var_dump(bin2hex($out));
+var_dump($cnt);
+var_dump($out);
+
+echo "UTF-32 and surrogates area with BOM\n";
 
 $out = '';
+$cnt = 0;
 for ($i = 0xd7ff; $i <= 0xe000; ++$i) {
-    $out .= mb_convert_encoding("\x00\x00\xfe\xff". pack('C4', $i >> 24, ($i >> 16) & 0xff, ($i >> 8) & 0xff, $i & 0xff), "UCS-4BE", "UTF-32");
+    $s = chk_enc("\x00\x00\xfe\xff". pack('C4', $i >> 24, ($i >> 16) & 0xff, ($i >> 8) & 0xff, $i & 0xff), 
+                                1, "UTF-32", true);
+       if ($s === false) {
+               $cnt++;
+       } else {
+               $out .= $s;
+       }
 }
-var_dump(bin2hex(str_replace("\x00\x00\xfe\xff", "", $out)));
-
+var_dump($cnt);
+var_dump(str_replace("0000feff","",$out));
 
 $out = '';
+$cnt = 0;
 for ($i = 0xd7ff; $i <= 0xe000; ++$i) {
-    $out .= mb_convert_encoding("\xff\xfe\x00\x00". pack('C4', $i & 0xff, ($i >> 8) & 0xff, ($i >> 16) & 0xff, ($i >> 24) & 0xff), "UCS-4BE", "UTF-32");
+    $s = chk_enc("\xff\xfe\x00\x00". pack('C4', $i & 0xff, ($i >> 8) & 0xff, ($i >> 16) & 0xff, ($i >> 24) & 0xff), 
+                                1, "UTF-32", true);
+       if ($s === false) {
+               $cnt++;
+       } else {
+               $out .= $s;
+       }
 }
-var_dump(bin2hex(str_replace("\x00\x00\xfe\xff", "", $out)));
+var_dump($cnt);
+var_dump(str_replace("0000feff","",$out));
+
 ?>
 --EXPECT--
 UTF-8 redundancy
 string(24) "000000310000003200000033"
 string(24) "000000410000004200000043"
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
 string(24) "000000a2000000a3000000a5"
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
 string(8) "00000080"
 string(8) "000007ff"
-string(0) ""
+bool(false)
 string(8) "00000800"
 string(8) "0000ffff"
-string(0) ""
+bool(false)
 string(8) "00010000"
-string(8) "001fffff"
-string(0) ""
-string(8) "00200000"
-string(8) "03ffffff"
-string(0) ""
-string(8) "04000000"
-string(8) "6fffffff"
-string(0) ""
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
 UTF-8 and surrogates area
+int(2048)
 string(16) "0000d7ff0000e000"
 UTF-32 code range
-string(0) ""
+bool(false)
 string(8) "0010ffff"
-string(0) ""
+bool(false)
 string(8) "0010ffff"
-string(0) ""
+bool(false)
 string(8) "0010ffff"
-string(8) "0000feff"
+string(16) "0000feff0000fffd"
 string(16) "0000feff0010ffff"
-string(8) "0000feff"
+string(16) "0000feff0000fffd"
 string(16) "0000feff0010ffff"
 UTF-32 and surrogates area
+int(2048)
 string(16) "0000d7ff0000e000"
+int(2048)
 string(16) "0000d7ff0000e000"
+int(2048)
 string(16) "0000d7ff0000e000"
+UTF-32 and surrogates area with BOM
+int(2048)
 string(16) "0000d7ff0000e000"
+int(2048)
 string(16) "0000d7ff0000e000"
index f11b943c2628cfc90a5544be20eb86bf60236c59..59d187bd05fc2f1432d64d1e979791ed96956c20 100644 (file)
@@ -2,7 +2,7 @@
 mb_parse_str()
 --SKIPIF--
 <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
---XFAIL--
+--FAIL--
 register_globals calls killed the ability for mb_parse_str() to register into the global scope
 --INI--
 arg_separator.input=&
index d9b5eb20d9380252194eb4ced30a16cd3a07846b..f35699928e0f94745b584b74effb162942584a53 100644 (file)
@@ -2,7 +2,7 @@
 mb_parse_str() test 2
 --SKIPIF--
 <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
---XFAIL--
+--FAIL--
 register_globals calls killed the ability for mb_parse_str() to register into the global scope
 --INI--
 arg_separator.input=&#