mirror of https://gitee.com/openkylin/libvirt.git
vsh: Don't put VSH_OT_ALIAS onto list of completions
We've invented VSH_OT_ALIAS type for --option so that we can rewrite some --options (e.g. fix spelling). For instance blkdeviotune command uses this feature heavily: --options-with-dash are preferred over old --options_with_underscore. Both versions are supported but only the new ones (not aliased) are documented and reported in --help. Except for options completer, which happily put also aliased versions in front of user's eyes. Note, there is a second (gross) way we use aliases: to rewrite options from --oldoption to --newoption=value (for instance --shareable option of attach-disk is an alias of --mode=shareable). And just like with the previous group - don't generate them into the list of possible options. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
parent
d3b2d5158a
commit
58aeebe096
|
@ -2614,7 +2614,6 @@ vshReadlineOptionsGenerator(const char *text,
|
|||
{
|
||||
size_t list_index = 0;
|
||||
size_t len = strlen(text);
|
||||
const char *name;
|
||||
size_t ret_size = 0;
|
||||
char **ret = NULL;
|
||||
|
||||
|
@ -2624,12 +2623,15 @@ vshReadlineOptionsGenerator(const char *text,
|
|||
if (!cmd->opts)
|
||||
return NULL;
|
||||
|
||||
while ((name = cmd->opts[list_index].name)) {
|
||||
for (list_index = 0; cmd->opts[list_index].name; list_index++) {
|
||||
const char *name = cmd->opts[list_index].name;
|
||||
bool exists = false;
|
||||
vshCmdOpt *opt = last->opts;
|
||||
size_t name_len;
|
||||
|
||||
list_index++;
|
||||
/* Skip aliases, we do not report them in help output either. */
|
||||
if (cmd->opts[list_index].type == VSH_OT_ALIAS)
|
||||
continue;
|
||||
|
||||
if (len > 2) {
|
||||
/* provide auto-complete only when the text starts with -- */
|
||||
|
|
Loading…
Reference in New Issue