From: Peter Krempa Date: Fri, 1 Mar 2024 11:35:46 +0000 (+0100) Subject: vshCmddefCheckInternals: Fix listing of missing completers for 'VSH_OT_ARGV' X-Git-Tag: v10.2.0-rc1~84 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b0b43b485a567b144a13d66d5f82bf2d23bdccd;p=thirdparty%2Flibvirt.git vshCmddefCheckInternals: Fix listing of missing completers for 'VSH_OT_ARGV' Use a switch statement to cover all cases and check for missing completers for arguments declared as VSH_OT_ARGV. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/tools/vsh.c b/tools/vsh.c index 63424fcf8f..4f98f563f3 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -324,10 +324,24 @@ vshCmddefCheckInternals(vshControl *ctl, return -1; /* too many options */ } - if (missingCompleters && - (opt->type == VSH_OT_STRING || opt->type == VSH_OT_DATA) && - !opt->completer) - virBufferStrcat(&complbuf, opt->name, ", ", NULL); + if (missingCompleters && !opt->completer) { + switch (opt->type) { + case VSH_OT_STRING: + case VSH_OT_DATA: + case VSH_OT_ARGV: + virBufferStrcat(&complbuf, opt->name, ", ", NULL); + break; + + case VSH_OT_BOOL: + /* only name is completed */ + case VSH_OT_INT: + /* no point in completing numbers */ + case VSH_OT_ALIAS: + /* alias is handled in the referenced command */ + case VSH_OT_NONE: + break; + } + } switch (opt->type) { case VSH_OT_NONE: