summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/user_filters.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c
index af035bddab..7600813405 100644
--- a/ext/standard/user_filters.c
+++ b/ext/standard/user_filters.c
@@ -411,21 +411,27 @@ static void filter_item_dtor(struct php_user_filter_data *fdat)
{
}
-/* {{{ proto array stream_get_filters()
+/* {{{ proto array stream_get_filters([bool system])
Returns a list of registered filters */
PHP_FUNCTION(stream_get_filters)
{
char *filter_name;
int key_flags, filter_name_len = 0;
+ zend_bool return_system = 0;
HashTable *filters_hash;
- if (ZEND_NUM_ARGS() != 0) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &return_system) == FAILURE) {
+ RETURN_FALSE;
}
array_init(return_value);
- filters_hash = php_get_stream_filters_hash();
+ /* TODO: Bug #21487 */
+
+ if (return_system)
+ filters_hash = php_get_stream_filters_hash();
+ else
+ filters_hash = BG(user_filter_map);
if (filters_hash) {
for(zend_hash_internal_pointer_reset(filters_hash);