summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schlüter <johannes@php.net>2007-03-22 21:35:56 +0000
committerJohannes Schlüter <johannes@php.net>2007-03-22 21:35:56 +0000
commit062443ea9794a1177bb0a19b17e965dff074e7dd (patch)
tree7406d022dd95ddfedc21a0165e9cac8d98a62b03
parentf9e8d2164ea31c4afd7c0fa6009432244b527c6a (diff)
downloadphp-git-062443ea9794a1177bb0a19b17e965dff074e7dd.tar.gz
- MFH: Fix handling of not existing long CLI options
-rw-r--r--sapi/cli/getopt.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sapi/cli/getopt.c b/sapi/cli/getopt.c
index dd44703803..fbe97e2f9f 100644
--- a/sapi/cli/getopt.c
+++ b/sapi/cli/getopt.c
@@ -79,11 +79,16 @@ int php_getopt(int argc, char* const *argv, const opt_struct opts[], char **opta
}
if ((argv[*optind][0] == '-') && (argv[*optind][1] == '-')) {
/* '--' indicates end of args if not followed by a known long option name */
+ if (argv[*optind][2] == '\0') {
+ (*optind)++;
+ return(EOF);
+ }
+
while (1) {
opts_idx++;
if (opts[opts_idx].opt_char == '-') {
(*optind)++;
- return(EOF);
+ return(php_opt_error(argc, argv, *optind-1, optchr, OPTERRARG, show_err));
} else if (opts[opts_idx].opt_name && !strcmp(&argv[*optind][2], opts[opts_idx].opt_name)) {
break;
}