mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
vsh: Remove unused infrastructure for command completion
Remove the old helpers which were used previously to pick which field to complete. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
da3c5638f9
commit
41efec103d
@ -770,7 +770,7 @@ virshParseArgv(vshControl *ctl, int argc, char **argv)
|
|||||||
ctl->imode = false;
|
ctl->imode = false;
|
||||||
if (argc - optind == 1) {
|
if (argc - optind == 1) {
|
||||||
vshDebug(ctl, VSH_ERR_INFO, "commands: \"%s\"\n", argv[optind]);
|
vshDebug(ctl, VSH_ERR_INFO, "commands: \"%s\"\n", argv[optind]);
|
||||||
return vshCommandStringParse(ctl, argv[optind], NULL, 0);
|
return vshCommandStringParse(ctl, argv[optind], NULL);
|
||||||
} else {
|
} else {
|
||||||
return vshCommandArgvParse(ctl, argc - optind, argv + optind);
|
return vshCommandArgvParse(ctl, argc - optind, argv + optind);
|
||||||
}
|
}
|
||||||
@ -908,7 +908,7 @@ main(int argc, char **argv)
|
|||||||
if (*ctl->cmdstr) {
|
if (*ctl->cmdstr) {
|
||||||
vshReadlineHistoryAdd(ctl->cmdstr);
|
vshReadlineHistoryAdd(ctl->cmdstr);
|
||||||
|
|
||||||
if (vshCommandStringParse(ctl, ctl->cmdstr, NULL, 0))
|
if (vshCommandStringParse(ctl, ctl->cmdstr, NULL))
|
||||||
vshCommandRun(ctl, ctl->cmd);
|
vshCommandRun(ctl, ctl->cmd);
|
||||||
}
|
}
|
||||||
VIR_FREE(ctl->cmdstr);
|
VIR_FREE(ctl->cmdstr);
|
||||||
|
@ -1331,7 +1331,7 @@ vshAdmParseArgv(vshControl *ctl, int argc, char **argv)
|
|||||||
ctl->imode = false;
|
ctl->imode = false;
|
||||||
if (argc - optind == 1) {
|
if (argc - optind == 1) {
|
||||||
vshDebug(ctl, VSH_ERR_INFO, "commands: \"%s\"\n", argv[optind]);
|
vshDebug(ctl, VSH_ERR_INFO, "commands: \"%s\"\n", argv[optind]);
|
||||||
return vshCommandStringParse(ctl, argv[optind], NULL, 0);
|
return vshCommandStringParse(ctl, argv[optind], NULL);
|
||||||
} else {
|
} else {
|
||||||
return vshCommandArgvParse(ctl, argc - optind, argv + optind);
|
return vshCommandArgvParse(ctl, argc - optind, argv + optind);
|
||||||
}
|
}
|
||||||
@ -1558,7 +1558,7 @@ main(int argc, char **argv)
|
|||||||
if (*ctl->cmdstr) {
|
if (*ctl->cmdstr) {
|
||||||
vshReadlineHistoryAdd(ctl->cmdstr);
|
vshReadlineHistoryAdd(ctl->cmdstr);
|
||||||
|
|
||||||
if (vshCommandStringParse(ctl, ctl->cmdstr, NULL, 0))
|
if (vshCommandStringParse(ctl, ctl->cmdstr, NULL))
|
||||||
vshCommandRun(ctl, ctl->cmd);
|
vshCommandRun(ctl, ctl->cmd);
|
||||||
}
|
}
|
||||||
VIR_FREE(ctl->cmdstr);
|
VIR_FREE(ctl->cmdstr);
|
||||||
|
20
tools/vsh.c
20
tools/vsh.c
@ -1430,7 +1430,6 @@ struct _vshCommandParser {
|
|||||||
char **, bool);
|
char **, bool);
|
||||||
/* vshCommandStringGetArg() */
|
/* vshCommandStringGetArg() */
|
||||||
char *pos;
|
char *pos;
|
||||||
const char *originalLine;
|
|
||||||
size_t point;
|
size_t point;
|
||||||
/* vshCommandArgvGetArg() */
|
/* vshCommandArgvGetArg() */
|
||||||
char **arg_pos;
|
char **arg_pos;
|
||||||
@ -1543,9 +1542,6 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser, vshCmd **partial)
|
|||||||
arg->data = g_steal_pointer(&tkdata);
|
arg->data = g_steal_pointer(&tkdata);
|
||||||
arg->next = NULL;
|
arg->next = NULL;
|
||||||
|
|
||||||
if (parser->pos - parser->originalLine == parser->point - 1)
|
|
||||||
arg->completeThis = true;
|
|
||||||
|
|
||||||
if (!first)
|
if (!first)
|
||||||
first = arg;
|
first = arg;
|
||||||
if (last)
|
if (last)
|
||||||
@ -1596,9 +1592,6 @@ vshCommandParse(vshControl *ctl, vshCommandParser *parser, vshCmd **partial)
|
|||||||
arg->data = g_steal_pointer(&tkdata);
|
arg->data = g_steal_pointer(&tkdata);
|
||||||
arg->next = NULL;
|
arg->next = NULL;
|
||||||
|
|
||||||
if (parser->pos - parser->originalLine == parser->point)
|
|
||||||
arg->completeThis = true;
|
|
||||||
|
|
||||||
if (!first)
|
if (!first)
|
||||||
first = arg;
|
first = arg;
|
||||||
if (last)
|
if (last)
|
||||||
@ -1812,23 +1805,18 @@ vshCommandStringGetArg(vshControl *ctl, vshCommandParser *parser, char **res,
|
|||||||
* @ctl virsh control structure
|
* @ctl virsh control structure
|
||||||
* @cmdstr: string to parse
|
* @cmdstr: string to parse
|
||||||
* @partial: store partially parsed command here
|
* @partial: store partially parsed command here
|
||||||
* @point: position of cursor (rl_point)
|
|
||||||
*
|
*
|
||||||
* Parse given string @cmdstr as a command and store it under
|
* Parse given string @cmdstr as a command and store it under
|
||||||
* @ctl->cmd. For readline completion, if @partial is not NULL on
|
* @ctl->cmd. For readline completion, if @partial is not NULL on
|
||||||
* the input then errors in parsing are ignored (because user is
|
* the input then errors in parsing are ignored (because user is
|
||||||
* still in progress of writing the command string) and partially
|
* still in progress of writing the command string) and partially
|
||||||
* parsed command is stored at *@partial (caller has to free it
|
* parsed command is stored at *@partial (caller has to free it
|
||||||
* afterwards). Among with @partial, caller must set @point which
|
* afterwards).
|
||||||
* is the position of cursor in @cmdstr (offset, numbered from 1).
|
|
||||||
* Parser will then set @completeThis attribute to true for the
|
|
||||||
* vshCmdOpt that appeared under the cursor.
|
|
||||||
*/
|
*/
|
||||||
bool
|
bool
|
||||||
vshCommandStringParse(vshControl *ctl,
|
vshCommandStringParse(vshControl *ctl,
|
||||||
char *cmdstr,
|
char *cmdstr,
|
||||||
vshCmd **partial,
|
vshCmd **partial)
|
||||||
size_t point)
|
|
||||||
{
|
{
|
||||||
vshCommandParser parser = { 0 };
|
vshCommandParser parser = { 0 };
|
||||||
|
|
||||||
@ -1836,8 +1824,6 @@ vshCommandStringParse(vshControl *ctl,
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
parser.pos = cmdstr;
|
parser.pos = cmdstr;
|
||||||
parser.originalLine = cmdstr;
|
|
||||||
parser.point = point;
|
|
||||||
parser.getNextArg = vshCommandStringGetArg;
|
parser.getNextArg = vshCommandStringGetArg;
|
||||||
return vshCommandParse(ctl, &parser, partial);
|
return vshCommandParse(ctl, &parser, partial);
|
||||||
}
|
}
|
||||||
@ -2844,7 +2830,7 @@ vshReadlineParse(const char *text, int state)
|
|||||||
|
|
||||||
*(line + rl_point) = '\0';
|
*(line + rl_point) = '\0';
|
||||||
|
|
||||||
vshCommandStringParse(NULL, line, &partial, rl_point);
|
vshCommandStringParse(NULL, line, &partial);
|
||||||
|
|
||||||
if (partial) {
|
if (partial) {
|
||||||
cmd = partial->def;
|
cmd = partial->def;
|
||||||
|
@ -149,8 +149,6 @@ struct _vshCmdOpt {
|
|||||||
char *data; /* allocated data, or NULL for bool option */
|
char *data; /* allocated data, or NULL for bool option */
|
||||||
const char **argv; /* for VSH_OT_ARGV, the list of options */
|
const char **argv; /* for VSH_OT_ARGV, the list of options */
|
||||||
char *argvstr; /* space-joined @argv */
|
char *argvstr; /* space-joined @argv */
|
||||||
bool completeThis; /* true if this is the option user's wishing to
|
|
||||||
autocomplete */
|
|
||||||
vshCmdOpt *next;
|
vshCmdOpt *next;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -292,7 +290,7 @@ int vshBlockJobOptionBandwidth(vshControl *ctl,
|
|||||||
bool vshCommandOptBool(const vshCmd *cmd, const char *name);
|
bool vshCommandOptBool(const vshCmd *cmd, const char *name);
|
||||||
bool vshCommandRun(vshControl *ctl, const vshCmd *cmd);
|
bool vshCommandRun(vshControl *ctl, const vshCmd *cmd);
|
||||||
bool vshCommandStringParse(vshControl *ctl, char *cmdstr,
|
bool vshCommandStringParse(vshControl *ctl, char *cmdstr,
|
||||||
vshCmd **partial, size_t point);
|
vshCmd **partial);
|
||||||
|
|
||||||
const char **
|
const char **
|
||||||
vshCommandOptArgv(const vshCmd *cmd,
|
vshCommandOptArgv(const vshCmd *cmd,
|
||||||
|
Loading…
Reference in New Issue
Block a user