]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
util: Delete argconfig value type to add option value as va lists instead
authorTokunori Ikegami <ikegami.t@gmail.com>
Thu, 4 May 2023 03:47:21 +0000 (12:47 +0900)
committerDaniel Wagner <wagi@monom.org>
Thu, 4 May 2023 06:43:21 +0000 (08:43 +0200)
Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
nvme.c
util/argconfig.c
util/argconfig.h

diff --git a/nvme.c b/nvme.c
index ae3749ee4c5a753f857ab3086ac314ad51480411..455ac83543028ea4f3559eb6da049696be229648 100644 (file)
--- a/nvme.c
+++ b/nvme.c
@@ -5313,7 +5313,7 @@ static int sanitize_cmd(int argc, char **argv, struct command *cmd, struct plugi
                OPT_FLAG("oipbp",      'i', &cfg.oipbp,      oipbp_desc),
                OPT_BYTE("owpass",     'n', &cfg.owpass,     owpass_desc),
                OPT_FLAG("ause",       'u', &cfg.ause,       ause_desc),
-               OPT_VAL("sanact",      'a', &cfg.sanact,     sanact_desc, sanact),
+               OPT_BYTE("sanact",     'a', &cfg.sanact,     sanact_desc, sanact),
                OPT_UINT("ovrpat",     'p', &cfg.ovrpat,     ovrpat_desc),
                OPT_END()
        };
index 1d2848473775968cda8f9bf965fd1d914126d59c..64835ac9fd5f51fa2574164bbd818354ad11a035 100644 (file)
@@ -163,13 +163,13 @@ int argconfig_parse_byte(const char *opt, const char *str, unsigned char *val)
 }
 
 static int argconfig_parse_type(struct argconfig_commandline_options *s, struct option *option,
-                               int index, enum argconfig_types type)
+                               int index)
 {
        void *value = (void *)(char *)s->default_value;
        char *endptr;
        int ret = 0;
 
-       switch (type) {
+       switch (s->config_type) {
        case CFG_STRING:
                *((char **)value) = optarg;
                break;
@@ -231,9 +231,6 @@ static int argconfig_parse_type(struct argconfig_commandline_options *s, struct
        case CFG_FLAG:
                *((bool *)value) = true;
                break;
-       case CFG_VAL:
-               ret = argconfig_parse_val(s, option, index);
-               break;
        default:
                break;
        }
@@ -316,7 +313,7 @@ static int argconfig_parse_val(struct argconfig_commandline_options *s, struct o
                return argconfig_set_opt_val(v->type, &v->val, val);
        }
 
-       return argconfig_parse_type(s, option, index, s->opt_val->type);
+       return argconfig_parse_type(s, option, index);
 }
 
 bool argconfig_output_format_json(bool set)
@@ -414,7 +411,10 @@ int argconfig_parse(int argc, char *argv[], const char *program_desc,
                if (!s->default_value)
                        continue;
 
-               ret = argconfig_parse_type(s, long_opts, option_index, s->config_type);
+               if (s->opt_val)
+                       ret = argconfig_parse_val(s, long_opts, option_index);
+               else
+                       ret = argconfig_parse_type(s, long_opts, option_index);
                if (ret)
                        break;
        }
index 8ce28b7c0dde9727a39b5bc129cbbefa633a5517..8825befb70022c31febaaacb384767dd6fdfde80 100644 (file)
@@ -62,40 +62,40 @@ enum argconfig_types {
 
 #define OPT_END() { NULL }
 
-#define OPT_FLAG(l, s, v, d) \
-       {l, s, NULL, CFG_FLAG, v, no_argument, d}
+#define OPT_FLAG(l, s, v, d, ...) \
+       {l, s, NULL, CFG_FLAG, v, no_argument, d, false, __VA_ARGS__}
 
-#define OPT_SUFFIX(l, s, v, d) \
-       {l, s, "IONUM", CFG_LONG_SUFFIX, v, required_argument, d}
+#define OPT_SUFFIX(l, s, v, d, ...) \
+       {l, s, "IONUM", CFG_LONG_SUFFIX, v, required_argument, d, false, __VA_ARGS__}
 
-#define OPT_UINT(l, s, v, d) \
-       {l, s, "NUM", CFG_POSITIVE, v, required_argument, d}
+#define OPT_UINT(l, s, v, d, ...) \
+       {l, s, "NUM", CFG_POSITIVE, v, required_argument, d, false, __VA_ARGS__}
 
-#define OPT_INT(l, s, v, d) \
-       {l, s, "NUM", CFG_INT, v, required_argument, d}
+#define OPT_INT(l, s, v, d, ...) \
+       {l, s, "NUM", CFG_INT, v, required_argument, d, false, __VA_ARGS__}
 
-#define OPT_LONG(l, s, v, d) \
-       {l, s, "NUM", CFG_LONG, v, required_argument, d}
+#define OPT_LONG(l, s, v, d, ...) \
+       {l, s, "NUM", CFG_LONG, v, required_argument, d, false, __VA_ARGS__}
 
-#define OPT_DOUBLE(l, s, v, d) \
-       {l, s, "NUM", CFG_DOUBLE, v, required_argument, d}
+#define OPT_DOUBLE(l, s, v, d, ...) \
+       {l, s, "NUM", CFG_DOUBLE, v, required_argument, d, false, __VA_ARGS__}
 
-#define OPT_BYTE(l, s, v, d) \
-       {l, s, "NUM", CFG_BYTE, v, required_argument, d}
+#define OPT_BYTE(l, s, v, d, ...) \
+       {l, s, "NUM", CFG_BYTE, v, required_argument, d, false, __VA_ARGS__}
 
-#define OPT_SHRT(l, s, v, d) \
-       {l, s, "NUM", CFG_SHORT, v, required_argument, d}
+#define OPT_SHRT(l, s, v, d, ...) \
+       {l, s, "NUM", CFG_SHORT, v, required_argument, d, false, __VA_ARGS__}
 
-#define OPT_INCR(l, s, v, d) \
-       {l, s, "NUM", CFG_INCREMENT, v, no_argument, d}
+#define OPT_INCR(l, s, v, d, ...) \
+       {l, s, "NUM", CFG_INCREMENT, v, no_argument, d, false, __VA_ARGS__}
 
-#define OPT_STRING(l, s, m, v, d) \
-       {l, s, m, CFG_STRING, v, required_argument, d}
+#define OPT_STRING(l, s, m, v, d, ...) \
+       {l, s, m, CFG_STRING, v, required_argument, d, false, __VA_ARGS__}
 
-#define OPT_FMT(l, s, v, d)  OPT_STRING(l, s, "FMT", v, d)
-#define OPT_FILE(l, s, v, d) OPT_STRING(l, s, "FILE", v, d)
-#define OPT_LIST(l, s, v, d) OPT_STRING(l, s, "LIST", v, d)
-#define OPT_STR(l, s, v, d) OPT_STRING(l, s, "STRING", v, d)
+#define OPT_FMT(l, s, v, d, ...)  OPT_STRING(l, s, "FMT", v, d, __VA_ARGS__)
+#define OPT_FILE(l, s, v, d, ...) OPT_STRING(l, s, "FILE", v, d, __VA_ARGS__)
+#define OPT_LIST(l, s, v, d, ...) OPT_STRING(l, s, "LIST", v, d, __VA_ARGS__)
+#define OPT_STR(l, s, v, d, ...) OPT_STRING(l, s, "STRING", v, d, __VA_ARGS__)
 
 #define OPT_VAL(l, s, v, d, o) \
        {l, s, "VAL", CFG_VAL, v, required_argument, d, false, o}