On Mon, Jul 18, 2016 at 03:21:31PM +0200, Pino Toscano wrote:
On Monday, 18 July 2016 11:46:46 CEST Richard W.M. Jones wrote:
---
Note that this changes the way -foo options are handled: this basically makes them as --foo, but still working as -foo because getopt_long_only is used. IMHO either add a new M".." ([M]edium or [T]runcated or [D]ash or ...), or turn S to get a string instead.
Do you mean only for the 'virt-v2v --help' output? I don't think there is any other place in the code where the M option would be handled differently from the L option.
- let validate_key key = - if String.length key == 0 || key == "-" || key == "--" - || key.[0] != '-' then - invalid_arg (sprintf "invalid option key: '%s'" key) + let validate_key = function + | L"" -> invalid_arg "Getopt spec: invalid empty long option" + | L"help" -> invalid_arg "Getopt spec: should not have L\"help\""
Theoretically both Arg and the current Getopt allow applications to provide an own handler for --help, instead of the built-in one.
Sure, but I don't think that's a good idea :-)
+ | L s when String.contains s '_' -> + invalid_arg (sprintf "Getopt spec: L%S should not contain '_'" + s)
Why this limitation?
I guess we don't need this limitation. It's there to catch accidental underscores. If we actually have to use underscore parameters then we can remove this later.
IMHO it'd be better to sort the specs at this point, like done before; otherwise, --help (and potentially any non-hidden built-in option added here) will be shown only at the end of the other specs.
At the beginning of the list, and it was deliberate. However it's just a matter of preference, and the options could be sorted later. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top