diff options
author | Gustavo André dos Santos Lopes <cataphract@php.net> | 2012-07-24 15:13:02 +0200 |
---|---|---|
committer | Gustavo André dos Santos Lopes <cataphract@php.net> | 2012-07-24 15:13:02 +0200 |
commit | f356be68c244dd0dd70894ac4a5c9b4e3a882e04 (patch) | |
tree | edf55ce713ff6713df0308b298fdf01decc1fc44 /ext/intl/php_intl.c | |
parent | 777160f7b544971f7e73932482735af69bc42ec7 (diff) | |
download | php-git-f356be68c244dd0dd70894ac4a5c9b4e3a882e04.tar.gz |
ini intl.explicit_cleanup -> INTL_EXPLICIT_CLEANUP
Added an environment variable and removed the ini setting
intl.explicit_cleanup for calling u_cleanup()
Diffstat (limited to 'ext/intl/php_intl.c')
-rwxr-xr-x | ext/intl/php_intl.c | 31 |
1 files changed, 5 insertions, 26 deletions
diff --git a/ext/intl/php_intl.c b/ext/intl/php_intl.c index 38175ca54c..78da0f5e32 100755 --- a/ext/intl/php_intl.c +++ b/ext/intl/php_intl.c @@ -853,36 +853,11 @@ zend_function_entry intl_functions[] = { }; /* }}} */ -static zend_bool explicit_cleanup = 0; - -static ZEND_INI_MH(OnExplicitCleanupUpdate) -{ - if (stage == PHP_INI_STAGE_STARTUP) { - if (new_value_length == 2 && strcasecmp("on", new_value) == 0) { - explicit_cleanup = (zend_bool)1; - } - else if (new_value_length == 3 && strcasecmp("yes", new_value) == 0) { - explicit_cleanup = (zend_bool)1; - } - else if (new_value_length == 4 && strcasecmp("true", new_value) == 0) { - explicit_cleanup = (zend_bool)1; - } - else { - explicit_cleanup = (zend_bool)atoi(new_value); - } - return SUCCESS; - } else { - return FAILURE; - } -} - - /* {{{ INI Settings */ PHP_INI_BEGIN() STD_PHP_INI_ENTRY(LOCALE_INI_NAME, NULL, PHP_INI_ALL, OnUpdateStringUnempty, default_locale, zend_intl_globals, intl_globals) STD_PHP_INI_ENTRY("intl.error_level", "0", PHP_INI_ALL, OnUpdateLong, error_level, zend_intl_globals, intl_globals) STD_PHP_INI_ENTRY("intl.use_exceptions", "0", PHP_INI_ALL, OnUpdateBool, use_exceptions, zend_intl_globals, intl_globals) - PHP_INI_ENTRY_EX("intl.explicit_cleanup", "0", 0, OnExplicitCleanupUpdate, zend_ini_boolean_displayer_cb) PHP_INI_END() /* }}} */ @@ -1015,14 +990,18 @@ PHP_MINIT_FUNCTION( intl ) } /* }}} */ +#define EXPLICIT_CLEANUP_ENV_VAR "INTL_EXPLICIT_CLEANUP" + /* {{{ PHP_MSHUTDOWN_FUNCTION */ PHP_MSHUTDOWN_FUNCTION( intl ) { + const char *cleanup; /* For the default locale php.ini setting */ UNREGISTER_INI_ENTRIES(); - if (explicit_cleanup) { + cleanup = getenv(EXPLICIT_CLEANUP_ENV_VAR); + if (cleanup != NULL && !(cleanup[0] == '0' && cleanup[1] == '\0')) { u_cleanup(); } |