Add a check that the default 0 assignment will not mean that an option is considered to be VSH_OT_BOOL. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- tools/vsh.c | 7 +++++++ tools/vsh.h | 1 + 2 files changed, 8 insertions(+) diff --git a/tools/vsh.c b/tools/vsh.c index 61e302f9c8..a3491695b9 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -335,6 +335,11 @@ vshCmddefCheckInternals(vshControl *ctl, virBufferStrcat(&complbuf, opt->name, ", ", NULL); switch (opt->type) { + case VSH_OT_NONE: + vshError(ctl, "invalid type 'NONE' of option '%s' of command '%s'", + opt->name, cmd->name); + return -1; + case VSH_OT_BOOL: if (opt->completer || opt->completer_flags) { vshError(ctl, "bool parameter '%s' of command '%s' has completer set", @@ -671,6 +676,7 @@ vshCmddefHelp(const vshCmdDef *def) } break; case VSH_OT_ALIAS: + case VSH_OT_NONE: /* aliases are intentionally undocumented */ continue; } @@ -713,6 +719,7 @@ vshCmddefHelp(const vshCmdDef *def) opt->name); break; case VSH_OT_ALIAS: + case VSH_OT_NONE: continue; } diff --git a/tools/vsh.h b/tools/vsh.h index 17d7f08dc9..2cc0a62d3f 100644 --- a/tools/vsh.h +++ b/tools/vsh.h @@ -85,6 +85,7 @@ typedef enum { * vshCmdOptType - command option type */ typedef enum { + VSH_OT_NONE = 0, /* cannary to catch programming errors */ VSH_OT_BOOL, /* optional boolean option */ VSH_OT_STRING, /* optional string option */ VSH_OT_INT, /* optional or mandatory int option */ -- 2.44.0 _______________________________________________ Devel mailing list -- devel@xxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx