- MFH getopt fixes

This commit is contained in:
Marcus Boerger 2007-04-22 15:31:16 +00:00
parent 0369b693b4
commit f62d5c9adf
3 changed files with 31 additions and 2 deletions

View File

@ -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;

View File

@ -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;

25
sapi/cli/tests/003-2.phpt Executable file
View File

@ -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===