Re: cvs: php-src /ext/spl spl_directory.c

From: Date: Thu, 21 Dec 2006 18:04:23 +0000
Subject: Re: cvs: php-src /ext/spl spl_directory.c
References: 1 2 3  Groups: php.cvs 
Request: Send a blank email to php-cvs+get-42281@lists.php.net to get a copy of this message
So do an if() statement then.. -Andrei On Dec 21, 2006, at 12:21 AM, Marcus Boerger wrote:
Hello Andrei, cast tells mewhat type is requested. That must not necessarily be what UG(unicode) tells me. So i have toreturn whatever that type says. best regards marcus Thursday, December 21, 2006, 7:43:18 AM, you wrote:
If UG(unicode) is on, ZVAL_ASCII_STRING() will convert binary string arg to Unicode and return it as IS_UNICODE, otherwise it will return string as-is (IS_STRING). In the former case, the string is assumed to contain only ASCII chars.
What are you after exactly?
-Andrei
On Dec 20, 2006, at 3:30 PM, Marcus Boerger wrote:
helly         Wed Dec 20 23:30:23 2006 UTC
Modified files:
    /php-src/ext/spl  spl_directory.c
Log: - Quick hackto make tests pass # There is something missing, ZVAL_TYPED_ASCII_STRING(z, type, char*,flags) # Or am i overseeinghow that works? http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c? r1=1.105&r2=1.106&diff_format=u Index: php-src/ext/spl/spl_directory.c diff -u php-src/ext/spl/spl_directory.c:1.105 php-src/ext/spl/ spl_directory.c:1.106
--- php-src/ext/spl/spl_directory.c:1.105     Sun Nov 12 17:56:14 2006
+++ php-src/ext/spl/spl_directory.c Wed Dec 20 23:30:23 2006 @@ -16,7 +16,7 @@ +--------------------------------------------------------------------- -+ */ -/* $Id: spl_directory.c,v 1.105 2006/11/12 17:56:14 helly Exp $ */ +/* $Id: spl_directory.c,v 1.106 2006/12/20 23:30:23 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -1225,16 +1225,28 @@ {
      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;
--PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Best regards, Marcus

« previous php.cvs (#42281) next »