[libvirt] [PATCH 03/10 V2] add VSH_OFLAG_REQ_OPT options

Daniel P. Berrange berrange at redhat.com
Mon Jun 13 22:47:12 UTC 2011


On Tue, Jun 07, 2011 at 05:11:10PM +0800, Lai Jiangshan wrote:
> A VSH_OFLAG_REQ_OPT option means --optionname is required when used.
> It will kill any ambiguity even !VSH_OFLAG_REQ option listed before
> VSH_OFLAG_REQ option if the !VSH_OFLAG_REQ option is a VSH_OFLAG_REQ_OPT option.
> 
> It will help us use optional arguement with VSH_OT_ARGV argument.
> 
> Signed-off-by: Lai Jiangshan <laijs at cn.fujitsu.com>
> ---
>  tools/virsh.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/tools/virsh.c b/tools/virsh.c
> index 638029c..d13c12b 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -152,6 +152,7 @@ enum {
>      VSH_OFLAG_NONE     = 0,        /* without flags */
>      VSH_OFLAG_REQ      = (1 << 0), /* option required */
>      VSH_OFLAG_EMPTY_OK = (1 << 1), /* empty string option allowed */
> +    VSH_OFLAG_REQ_OPT  = (1 << 2), /* --optionname required */
>  };
>  
>  /* dummy */
> @@ -11375,6 +11376,12 @@ vshCmddefOptParse(const vshCmdDef *cmd, uint32_t* opts_need_arg,
>                  return -1; /* bool options can't be mandatory */
>              continue;
>          }
> +        if (opt->flag & VSH_OFLAG_REQ_OPT) {
> +            if (opt->flag & VSH_OFLAG_REQ)
> +                *opts_required |= 1 << i;
> +            continue;
> +        }
> +
>          *opts_need_arg |= 1 << i;
>          if (opt->flag & VSH_OFLAG_REQ) {
>              if (optional)

ACK

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list