[libvirt] [PATCH] virsh: don't shorten incorrect arguments

Eric Blake eblake at redhat.com
Tue Apr 23 16:05:53 UTC 2013


On 04/23/2013 08:08 AM, Ján Tomko wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=949373
> 
> Print the whole incorrect argument as specified by the user
> instead of the short option.
> 

>          case 'd':
>              if (virStrToLong_i(optarg, NULL, 10, &debug) < 0) {
> -                vshError(ctl, "%s", _("option -d takes a numeric argument"));
> +                vshError(ctl, _("option %s takes a numeric argument"), argv[optind - 2]);

I'm not sure this gives the nicest output.  With short option bundling,
this results in

$ tools/virsh -rd
error: option '-rd' requires an argument

even though the -r option was just fine, and it is really just the
bundled '-d' option that has a problem.

Also, I wonder if we should be using a non-NULL 5th parameter to
getopt_long; if you provide a longindex parameter, then you can provide
a nicer error message that mentions the full "--debug" name (rather than
the user-typed abbreviation '--debu') by indexing back into the
long-option table (of course, do this only when it was a long option
that was misused).

It's a strict improvement over what we currently have, but I'm wondering
if we should try for a v2 that does even better.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130423/0e404c60/attachment-0001.sig>


More information about the libvir-list mailing list