From: Derick Rethans Date: Wed, 26 Oct 2005 07:48:51 +0000 (+0000) Subject: - Fixed ZTS mode X-Git-Tag: RELEASE_0_9_1~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9f28be05e34ed6e76fe562c9f0386e944175a600;p=php - Fixed ZTS mode - Added input_name_to_filter() function. --- diff --git a/ext/filter/filter.c b/ext/filter/filter.c index eedf49920a..718a0ea9e9 100644 --- a/ext/filter/filter.c +++ b/ext/filter/filter.c @@ -79,6 +79,7 @@ function_entry filter_functions[] = { PHP_FE(input_get, NULL) PHP_FE(input_filters_list, NULL) PHP_FE(input_has_variable, NULL) + PHP_FE(input_name_to_filter, NULL) PHP_FE(filter_data, NULL) {NULL, NULL, NULL} }; @@ -334,7 +335,7 @@ static unsigned int php_sapi_filter(int arg, char *var, char **val, unsigned int Z_STRVAL(raw_var) = estrndup(*val, val_len + 1); Z_TYPE(raw_var) = IS_STRING; - php_register_variable_ex(var, &raw_var, array_ptr TSRMLS_DC); + php_register_variable_ex(var, &raw_var, array_ptr TSRMLS_CC); /* Register mangled variable */ /* FIXME: Should not use php_register_variable_ex as that also registers @@ -342,13 +343,14 @@ static unsigned int php_sapi_filter(int arg, char *var, char **val, unsigned int Z_STRLEN(new_var) = val_len; Z_STRVAL(new_var) = estrndup(*val, val_len + 1); Z_TYPE(new_var) = IS_STRING; + if (val_len) { if (! (IF_G(default_filter) == FS_UNSAFE_RAW)) { - php_zval_filter(&new_var, IF_G(default_filter), 0, NULL, NULL/*charset*/ TSRMLS_DC); + php_zval_filter(&new_var, IF_G(default_filter), 0, NULL, NULL/*charset*/ TSRMLS_CC); } } - php_register_variable_ex(orig_var, &new_var, orig_array_ptr TSRMLS_DC); + php_register_variable_ex(orig_var, &new_var, orig_array_ptr TSRMLS_CC); if (new_val_len) { *new_val_len = out_len; @@ -564,6 +566,27 @@ PHP_FUNCTION(input_filters_list) } /* }}} */ +/* {{{ proto input_name_to_filter(string filtername) + * Returns the filter ID belonging to a named filter */ +PHP_FUNCTION(input_name_to_filter) +{ + int i, filter_len; + int size = sizeof(filter_list) / sizeof(filter_list_entry); + char *filter; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filter, &filter_len) == FAILURE) { + return; + } + + for (i = 0; i < size; ++i) { + if (strcmp(filter_list[i].name, filter) == 0) { + RETURN_LONG(filter_list[i].id); + } + } + RETURN_NULL(); +} +/* }}} */ + /* {{{ proto filter_data(mixed variable, int filter [, mixed filter_options [, string charset ]]) */ PHP_FUNCTION(filter_data) diff --git a/ext/filter/php_filter.h b/ext/filter/php_filter.h index 5572096a98..4fced62274 100644 --- a/ext/filter/php_filter.h +++ b/ext/filter/php_filter.h @@ -51,6 +51,7 @@ PHP_MINFO_FUNCTION(filter); PHP_FUNCTION(input_get); PHP_FUNCTION(input_filters_list); PHP_FUNCTION(input_has_variable); +PHP_FUNCTION(input_name_to_filter); PHP_FUNCTION(filter_data); ZEND_BEGIN_MODULE_GLOBALS(filter)