virsh: add -- support

"--" means no option at the following arguments.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
This commit is contained in:
Lai Jiangshan 2010-10-12 15:14:22 +08:00 committed by Eric Blake
parent 57868d121b
commit 227f5df842

View File

@ -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;