]> granicus.if.org Git - php/commitdiff
Unicode support
authorDmitry Stogov <dmitry@php.net>
Fri, 12 Aug 2005 13:09:58 +0000 (13:09 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 12 Aug 2005 13:09:58 +0000 (13:09 +0000)
ext/spl/spl_iterators.c

index f7c669a40ddbfc7782018fbb76f74d3d4bee74e6..e131ce93f55d04fd701126cba0f5e85b947b9010 100755 (executable)
@@ -949,6 +949,10 @@ SPL_METHOD(dual_it, key)
        if (intern->current.data) {
                if (intern->current.key_type == HASH_KEY_IS_STRING) {
                        RETURN_STRINGL(intern->current.str_key, intern->current.str_key_len-1, 1);
+               } else if (intern->current.key_type == HASH_KEY_IS_BINARY) {
+                       RETURN_BINARYL(intern->current.str_key, intern->current.str_key_len-1, 1);
+               } else if (intern->current.key_type == HASH_KEY_IS_UNICODE) {
+                       RETURN_UNICODEL(intern->current.str_key, intern->current.str_key_len-1, 1);
                } else {
                        RETURN_LONG(intern->current.int_key);
                }
@@ -1911,6 +1915,14 @@ PHP_FUNCTION(iterator_to_array)
                                add_assoc_zval_ex(return_value, str_key, str_key_len, *data);
                                efree(str_key);
                                break;
+                       case HASH_KEY_IS_BINARY:
+                               add_u_assoc_zval_ex(return_value, IS_BINARY, str_key, str_key_len, *data);
+                               efree(str_key);
+                               break;
+                       case HASH_KEY_IS_UNICODE:
+                               add_u_assoc_zval_ex(return_value, IS_UNICODE, str_key, str_key_len, *data);
+                               efree(str_key);
+                               break;
                        case HASH_KEY_IS_LONG:
                                add_index_zval(return_value, int_key, *data);
                                break;