diff options
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/getopt32.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libbb/getopt32.c b/libbb/getopt32.c index c7c4079c2..d0e83d88e 100644 --- a/libbb/getopt32.c +++ b/libbb/getopt32.c | |||
@@ -467,13 +467,17 @@ getopt32(char **argv, const char *applet_opts, ...) | |||
467 | } | 467 | } |
468 | for (on_off = complementary; on_off->opt_char; on_off++) | 468 | for (on_off = complementary; on_off->opt_char; on_off++) |
469 | if (on_off->opt_char == *s) | 469 | if (on_off->opt_char == *s) |
470 | break; | 470 | goto found_opt; |
471 | /* Without this, diagnostic of such bugs is not easy */ | ||
472 | bb_error_msg_and_die("NO OPT %c!", *s); | ||
473 | found_opt: | ||
471 | if (c == ':' && s[2] == ':') { | 474 | if (c == ':' && s[2] == ':') { |
472 | on_off->param_type = PARAM_LIST; | 475 | on_off->param_type = PARAM_LIST; |
473 | continue; | 476 | continue; |
474 | } | 477 | } |
475 | if (c == '+' && (s[2] == ':' || s[2] == '\0')) { | 478 | if (c == '+' && (s[2] == ':' || s[2] == '\0')) { |
476 | on_off->param_type = PARAM_INT; | 479 | on_off->param_type = PARAM_INT; |
480 | s++; | ||
477 | continue; | 481 | continue; |
478 | } | 482 | } |
479 | if (c == ':' || c == '\0') { | 483 | if (c == ':' || c == '\0') { |