提交 fb246acf 编写于 作者: L Lai Jiangshan 提交者: Eric Blake

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: NLai Jiangshan <laijs@cn.fujitsu.com>
上级 6cf77ca7
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册