mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
virsh: Complete multiple options when any one option requires data
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@gmail.com>
This commit is contained in:
committed by
Michal Privoznik
parent
2550579669
commit
731ee28c5b
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user