tony2001 Tue Aug 8 09:48:08 2006 UTC Modified files: /php-src/ext/standard string.c /php-src/ext/standard/tests/strings strings001.phpt Log: use memrchr/zend_memrchr instead of strrchr fix wrong test http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.565&r2=1.566&diff_format=u Index: php-src/ext/standard/string.c diff -u php-src/ext/standard/string.c:1.565 php-src/ext/standard/string.c:1.566 --- php-src/ext/standard/string.c:1.565 Tue Aug 8 08:59:51 2006 +++ php-src/ext/standard/string.c Tue Aug 8 09:48:08 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: string.c,v 1.565 2006/08/08 08:59:51 tony2001 Exp $ */ +/* $Id: string.c,v 1.566 2006/08/08 09:48:08 tony2001 Exp $ */ /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */ @@ -2104,13 +2104,13 @@ 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 @@ 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 @@ 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 @@ } 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)); } } http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strings001.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/standard/tests/strings/strings001.phpt diff -u php-src/ext/standard/tests/strings/strings001.phpt:1.2 php-src/ext/standard/tests/strings/strings001.phpt:1.3 --- php-src/ext/standard/tests/strings/strings001.phpt:1.2 Sat Oct 26 20:07:49 2002 +++ php-src/ext/standard/tests/strings/strings001.phpt Tue Aug 8 09:48:08 2006 @@ -9,4 +9,7 @@ ?> --EXPECTREGEX-- string\(18\) \"nica\x00turska panica\" -string\(19\) \" nica\x00turska panica\" +string\(7\) \" panica\" +--UEXPECTREGEX-- +unicode\(18\) \"nica\x00turska panica\" +unicode\(7\) \" panica\"
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php