pollita Sat Apr 12 16:04:06 2003 EDT Added files: /php4/ext/standard/tests/strings strripos.phpt strrpos.phpt
Modified files: /php4/ext/standard string.c Log: Add tests for strrpos/stripos, and minor fix to maintain BC for condition with empty needles/haystacks Index: php4/ext/standard/string.c diff -u php4/ext/standard/string.c:1.371 php4/ext/standard/string.c:1.372 --- php4/ext/standard/string.c:1.371 Sat Apr 12 03:36:22 2003 +++ php4/ext/standard/string.c Sat Apr 12 16:04:06 2003 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: string.c,v 1.371 2003/04/12 07:36:22 pollita Exp $ */ +/* $Id: string.c,v 1.372 2003/04/12 20:04:06 pollita Exp $ */ /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */ @@ -1579,6 +1579,10 @@ RETURN_FALSE; } + if ((haystack_len == 0) || (needle_len == 0)) { + RETURN_FALSE; + } + if (offset >= 0) { p = haystack + offset; e = haystack + haystack_len - needle_len; @@ -1612,6 +1616,10 @@ char *needle_dup, *haystack_dup; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|l", &haystack, &haystack_len, &needle, &needle_len, &offset) == FAILURE) { + RETURN_FALSE; + } + + if ((haystack_len == 0) || (needle_len == 0)) { RETURN_FALSE; } Index: php4/ext/standard/tests/strings/strripos.phpt +++ php4/ext/standard/tests/strings/strripos.phpt --TEST-- strripos() function --POST-- --GET-- --FILE-- <?php var_dump(strripos("test test string", "test")); var_dump(strripos("test string sTring", "string")); var_dump(strripos("test strip string strand", "str")); var_dump(strripos("I am what I am and that's all what I am", "am", -3)); var_dump(strripos("test string", "g")); var_dump(strripos("te".chr(0)."st", chr(0))); var_dump(strripos("tEst", "test")); var_dump(strripos("teSt", "test")); var_dump(@strripos("foo", "f", 1)); var_dump(@strripos("", "")); var_dump(@strripos("a", "")); var_dump(@strripos("", "a")); var_dump(@strripos("\\\\a", "\\a")); ?> --EXPECT-- int(5) int(12) int(18) int(12) int(10) int(2) int(0) int(0) bool(false) bool(false) bool(false) bool(false) int(1) Index: php4/ext/standard/tests/strings/strrpos.phpt +++ php4/ext/standard/tests/strings/strrpos.phpt --TEST-- strrpos() function --POST-- --GET-- --FILE-- <?php var_dump(strrpos("test test string", "test")); var_dump(strrpos("test string sTring", "string")); var_dump(strrpos("test strip string strand", "str")); var_dump(strrpos("I am what I am and that's all what I am", "am", -3)); var_dump(strrpos("test string", "g")); var_dump(strrpos("te".chr(0)."st", chr(0))); var_dump(strrpos("tEst", "test")); var_dump(strrpos("teSt", "test")); var_dump(@strrpos("foo", "f", 1)); var_dump(@strrpos("", "")); var_dump(@strrpos("a", "")); var_dump(@strrpos("", "a")); var_dump(@strrpos("\\\\a", "\\a")); ?> --EXPECT-- int(5) int(5) int(18) int(12) int(10) int(2) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) int(1) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php