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

virsh: add -- support

"--" means no option at the following arguments.
Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
上级 57868d12
...@@ -10469,6 +10469,7 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser) ...@@ -10469,6 +10469,7 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser)
vshCmdOpt *last = NULL; vshCmdOpt *last = NULL;
const vshCmdDef *cmd = NULL; const vshCmdDef *cmd = NULL;
vshCommandToken tk; vshCommandToken tk;
bool data_only = false;
int data_ct = 0; int data_ct = 0;
first = NULL; first = NULL;
...@@ -10491,8 +10492,10 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser) ...@@ -10491,8 +10492,10 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser)
goto syntaxError; /* ... or ignore this command only? */ goto syntaxError; /* ... or ignore this command only? */
} }
VIR_FREE(tkdata); VIR_FREE(tkdata);
} else if (*tkdata == '-' && *(tkdata + 1) == '-' && *(tkdata + 2) } else if (data_only) {
&& c_isalnum(*(tkdata + 2))) { goto get_data;
} else if (tkdata[0] == '-' && tkdata[1] == '-' &&
c_isalnum(tkdata[2])) {
char *optstr = strchr(tkdata + 2, '='); char *optstr = strchr(tkdata + 2, '=');
if (optstr) { if (optstr) {
*optstr = '\0'; /* convert the '=' to '\0' */ *optstr = '\0'; /* convert the '=' to '\0' */
...@@ -10532,7 +10535,12 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser) ...@@ -10532,7 +10535,12 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser)
goto syntaxError; goto syntaxError;
} }
} }
} else if (tkdata[0] == '-' && tkdata[1] == '-' &&
tkdata[2] == '\0') {
data_only = true;
continue;
} else { } else {
get_data:
if (!(opt = vshCmddefGetData(cmd, data_ct++))) { if (!(opt = vshCmddefGetData(cmd, data_ct++))) {
vshError(ctl, _("unexpected data '%s'"), tkdata); vshError(ctl, _("unexpected data '%s'"), tkdata);
goto syntaxError; goto syntaxError;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册