]> granicus.if.org Git - php/commitdiff
use memrchr/zend_memrchr instead of strrchr
authorAntony Dovgal <tony2001@php.net>
Tue, 8 Aug 2006 09:48:08 +0000 (09:48 +0000)
committerAntony Dovgal <tony2001@php.net>
Tue, 8 Aug 2006 09:48:08 +0000 (09:48 +0000)
fix wrong test

ext/standard/string.c
ext/standard/tests/strings/strings001.phpt

index ce3d6604201e9627316c9324095a9703c23ecbd8..f0ada8c8a1c12a8d3dcdec940866a4f1c0a73f1e 100644 (file)
@@ -2104,13 +2104,13 @@ PHP_FUNCTION(pathinfo)
                int ext_len;
 
                if (path_type == IS_UNICODE) {
-                       ext.u = u_strrchr(ret.u, (UChar) 0x2e /*'.'*/);
+                       ext.u = u_memrchr32(ret.u, (UChar) 0x2e /*'.'*/, ret_len);
                        if (ext.u) {
                                ext.u++;
                                ext_len = ret_len - (ext.u - ret.u);
                        }
                } else {
-                       ext.s = strrchr(ret.s, '.');
+                       ext.s = zend_memrchr(ret.s, '.', ret_len);
                        if (ext.s) {
                                ext.s++;
                                ext_len = ret_len - (ext.s - ret.s);
@@ -2127,10 +2127,10 @@ PHP_FUNCTION(pathinfo)
                int idx;
 
                if (path_type == IS_UNICODE) {
-                       p.u = u_strrchr(ret.u, (UChar) 0x2e /*'.'*/);
+                       p.u = u_memrchr32(ret.u, (UChar) 0x2e /*'.'*/, ret_len);
                        idx = p.u ? (p.u - ret.u) : ret_len;
                } else {
-                       p.s = strrchr(ret.s, '.');
+                       p.s = zend_memrchr(ret.s, '.', ret_len);
                        idx = p.s ? (p.s - ret.s) : ret_len;
                }
 
@@ -2961,7 +2961,7 @@ PHP_FUNCTION(strrchr)
                        ch = zend_get_codepoint_at(Z_USTRVAL_P(needle), Z_USTRLEN_P(needle), 0);
                        found = u_memrchr32(Z_USTRVAL_P(haystack), ch, Z_USTRLEN_P(haystack));
                } else {
-                       found = strrchr(Z_STRVAL_P(haystack), *Z_STRVAL_P(needle));
+                       found = zend_memrchr(Z_STRVAL_P(haystack), *Z_STRVAL_P(needle), Z_STRLEN_P(haystack));
                }
        } else {
                convert_to_long(needle);
@@ -2973,7 +2973,7 @@ PHP_FUNCTION(strrchr)
                        }
                        found = u_memrchr32(Z_USTRVAL_P(haystack), ch, Z_USTRLEN_P(haystack));
                } else {
-                       found = strrchr(Z_STRVAL_P(haystack), (char)Z_LVAL_P(needle));
+                       found = zend_memrchr(Z_STRVAL_P(haystack), (char)Z_LVAL_P(needle), Z_STRLEN_P(haystack));
                }
        }
 
index 87f8489b8a48b083b0b4d31d0ec0e6ce256a5240..4ccb558fad99cabc3fd8b713bf3fd50164287424 100644 (file)
@@ -9,4 +9,7 @@ var_dump(strrchr($s," nic"));
 ?>
 --EXPECTREGEX--
 string\(18\) \"nica\x00turska panica\"
-string\(19\) \" nica\x00turska panica\"
+string\(7\) \" panica\"
+--UEXPECTREGEX--
+unicode\(18\) \"nica\x00turska panica\"
+unicode\(7\) \" panica\"