]> sourceware.org Git - lvm2.git/commitdiff
cmdline: drop MAX and check NULL
authorZdenek Kabelac <zkabelac@redhat.com>
Thu, 25 Feb 2021 17:09:33 +0000 (18:09 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Tue, 2 Mar 2021 21:54:40 +0000 (22:54 +0100)
Remove MAX_COMMAND_NAMES and check for the last element as NULL pointer.

tools/command.c
tools/command.h
tools/lvmcmdline.c

index dd1f94194d27ed5832c0532f6eb3f8f541770ca7..131d2d3d3f25430d4c6647e5c20443e4c0c42120 100644 (file)
@@ -246,19 +246,21 @@ struct cmd_name cmd_names[CMD_COUNT + 1] = {
 
 #ifdef MAN_PAGE_GENERATOR
 
-struct command_name command_names[MAX_COMMAND_NAMES] = {
+struct command_name command_names[] = {
 #define xx(a, b, c...) { # a, b, c },
 #include "commands.h"
 #undef xx
+       { .name = NULL }
 };
 struct command commands[COMMAND_COUNT];
 
 #else /* MAN_PAGE_GENERATOR */
 
-struct command_name command_names[MAX_COMMAND_NAMES] = {
+struct command_name command_names[] = {
 #define xx(a, b, c...) { # a, b, c, a},
 #include "commands.h"
 #undef xx
+       { .name = NULL }
 };
 extern struct command commands[COMMAND_COUNT]; /* defined in lvmcmdline.c */
 
@@ -514,12 +516,9 @@ static struct command_name *_find_command_name(const char *name)
        if (!islower(name[0]))
                return NULL; /* Commands starts with lower-case */
 
-       for (i = 0; i < MAX_COMMAND_NAMES; i++) {
-               if (!command_names[i].name)
-                       break;
+       for (i = 0; command_names[i].name; i++)
                if (!strcmp(command_names[i].name, name))
                        return &command_names[i];
-       }
 
        return NULL;
 }
@@ -1270,10 +1269,7 @@ void factor_common_options(void)
        int cn, opt_enum, ci, oo, ro, found;
        struct command *cmd;
 
-       for (cn = 0; cn < MAX_COMMAND_NAMES; cn++) {
-               if (!command_names[cn].name)
-                       break;
-
+       for (cn = 0; command_names[cn].name; cn++) {
                /* already factored */
                if (command_names[cn].variants)
                        continue;
index dae3d05702707722f98ff880d459f4f02cbecae0..c0d7977dcb1a9e70203d287d3771f1c005e4635c 100644 (file)
@@ -30,8 +30,6 @@ struct command_function {
        command_id_fn fn;
 };
 
-#define MAX_COMMAND_NAMES 64
-
 struct command_name {
        const char *name;
        const char *desc; /* general command description from commands.h */
index b6ad66d62abacf099a8d7e68f89d661fa2766074..8ad1f5e99e55c700902f3b83f15b6283bc83c3fe 100644 (file)
@@ -74,7 +74,7 @@ extern struct lv_type lv_types[LVT_COUNT + 1];
 /*
  * Table of command names
  */
-extern struct command_name command_names[MAX_COMMAND_NAMES];
+extern struct command_name command_names[];
 
 /*
  * Table of commands (as defined in command-lines.in)
@@ -1278,13 +1278,11 @@ static void _set_valid_args_for_command_name(int ci)
 static struct command_name *_find_command_name(const char *name)
 {
        int i;
-       
-       for (i = 0; i < MAX_COMMAND_NAMES; i++) {
-               if (!command_names[i].name)
-                       break;
+
+       for (i = 0; command_names[i].name; i++)
                if (!strcmp(command_names[i].name, name))
                        return &command_names[i];
-       }
+
        return NULL;
 }
 
@@ -1354,14 +1352,12 @@ int lvm_register_commands(struct cmd_context *cmd, const char *run_name)
                }
        }
 
-       _cmdline.command_names = command_names;
-       _cmdline.num_command_names = 0;
+       /* Check how many command entries we have */
+       for (i = 0; command_names[i].name; i++)
+               ;
 
-       for (i = 0; i < MAX_COMMAND_NAMES; i++) {
-               if (!command_names[i].name)
-                       break;
-               _cmdline.num_command_names++;
-       }
+       _cmdline.num_command_names = i;
+       _cmdline.command_names = command_names;
 
        for (i = 0; i < _cmdline.num_command_names; i++)
                _set_valid_args_for_command_name(i);
@@ -2074,11 +2070,8 @@ static void _usage_all(void)
 {
        int i;
 
-       for (i = 0; i < MAX_COMMAND_NAMES; i++) {
-               if (!command_names[i].name)
-                       break;
+       for (i = 0; command_names[i].name; i++)
                _usage(command_names[i].name, 1, 1);
-       }
 
        print_usage_notes(NULL);
 }
This page took 0.040712 seconds and 5 git commands to generate.