On Wed, Apr 23, 2014 at 12:04:49PM +0200, Kevin Wolf wrote:
> From: Fam Zheng <f...@redhat.com>
> 
> Previously, when there is a user error in argv parsing, qemu-img prints
> help text and exits.
> 
> Add an error_exit function to print a helpful error message and a hint
> to run 'qemu-img --help' for more information.
> 
> As a bonus, "qemu-img <cmd> --help" now has a more reasonable exit code
> 0.
> 
> In the future the help text should be split by sub command, and only
> print the information for the specified command.
> 
> Signed-off-by: Fam Zheng <f...@redhat.com>
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> ---

This breaks 'qemu-img --help':

./qemu-img --help
qemu-img: Command not found: --help
Try 'qemu-img --help' for more information

See below:


<snip>
  
>      bs = bdrv_new_open("image", filename, fmt,
> @@ -2781,8 +2799,9 @@ int main(int argc, char **argv)
>  
>      qemu_init_main_loop();
>      bdrv_init();
> -    if (argc < 2)
> -        help();
> +    if (argc < 2) {
> +        error_exit("Not enough arguments");
> +    }

As an aside, are we sure we want './qemu-img' with no arguments to not
return the full help message?

>      cmdname = argv[1];
>      argc--; argv++;
>  
> @@ -2794,6 +2813,5 @@ int main(int argc, char **argv)
>      }
>  
>      /* not found */
> -    help();
> -    return 0;
> +    error_exit("Command not found: %s", cmdname);

Looks like we just relied previously on the default 'not found' case
for help() to provide the "--help" option.

>  }
> -- 
> 1.8.3.1
> 
> 

Reply via email to