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@xxxxxxxxxxxxxx> > --- > 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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list