Skip to content

Commit

Permalink
linux-user: Fix broken "-version" option
Browse files Browse the repository at this point in the history
Fix the "-version" option, which was accidentally broken in commit
fc9c541:
 * exit after printing version information rather than proceeding
   blithely onward (and likely printing the full usage message)
 * correct the cut-n-paste error in the usage message for it
 * don't insist on the presence of a following argument for
   options which don't take an argument (this was preventing
   'qemu-arm -version' from working)
 * remove a spurious argc check from the beginning of main() which
   meant 'QEMU_VERSION=1 qemu-arm' didn't work.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
  • Loading branch information
pm215 authored and balrog-kun committed Oct 21, 2011
1 parent c2e2343 commit 1386d4c
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions linux-user/main.c
Expand Up @@ -3084,6 +3084,7 @@ static void handle_arg_version(const char *arg)
{
printf("qemu-" TARGET_ARCH " version " QEMU_VERSION QEMU_PKGVERSION
", Copyright (c) 2003-2008 Fabrice Bellard\n");
exit(0);
}

struct qemu_argument {
Expand Down Expand Up @@ -3129,7 +3130,7 @@ struct qemu_argument arg_table[] = {
{"strace", "QEMU_STRACE", false, handle_arg_strace,
"", "log system calls"},
{"version", "QEMU_VERSION", false, handle_arg_version,
"", "log system calls"},
"", "display version information and exit"},
{NULL, NULL, false, NULL, NULL, NULL}
};

Expand Down Expand Up @@ -3231,16 +3232,15 @@ static int parse_args(int argc, char **argv)

for (arginfo = arg_table; arginfo->handle_opt != NULL; arginfo++) {
if (!strcmp(r, arginfo->argv)) {
if (optind >= argc) {
usage();
}

arginfo->handle_opt(argv[optind]);

if (arginfo->has_arg) {
if (optind >= argc) {
usage();
}
arginfo->handle_opt(argv[optind]);
optind++;
} else {
arginfo->handle_opt(NULL);
}

break;
}
}
Expand Down Expand Up @@ -3276,9 +3276,6 @@ int main(int argc, char **argv, char **envp)
int i;
int ret;

if (argc <= 1)
usage();

qemu_cache_utils_init(envp);

if ((envlist = envlist_create()) == NULL) {
Expand Down

0 comments on commit 1386d4c

Please sign in to comment.