From: Andrei Zmievski Date: Fri, 21 Apr 2006 21:10:01 +0000 (+0000) Subject: Add collator_set_default(). X-Git-Tag: RELEASE_1_3~16 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=76d6cca78e2a403e96ffd252c793ae9ff79b2c94;p=php Add collator_set_default(). --- diff --git a/ext/unicode/collator.c b/ext/unicode/collator.c index b175d2f247..a4a808c947 100644 --- a/ext/unicode/collator.c +++ b/ext/unicode/collator.c @@ -26,13 +26,14 @@ zend_function_entry collator_funcs_collator[] = { ZEND_ME(collator, __construct, NULL, ZEND_ACC_PUBLIC) - ZEND_FENTRY(getDefault, ZEND_FN(collator_get_default), NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) - ZEND_NAMED_FE(compare, ZEND_FN(collator_compare), NULL) - ZEND_NAMED_FE(setStrength, ZEND_FN(collator_set_strength), NULL) + ZEND_FENTRY(getDefault, ZEND_FN(collator_get_default), NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + ZEND_FENTRY(setDefault, ZEND_FN(collator_set_default), NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + ZEND_NAMED_FE(compare, ZEND_FN(collator_compare), NULL) + ZEND_NAMED_FE(setStrength, ZEND_FN(collator_set_strength), NULL) ZEND_NAMED_FE(setAttribute, ZEND_FN(collator_set_attribute), NULL) - ZEND_NAMED_FE(getStrength, ZEND_FN(collator_get_strength), NULL) + ZEND_NAMED_FE(getStrength, ZEND_FN(collator_get_strength), NULL) ZEND_NAMED_FE(getAttribute, ZEND_FN(collator_get_attribute), NULL) - ZEND_NAMED_FE(sort, ZEND_FN(collator_sort), NULL) + ZEND_NAMED_FE(sort, ZEND_FN(collator_sort), NULL) {NULL, NULL, NULL} }; @@ -290,12 +291,12 @@ PHP_FUNCTION(collator_get_attribute) RETURN_LONG(value); } -/* {{{ proto object collator_get_default(void) U +/* {{{ proto Collator collator_get_default(void) U Returns default collator */ PHP_FUNCTION(collator_get_default) { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "") == FAILURE) { - return; + RETURN_FALSE; } UG(default_collator)->refcount++; @@ -303,6 +304,26 @@ PHP_FUNCTION(collator_get_default) } /* }}} */ +/* {{{ proto void collator_set_default(Collator coll) U + Returns default collator */ +PHP_FUNCTION(collator_set_default) +{ + zval *coll; + php_collator_obj *coll_obj; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &coll, unicode_collator_ce) == FAILURE) { + RETURN_FALSE; + } + + coll_obj = (php_collator_obj *) zend_object_store_get_object(coll TSRMLS_CC); + zend_collator_destroy(UG(default_collator)); + coll_obj->zcoll->refcount++; + UG(default_collator) = coll_obj->zcoll; + + RETURN_TRUE; +} +/* }}} */ + /* * Local variables: * tab-width: 4 diff --git a/ext/unicode/php_unicode.h b/ext/unicode/php_unicode.h index b3b53181c3..f8dc9ae202 100644 --- a/ext/unicode/php_unicode.h +++ b/ext/unicode/php_unicode.h @@ -57,7 +57,6 @@ PHP_MINFO_FUNCTION(unicode); PHP_FUNCTION(locale_get_default); PHP_FUNCTION(locale_set_default); -PHP_FUNCTION(collator_get_default); PHP_FUNCTION(collator_create); PHP_FUNCTION(collator_compare); PHP_FUNCTION(collator_sort); @@ -65,6 +64,8 @@ PHP_FUNCTION(collator_set_strength); PHP_FUNCTION(collator_set_attribute); PHP_FUNCTION(collator_get_strength); PHP_FUNCTION(collator_get_attribute); +PHP_FUNCTION(collator_get_default); +PHP_FUNCTION(collator_set_default); PHP_METHOD(collator, __construct); void php_init_collation(TSRMLS_D); diff --git a/ext/unicode/unicode.c b/ext/unicode/unicode.c index 6ffe8f0a1d..4f93e116f3 100644 --- a/ext/unicode/unicode.c +++ b/ext/unicode/unicode.c @@ -245,6 +245,7 @@ zend_function_entry unicode_functions[] = { PHP_FE(collator_create, NULL) PHP_FE(collator_compare, NULL) PHP_FE(collator_get_default, NULL) + PHP_FE(collator_set_default, NULL) { NULL, NULL, NULL } }; /* }}} */