diff options
author | Marcus Boerger <helly@php.net> | 2007-04-22 15:31:16 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2007-04-22 15:31:16 +0000 |
commit | f62d5c9adf582cd26fd8db4df5e52686b57cd272 (patch) | |
tree | 99a1205fc62b8d9ad76f0baaabda94fa7762b86a /sapi | |
parent | 0369b693b4efe3c273f47e561ada742218e80425 (diff) | |
download | php-git-f62d5c9adf582cd26fd8db4df5e52686b57cd272.tar.gz |
- MFH getopt fixes
Diffstat (limited to 'sapi')
-rw-r--r-- | sapi/cgi/getopt.c | 4 | ||||
-rw-r--r-- | sapi/cli/getopt.c | 4 | ||||
-rwxr-xr-x | sapi/cli/tests/003-2.phpt | 25 |
3 files changed, 31 insertions, 2 deletions
diff --git a/sapi/cgi/getopt.c b/sapi/cgi/getopt.c index 963c4554e1..0dd8a45f5b 100644 --- a/sapi/cgi/getopt.c +++ b/sapi/cgi/getopt.c @@ -107,6 +107,7 @@ int php_getopt(int argc, char* const *argv, const opt_struct opts[], char **opta (*optind)++; return (php_opt_error(argc, argv, *optind-1, optchr, OPTERRCOLON, show_err)); } + arg_start = 1 + optchr; } if (opts_idx < 0) { while (1) { @@ -120,6 +121,7 @@ int php_getopt(int argc, char* const *argv, const opt_struct opts[], char **opta (*optind)++; } else { optchr++; + arg_start++; } return(php_opt_error(argc, argv, errind, errchr, OPTERRNF, show_err)); } else if (argv[*optind][optchr] == opts[opts_idx].opt_char) { @@ -143,7 +145,7 @@ int php_getopt(int argc, char* const *argv, const opt_struct opts[], char **opta } return opts[opts_idx].opt_char; } else { - if (arg_start == 2) { + if (arg_start >= 2) { if (!argv[*optind][optchr+1]) { dash = 0; diff --git a/sapi/cli/getopt.c b/sapi/cli/getopt.c index 963c4554e1..0dd8a45f5b 100644 --- a/sapi/cli/getopt.c +++ b/sapi/cli/getopt.c @@ -107,6 +107,7 @@ int php_getopt(int argc, char* const *argv, const opt_struct opts[], char **opta (*optind)++; return (php_opt_error(argc, argv, *optind-1, optchr, OPTERRCOLON, show_err)); } + arg_start = 1 + optchr; } if (opts_idx < 0) { while (1) { @@ -120,6 +121,7 @@ int php_getopt(int argc, char* const *argv, const opt_struct opts[], char **opta (*optind)++; } else { optchr++; + arg_start++; } return(php_opt_error(argc, argv, errind, errchr, OPTERRNF, show_err)); } else if (argv[*optind][optchr] == opts[opts_idx].opt_char) { @@ -143,7 +145,7 @@ int php_getopt(int argc, char* const *argv, const opt_struct opts[], char **opta } return opts[opts_idx].opt_char; } else { - if (arg_start == 2) { + if (arg_start >= 2) { if (!argv[*optind][optchr+1]) { dash = 0; diff --git a/sapi/cli/tests/003-2.phpt b/sapi/cli/tests/003-2.phpt new file mode 100755 index 0000000000..2ed9b07db4 --- /dev/null +++ b/sapi/cli/tests/003-2.phpt @@ -0,0 +1,25 @@ +--TEST-- +defining INI options with -d (as 2nd arg) +--SKIPIF-- +<?php +include "skipif.inc"; +if (substr(PHP_OS, 0, 3) == 'WIN') { + die ("skip not for Windows"); +} +?> +--FILE-- +<?php + +$php = getenv('TEST_PHP_EXECUTABLE'); + +var_dump(`"$php" -nd max_execution_time=111 -r 'var_dump(ini_get("max_execution_time"));'`); +var_dump(`"$php" -nd max_execution_time=500 -r 'var_dump(ini_get("max_execution_time"));'`); + +?> +===DONE=== +--EXPECTF-- +string(16) "string(3) "111" +" +string(16) "string(3) "500" +" +===DONE=== |