mirror of
https://github.com/qemu/qemu.git
synced 2024-11-23 19:03:38 +08:00
storage-daemon: report unexpected arguments on the fly
If the first character of optstring is '-', then each nonoption argv element is handled as if it were the argument of an option with character code 1. This removes the reordering of the argv array, and enables usage of loc_set_cmdline to provide better error messages. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20210301152844.291799-2-pbonzini@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
3b6ad6230e
commit
a5ef35052e
@ -174,7 +174,7 @@ static void process_options(int argc, char *argv[])
|
||||
* they are given on the command lines. This means that things must be
|
||||
* defined first before they can be referenced in another option.
|
||||
*/
|
||||
while ((c = getopt_long(argc, argv, "hT:V", long_options, NULL)) != -1) {
|
||||
while ((c = getopt_long(argc, argv, "-hT:V", long_options, NULL)) != -1) {
|
||||
switch (c) {
|
||||
case '?':
|
||||
exit(EXIT_FAILURE);
|
||||
@ -275,14 +275,13 @@ static void process_options(int argc, char *argv[])
|
||||
qobject_unref(args);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
error_report("Unexpected argument: %s", optarg);
|
||||
exit(EXIT_FAILURE);
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
}
|
||||
if (optind != argc) {
|
||||
error_report("Unexpected argument: %s", argv[optind]);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
Loading…
Reference in New Issue
Block a user