Before this patch:
virsh # start --domain dom1 [TAB][TAB] <- offers filename completion
virsh # start --domain [TAB][TAB] <- offers filename completion
After this patch:
virsh # start --domain dom1 [TAB][TAB] <- offers command completion
virsh # start --domain [TAB][TAB] <- calls domain completer if
defined, otherwise falls back to filename completion
Signed-off-by: Nishith Shah <nishithshah.2211(a)gmail.com>
---
tools/vsh.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/vsh.c b/tools/vsh.c
index e8aa7b3..2f1962b 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -2731,6 +2731,7 @@ vshReadlineParse(const char *text, int state)
goto error;
}
+ opts_seen = const_opts_seen;
opt_exists = true;
VIR_FREE(const_tkdata);
if (opt->type != VSH_OT_BOOL) {
@@ -2748,14 +2749,14 @@ vshReadlineParse(const char *text, int state)
goto error;
tkdata = const_tkdata;
+ virSkipSpaces((const char **)&tkdata);
}
if (STREQ(tkdata, sanitized_text)) {
/* auto-complete non-bool option arg */
data_complete = true;
break;
}
- if (opt->type != VSH_OT_ARGV)
- opts_need_arg &= ~(1ULL << opt_index);
+ non_bool_opt_exists = false;
} else {
tkdata = NULL;
/* opt type is BOOL */
--
2.1.4