Here is another tiny patch which uses a enum to reference the options
array when dealing with command line options for a menuentry.

This method is already used by some other modules. I have some more
patches which are adding more options for the menuentry command so
finally readabilty will be improved using these symbols.

Any comments?

Andreas
------------------------------------------------------------
revno: 4099
committer: Andreas Vogel <andreas.f.vo...@gmail.com>
branch nick: 02-menuentry_options_enum
timestamp: Thu 2012-03-01 22:40:25 +0100
message:
        * grub-core/commands/menuentry.c: use enum symbols for indexing
          the options array in order to improve readability
diff:
=== modified file 'grub-core/commands/menuentry.c'
--- grub-core/commands/menuentry.c      2012-03-01 21:38:32 +0000
+++ grub-core/commands/menuentry.c      2012-03-01 21:40:25 +0000
@@ -25,6 +25,14 @@
 #include <grub/i18n.h>
 #include <grub/normal.h>
 
+enum options
+  {
+    O_CLASS = 0,
+    O_USERS,
+    O_HOTKEY,
+    O_SOURCE,
+ };
+
 static const struct grub_arg_option options[] =
   {
     {"class", 1, GRUB_ARG_OPTION_REPEATABLE,
@@ -324,18 +332,18 @@
   if (! argc)
     return grub_error (GRUB_ERR_BAD_ARGUMENT, "missing arguments");
 
-  if (ctxt->state[3].set && ctxt->script)
+  if (ctxt->state[O_SOURCE].set && ctxt->script)
     return grub_error (GRUB_ERR_BAD_ARGUMENT, "multiple menuentry 
definitions");
 
-  if (! ctxt->state[3].set && ! ctxt->script)
+  if (! ctxt->state[O_SOURCE].set && ! ctxt->script)
     return grub_error (GRUB_ERR_BAD_ARGUMENT, "no menuentry definition");
 
   if (! ctxt->script)
     return grub_normal_add_menu_entry (argc, (const char **) args,
-                                      (ctxt->state[0].set ? ctxt->state[0].args
-                                       : NULL), ctxt->state[1].arg,
-                                      ctxt->state[2].arg, 0,
-                                      ctxt->state[3].arg,
+                                      (ctxt->state[O_CLASS].set ? 
ctxt->state[O_CLASS].args
+                                       : NULL), ctxt->state[O_USERS].arg,
+                                      ctxt->state[O_HOTKEY].arg, 0,
+                                      ctxt->state[O_SOURCE].arg,
                                       ctxt->extcmd->cmd->name[0] == 's');
 
   src = args[argc - 1];
@@ -350,8 +358,8 @@
     return grub_errno;
 
   r = grub_normal_add_menu_entry (argc - 1, (const char **) args,
-                                 ctxt->state[0].args, ctxt->state[1].arg,
-                                 ctxt->state[2].arg, prefix, src + 1,
+                                 ctxt->state[O_CLASS].args, 
ctxt->state[O_USERS].arg,
+                                 ctxt->state[O_HOTKEY].arg, prefix, src + 1,
                                  ctxt->extcmd->cmd->name[0] == 's');
 
   src[len - 1] = ch;
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to