summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/getopt.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/getopt.c b/lib/getopt.c
index 6474ba74c9..212cbf7341 100644
--- a/lib/getopt.c
+++ b/lib/getopt.c
@@ -527,6 +527,8 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
pfound = p;
indfound = option_index;
}
+ else if (ambig)
+ ; /* Taking simpler path to handling ambiguities. */
else if (long_only
|| pfound->has_arg != p->has_arg
|| pfound->flag != p->flag
@@ -539,10 +541,9 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
struct option_list *newp = malloc (sizeof (*newp));
if (newp == NULL)
{
- ambig = 1; /* Use simpler fallback message. */
free_option_list (ambig_list);
ambig_list = NULL;
- break;
+ ambig = 1; /* Use simpler fallback message. */
}
else
#endif