cvs: php-src(PHP_5_2) / NEWS /ext/standard string.c /ext/standard/tests/strings bug24098.phpt

From: Date: Sun, 16 Jul 2006 10:37:24 +0000
Subject: cvs: php-src(PHP_5_2) / NEWS /ext/standard string.c /ext/standard/tests/strings bug24098.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-39261@lists.php.net to get a copy of this message
helly Sun Jul 16 10:37:24 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard string.c /php-src/ext/standard/tests/strings bug24098.phpt /php-src NEWS Log: - MFH Pathinfo allows to get filename (Toby S, Christian S) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.445.2.14.2.5&r2=1.445.2.14.2.6&diff_format=u Index: php-src/ext/standard/string.c diff -u php-src/ext/standard/string.c:1.445.2.14.2.5 php-src/ext/standard/string.c:1.445.2.14.2.6 --- php-src/ext/standard/string.c:1.445.2.14.2.5 Wed Jul 12 12:33:48 2006 +++ php-src/ext/standard/string.c Sun Jul 16 10:37:24 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: string.c,v 1.445.2.14.2.5 2006/07/12 12:33:48 tony2001 Exp $ */ +/* $Id: string.c,v 1.445.2.14.2.6 2006/07/16 10:37:24 helly Exp $ */ /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */ @@ -59,7 +59,8 @@ #define PHP_PATHINFO_DIRNAME 1 #define PHP_PATHINFO_BASENAME 2 #define PHP_PATHINFO_EXTENSION 4 -#define PHP_PATHINFO_ALL (PHP_PATHINFO_DIRNAME | PHP_PATHINFO_BASENAME | PHP_PATHINFO_EXTENSION) +#define PHP_PATHINFO_FILENAME 8 +#define PHP_PATHINFO_ALL (PHP_PATHINFO_DIRNAME | PHP_PATHINFO_BASENAME | PHP_PATHINFO_EXTENSION | PHP_PATHINFO_FILENAME) #define STR_STRSPN 0 #define STR_STRCSPN 1 @@ -74,6 +75,7 @@ REGISTER_LONG_CONSTANT("PATHINFO_DIRNAME", PHP_PATHINFO_DIRNAME, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PATHINFO_BASENAME", PHP_PATHINFO_BASENAME, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PATHINFO_EXTENSION", PHP_PATHINFO_EXTENSION, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PATHINFO_FILENAME", PHP_PATHINFO_FILENAME, CONST_CS | CONST_PERSISTENT); #ifdef HAVE_LOCALECONV /* If last members of struct lconv equal CHAR_MAX, no grouping is done */ @@ -1385,6 +1387,26 @@ efree(ret); } } + + if ((opt & PHP_PATHINFO_FILENAME) == PHP_PATHINFO_FILENAME) { + char *p; + int idx; + int have_basename = ((opt & PHP_PATHINFO_BASENAME) == PHP_PATHINFO_BASENAME); + + /* Have we alrady looked up the basename? */ + if (!have_basename) { + php_basename(path, path_len, NULL, 0, &ret, &ret_len TSRMLS_CC); + } + + p = strrchr(ret, '.'); + + idx = p ? (p - ret) : ret_len; + add_assoc_stringl(tmp, "filename", ret, idx, 1); + + if (!have_basename) { + efree(ret); + } + } if (opt == PHP_PATHINFO_ALL) { RETURN_ZVAL(tmp, 0, 1); http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/bug24098.phpt?r1=1.2&r2=1.2.6.1&diff_format=u Index: php-src/ext/standard/tests/strings/bug24098.phpt diff -u php-src/ext/standard/tests/strings/bug24098.phpt:1.2 php-src/ext/standard/tests/strings/bug24098.phpt:1.2.6.1 --- php-src/ext/standard/tests/strings/bug24098.phpt:1.2 Fri Dec 5 13:42:04 2003 +++ php-src/ext/standard/tests/strings/bug24098.phpt Sun Jul 16 10:37:24 2006 @@ -14,4 +14,6 @@ string(8) "dsds.asa" ["extension"]=> string(3) "asa" + ["filename"]=> + string(4) "dsds" } http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.123&r2=1.2027.2.547.2.124&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.123 php-src/NEWS:1.2027.2.547.2.124 --- php-src/NEWS:1.2027.2.547.2.123 Sat Jul 15 15:08:41 2006 +++ php-src/NEWS Sun Jul 16 10:37:24 2006 @@ -56,6 +56,8 @@ . Added readInnerXML(), readOuterXML(), readString(), setSchema(). (2.6.20+) . Changed to passing libxml options when loading reader. +- Added PATHINFO_FILENAME option to pathinfo() to get the filename. (Toby S., + Christian S.) - Added array_fill_keys(). (Marcus, Matthew Wilmas) - Added posix_initgroups() function. (Ilia) - Added an optional parameter to parse_url() to allow retrieval of distinct URL

« previous php.cvs (#39261) next »