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.
This commit is contained in:
John Ferlan 2016-10-28 16:59:58 -04:00
parent 011935457a
commit 06a7b1ff4d

View File

@ -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;