mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-10 05:17:59 +03:00
add VSH_OFLAG_REQ_OPT options
A VSH_OFLAG_REQ_OPT option means --optionname is required when used. It will kill any ambiguity, even a !VSH_OFLAG_REQ option listed before a VSH_OFLAG_REQ option, if the !VSH_OFLAG_REQ option is a VSH_OFLAG_REQ_OPT option. It will help us use optional argument with VSH_OT_ARGV argument. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
This commit is contained in:
parent
6cf77ca7bf
commit
fb246acfa7
@ -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 */
|
||||
@ -11453,6 +11454,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)
|
||||
|
Loading…
Reference in New Issue
Block a user