]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
authorrobertmh <robertmh@localhost>
Mon, 22 Jun 2009 19:44:38 +0000 (19:44 +0000)
committerrobertmh <robertmh@localhost>
Mon, 22 Jun 2009 19:44:38 +0000 (19:44 +0000)
        * commands/search.c (grub_cmd_search): Macroify hardcoded args[]
        indexes.  Check for -f explicitly.

ChangeLog
commands/search.c

index 00f7e65a0fab3714192795b495a469d261f6bf36..f78766a5eec9c7e68d66c0b3de1c275dfabfb261 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>
+
+       * commands/search.c (grub_cmd_search): Macroify hardcoded args[]
+       indexes.  Check for -f explicitly.
+
 2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>
 
        * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): Rename to ...
index cfcc6b9593b647242af7bd8d0563ddede73e7692..5b1c0b03b2b29a2a550a7702b8278d695c8708de 100644 (file)
@@ -37,6 +37,15 @@ static const struct grub_arg_option options[] =
     {0, 0, 0, 0, 0, 0}
   };
 
+enum options
+  {
+    SEARCH_FILE,
+    SEARCH_LABEL,
+    SEARCH_FS_UUID,
+    SEARCH_SET,
+    SEARCH_NO_FLOPPY,
+ };
+
 static void
 search_fs (const char *key, const char *var, int no_floppy, int is_uuid)
 {
@@ -165,15 +174,17 @@ grub_cmd_search (grub_extcmd_t cmd, int argc, char **args)
   if (argc == 0)
     return grub_error (GRUB_ERR_INVALID_COMMAND, "no argument specified");
 
-  if (state[3].set)
-    var = state[3].arg ? state[3].arg : "root";
+  if (state[SEARCH_SET].set)
+    var = state[SEARCH_SET].arg ? state[SEARCH_SET].arg : "root";
 
-  if (state[1].set)
-    search_fs (args[0], var, state[4].set, 0);
-  else if (state[2].set)
-    search_fs (args[0], var, state[4].set, 1);
+  if (state[SEARCH_LABEL].set)
+    search_fs (args[0], var, state[SEARCH_NO_FLOPPY].set, 0);
+  else if (state[SEARCH_FS_UUID].set)
+    search_fs (args[0], var, state[SEARCH_NO_FLOPPY].set, 1);
+  else if (state[SEARCH_FILE].set)
+    search_file (args[0], var, state[SEARCH_NO_FLOPPY].set);
   else
-    search_file (args[0], var, state[4].set);
+    return grub_error (GRUB_ERR_INVALID_COMMAND, "unspecified search type");
 
   return grub_errno;
 }