summaryrefslogtreecommitdiff
path: root/Zend/zend_builtin_functions.c
diff options
context:
space:
mode:
authorJohannes Schlüter <johannes@php.net>2007-08-02 16:54:44 +0000
committerJohannes Schlüter <johannes@php.net>2007-08-02 16:54:44 +0000
commitc0667eeaff3c37af97056037b2c496da042eaa86 (patch)
tree8c04d841be8a884cdd8ac969611c320e6a2b4f58 /Zend/zend_builtin_functions.c
parent959aa4f5967d398385960dfe8a2f47b2c2be8c6d (diff)
downloadphp-git-c0667eeaff3c37af97056037b2c496da042eaa86.tar.gz
- MFH: Respect value of the parameter for get_loaded_extensions() and only
print zend extensions if set to true
Diffstat (limited to 'Zend/zend_builtin_functions.c')
-rw-r--r--Zend/zend_builtin_functions.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index e4fd10226f..ecdad68893 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1570,31 +1570,20 @@ static int add_constant_info(zend_constant *constant, void *arg TSRMLS_DC)
}
-/* {{{ proto array get_loaded_extensions([mixed categorize]) U
+/* {{{ proto array get_loaded_extensions([bool zend_extensions]) U
Return an array containing names of loaded extensions */
ZEND_FUNCTION(get_loaded_extensions)
{
- int argc = ZEND_NUM_ARGS();
+ int zendext = 0;
- if (argc != 0 && argc != 1) {
- ZEND_WRONG_PARAM_COUNT();
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &zendext) == FAILURE) {
+ return;
}
array_init(return_value);
- if (argc) {
- zval *modules;
- zval *extensions;
-
- MAKE_STD_ZVAL(modules);
- array_init(modules);
- zend_hash_apply_with_argument(&module_registry, (apply_func_arg_t) add_extension_info, modules TSRMLS_CC);
- add_assoc_zval_ex(return_value, "PHP Modules", sizeof("PHP Modules"), modules);
-
- MAKE_STD_ZVAL(extensions);
- array_init(extensions);
- zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) add_zendext_info, extensions TSRMLS_CC);
- add_assoc_zval_ex(return_value, "Zend Extensions", sizeof("Zend Extensions"), extensions);
+ if (zendext) {
+ zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) add_zendext_info, return_value TSRMLS_CC);
} else {
zend_hash_apply_with_argument(&module_registry, (apply_func_arg_t) add_extension_info, return_value TSRMLS_CC);
}