From ba2f82f2eb11a04a3cbeecd9d9ea2b7f4057d4c7 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Wed, 20 Dec 2006 23:30:23 +0000 Subject: [PATCH] - Quick hackto make tests pass # There is something missing, ZVAL_TYPED_ASCII_STRING(z, type, char*,flags) # Or am i overseeinghow that works? --- ext/spl/spl_directory.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 550e880b0f..05a51e8579 100755 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -1225,16 +1225,28 @@ static int spl_filesystem_object_cast(zval *readobj, zval *writeobj, int type, v { spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(readobj TSRMLS_CC); - if (type == IS_STRING) { - switch (intern->type) { - case SPL_FS_INFO: - case SPL_FS_FILE: + switch (intern->type) { + case SPL_FS_INFO: + case SPL_FS_FILE: + if (type == IS_STRING) { ZVAL_STRINGL(writeobj, intern->file_name, intern->file_name_len, 1); return SUCCESS; - case SPL_FS_DIR: + } + if (type == IS_UNICODE && UG(unicode)) { + ZVAL_ASCII_STRINGL(writeobj, intern->file_name, intern->file_name_len, 1); + return SUCCESS; + } + break; + case SPL_FS_DIR: + if (type == IS_STRING) { ZVAL_STRING(writeobj, intern->u.dir.entry.d_name, 1); return SUCCESS; } + if (type == IS_UNICODE && UG(unicode)) { + ZVAL_ASCII_STRING(writeobj, intern->u.dir.entry.d_name, 1); + return SUCCESS; + } + break; } ZVAL_NULL(writeobj); return FAILURE; -- 2.50.1