[libvirt] [PATCH] vsh: Pass correct values for command line completion

John Ferlan jferlan at redhat.com
Fri Oct 28 21:09:38 UTC 2016


Commit id 'dcfdf341' passes 'opts_need_arg' and 'opts_seen' to
vshCmddefGetData, but that seems to be incorrect as those values
are not initialized properly (something at least one compiler found).
Instead the static 'const_opts_need_arg' and 'const_opts_seen' values
should be passed.

By passing unitialized values leads to not finding possible options
for simpler commands (domfsfreeze for example), where if you're in
a virsh shell using command line completion - you'll get a list of
files in your current directory instead of two options --domain and
--mountpoint (as would happen with this patch applied.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 tools/vsh.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/vsh.c b/tools/vsh.c
index 9558dad..17199ae 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -2788,7 +2788,8 @@ vshReadlineParse(const char *text, int state)
                 /* No -- option provided and some other token given
                  * Try to find the default option.
                  */
-                if (!(opt = vshCmddefGetData(cmd, &opts_need_arg, &opts_seen))
+                if (!(opt = vshCmddefGetData(cmd, &const_opts_need_arg,
+                                             &const_opts_seen))
                     || opt->type == VSH_OT_BOOL)
                     goto error;
                 opt_exists = true;
-- 
2.7.4




More information about the libvir-list mailing list