diff --git a/glib/goption.c b/glib/goption.c index a351f84cb..c974598c8 100644 --- a/glib/goption.c +++ b/glib/goption.c @@ -1543,23 +1543,14 @@ parse_short_option (GOptionContext *context, if (idx < *argc - 1) { - if (!OPTIONAL_ARG (&group->entries[j])) + if (OPTIONAL_ARG (&group->entries[j]) && ((*argv)[idx + 1][0] == '-')) + value = NULL; + else { value = (*argv)[idx + 1]; add_pending_null (context, &((*argv)[idx + 1]), NULL); *new_idx = idx + 1; } - else - { - if ((*argv)[idx + 1][0] == '-') - value = NULL; - else - { - value = (*argv)[idx + 1]; - add_pending_null (context, &((*argv)[idx + 1]), NULL); - *new_idx = idx + 1; - } - } } else if (idx >= *argc - 1 && OPTIONAL_ARG (&group->entries[j])) value = NULL;