diff options
author | Dmitry Stogov <dmitry@php.net> | 2005-08-12 13:09:58 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2005-08-12 13:09:58 +0000 |
commit | e1627558ed1e884ce549c3fde07cf75917471232 (patch) | |
tree | 2db3cd41354be98f0373fe4dddfa3b4cd1661617 | |
parent | 3e7ab37d9f2fe3f2b08d4253c207a92b57a6bd6a (diff) | |
download | php-git-e1627558ed1e884ce549c3fde07cf75917471232.tar.gz |
Unicode support
-rwxr-xr-x | ext/spl/spl_iterators.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index f7c669a40d..e131ce93f5 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -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; |