helly Thu Jan 18 21:40:18 2007 UTC
Modified files:
/php-src/ext/spl spl_directory.c
Log:
- Simplify by using zspprintf
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.112&r2=1.113&diff_format=u
Index: php-src/ext/spl/spl_directory.c
diff -u php-src/ext/spl/spl_directory.c:1.112
php-src/ext/spl/spl_directory.c:1.113
--- php-src/ext/spl/spl_directory.c:1.112 Wed Jan 17 22:43:53 2007
+++ php-src/ext/spl/spl_directory.c Thu Jan 18 21:40:18 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_directory.c,v 1.112 2007/01/17 22:43:53 helly Exp $ */
+/* $Id: spl_directory.c,v 1.113 2007/01/18 21:40:18 helly Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -164,11 +164,7 @@
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not
initialized");
break;
case SPL_FS_DIR:
- if (intern->path_type == IS_UNICODE) {
- intern->file_name_len =
uspprintf(&intern->file_name.s, 0, "%r%c%s", intern->path, DEFAULT_SLASH,
intern->u.dir.entry.d_name);
- } else {
- intern->file_name_len =
spprintf(&intern->file_name.s, 0, "%s%c%s", intern->path, DEFAULT_SLASH,
intern->u.dir.entry.d_name);
- }
+ intern->file_name_len = zspprintf(intern->path_type,
&intern->file_name, 0, "%R%c%s", intern->path_type, intern->path,
DEFAULT_SLASH, intern->u.dir.entry.d_name);
intern->file_name_type = intern->path_type;
break;
}
@@ -964,10 +960,8 @@
subdir =
(spl_filesystem_object*)zend_object_store_get_object(return_value TSRMLS_CC);
if (subdir) {
- if (intern->u.dir.sub_path_type == IS_UNICODE &&
intern->u.dir.sub_path.u && intern->u.dir.sub_path.u[0]) {
- subdir->u.dir.sub_path_len =
uspprintf(&subdir->u.dir.sub_path.s, 0, "%r%c%s", intern->u.dir.sub_path,
DEFAULT_SLASH, intern->u.dir.entry.d_name);
- } else if (intern->u.dir.sub_path_type == IS_STRING &&
intern->u.dir.sub_path.s && intern->u.dir.sub_path.s[0]) {
- subdir->u.dir.sub_path_len =
spprintf(&subdir->u.dir.sub_path.s, 0, "%s%c%s", intern->u.dir.sub_path,
DEFAULT_SLASH, intern->u.dir.entry.d_name);
+ if (intern->u.dir.sub_path.v && intern->u.dir.sub_path_len > 1)
{
+ subdir->u.dir.sub_path_len =
zspprintf(intern->u.dir.sub_path_type, &subdir->u.dir.sub_path, 0, "%R%c%s",
intern->u.dir.sub_path_type, intern->u.dir.sub_path, DEFAULT_SLASH,
intern->u.dir.entry.d_name);
} else {
subdir->u.dir.sub_path_len =
strlen(intern->u.dir.entry.d_name);
subdir->u.dir.sub_path_type = IS_STRING;
@@ -1001,15 +995,11 @@
{
spl_filesystem_object *intern =
(spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zstr sub_name;
- int len;
+ int sub_len;
- if (intern->u.dir.sub_path.u) {
- if (intern->u.dir.sub_path_type == IS_UNICODE) {
- len = uspprintf(&sub_name.s, 0, "%r%c%s",
intern->u.dir.sub_path, DEFAULT_SLASH, intern->u.dir.entry.d_name);
- } else {
- len = spprintf(&sub_name.s, 0, "%s%c%s",
intern->u.dir.sub_path, DEFAULT_SLASH, intern->u.dir.entry.d_name);
- }
- RETURN_ZSTRL(intern->u.dir.sub_path_type, sub_name, len, 0);
+ if (intern->u.dir.sub_path.v) {
+ sub_len = zspprintf(intern->u.dir.sub_path_type, &sub_name, 0,
"%R%c%s", intern->u.dir.sub_path_type, intern->u.dir.sub_path, DEFAULT_SLASH,
intern->u.dir.entry.d_name);
+ RETURN_ZSTRL(intern->u.dir.sub_path_type, sub_name, sub_len, 0);
} else {
RETURN_RT_STRING(intern->u.dir.entry.d_name, ZSTR_DUPLICATE);
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php