diff options
Diffstat (limited to 'ext/standard/dir.c')
-rw-r--r-- | ext/standard/dir.c | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/ext/standard/dir.c b/ext/standard/dir.c index 2fe0d1bc65..81d1ffb611 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -63,21 +63,13 @@ int dir_globals_id; php_dir_globals dir_globals; #endif -#if 0 -typedef struct { - int id; - DIR *dir; -} php_dir; - -static int le_dirp; -#endif - static zend_class_entry *dir_class_entry_ptr; #define FETCH_DIRP() \ - if (zend_parse_parameters(ZEND_NUM_ARGS(), "|r", &id) == FAILURE) { \ - return; \ - } \ + ZEND_PARSE_PARAMETERS_START(0, 1) \ + Z_PARAM_OPTIONAL \ + Z_PARAM_RESOURCE(id) \ + ZEND_PARSE_PARAMETERS_END(); \ if (ZEND_NUM_ARGS() == 0) { \ myself = getThis(); \ if (myself) { \ @@ -224,9 +216,11 @@ static void _php_do_opendir(INTERNAL_FUNCTION_PARAMETERS, int createobject) php_stream_context *context = NULL; php_stream *dirp; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "p|r", &dirname, &dir_len, &zcontext) == FAILURE) { - RETURN_NULL(); - } + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_PATH(dirname, dir_len) + Z_PARAM_OPTIONAL + Z_PARAM_RESOURCE(zcontext) + ZEND_PARSE_PARAMETERS_END(); context = php_stream_context_from_zval(zcontext, 0); @@ -300,9 +294,9 @@ PHP_FUNCTION(chroot) int ret; size_t str_len; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "p", &str, &str_len) == FAILURE) { - RETURN_FALSE; - } + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_PATH(str, str_len) + ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE); ret = chroot(str); if (ret != 0) { @@ -332,9 +326,9 @@ PHP_FUNCTION(chdir) int ret; size_t str_len; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "p", &str, &str_len) == FAILURE) { - RETURN_FALSE; - } + ZEND_PARSE_PARAMETERS_START(1, 1) + Z_PARAM_PATH(str, str_len) + ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE); if (php_check_open_basedir(str)) { RETURN_FALSE; @@ -429,7 +423,7 @@ PHP_NAMED_FUNCTION(php_if_readdir) Find pathnames matching a pattern */ PHP_FUNCTION(glob) { - int cwd_skip = 0; + size_t cwd_skip = 0; #ifdef ZTS char cwd[MAXPATHLEN]; char work_pattern[MAXPATHLEN]; @@ -443,9 +437,11 @@ PHP_FUNCTION(glob) int ret; zend_bool basedir_limit = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "p|l", &pattern, &pattern_len, &flags) == FAILURE) { - return; - } + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_PATH(pattern, pattern_len) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(flags) + ZEND_PARSE_PARAMETERS_END(); if (pattern_len >= MAXPATHLEN) { php_error_docref(NULL, E_WARNING, "Pattern exceeds the maximum allowed length of %d characters", MAXPATHLEN); @@ -468,7 +464,7 @@ PHP_FUNCTION(glob) cwd[2] = '\0'; } #endif - cwd_skip = (int)strlen(cwd)+1; + cwd_skip = strlen(cwd)+1; snprintf(work_pattern, MAXPATHLEN, "%s%c%s", cwd, DEFAULT_SLASH, pattern); pattern = work_pattern; @@ -566,9 +562,12 @@ PHP_FUNCTION(scandir) zval *zcontext = NULL; php_stream_context *context = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "p|lr", &dirn, &dirn_len, &flags, &zcontext) == FAILURE) { - return; - } + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_PATH(dirn, dirn_len) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(flags) + Z_PARAM_RESOURCE(zcontext) + ZEND_PARSE_PARAMETERS_END(); if (dirn_len < 1) { php_error_docref(NULL, E_WARNING, "Directory name cannot be empty"); |