From a317347723174981b961825ee30b3314b11cc08c Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Tue, 6 Dec 2005 15:16:33 +0000 Subject: [PATCH] accept strings and arrays as callback name --- ext/filter/filter.c | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/ext/filter/filter.c b/ext/filter/filter.c index 2249fd769b..f618cd12e9 100644 --- a/ext/filter/filter.c +++ b/ext/filter/filter.c @@ -635,22 +635,38 @@ PHP_FUNCTION(filter_data) return; } - if (flags) { - switch (Z_TYPE_P(flags)) { - case IS_ARRAY: - options = flags; - break; - - case IS_STRING: - case IS_BOOL: - case IS_LONG: - convert_to_long(flags); - filter_flags = Z_LVAL_P(flags); - options = NULL; - break; + if (filter != FC_CALLBACK) { + if (flags) { + switch (Z_TYPE_P(flags)) { + case IS_ARRAY: + options = flags; + break; + + case IS_STRING: + case IS_BOOL: + case IS_LONG: + convert_to_long(flags); + filter_flags = Z_LVAL_P(flags); + options = NULL; + break; + } + } + } + else { + if (flags) { + switch (Z_TYPE_P(flags)) { + case IS_ARRAY: + case IS_STRING: + options = flags; + break; + + default: + convert_to_string(flags); + options = flags; + break; + } } } - php_zval_filter_recursive(var, filter, filter_flags, options, charset TSRMLS_CC); RETURN_ZVAL(var, 1, 0); } -- 2.40.0