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
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php