[PATCH 03/23] vsh: Add VSH_OT_NONE option type to catch programming errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux