{
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;