From: John Ferlan Date: Fri, 28 Oct 2016 20:59:58 +0000 (-0400) Subject: vsh: Pass correct values for command line completion X-Git-Tag: v2.4.0~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06a7b1ff4;p=thirdparty%2Flibvirt.git vsh: Pass correct values for command line completion 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. --- diff --git a/tools/vsh.c b/tools/vsh.c index 9558dadb63..17199aecb2 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;