From: Marcus Boerger Date: Sun, 22 Apr 2007 15:24:19 +0000 (+0000) Subject: - Merge getopt fixes from re2c X-Git-Tag: RELEASE_1_2_0~249 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=223cd73da9038107da2bed1427fc08f3341dc892;p=php - Merge getopt fixes from re2c --- 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;