mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
virsh: add -- support
"--" means no option at the following arguments. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
This commit is contained in:
parent
57868d121b
commit
227f5df842
@ -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)
|
|||||||
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)
|
|||||||
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user