From: Vladimir 'phcoder' Serbinenko Date: Thu, 19 Apr 2012 09:32:59 +0000 (+0200) Subject: * grub-core/commands/search_wrap.c (grub_cmd_search): Handle old X-Git-Tag: 2.00~311 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c815e0120910ac0ce312b00003ceeb7057fde3c;p=thirdparty%2Fgrub.git * grub-core/commands/search_wrap.c (grub_cmd_search): Handle old --fs-uuid --set UUID syntax. --- diff --git a/ChangeLog b/ChangeLog index 42835cd62..c16a7e9b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-04-18 Vladimir Serbinenko + + * grub-core/commands/search_wrap.c (grub_cmd_search): Handle old + --fs-uuid --set UUID syntax. + 2012-04-18 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_write): Fix message diff --git a/grub-core/commands/search_wrap.c b/grub-core/commands/search_wrap.c index 0ee5bfe8e..3f75fecdf 100644 --- a/grub-core/commands/search_wrap.c +++ b/grub-core/commands/search_wrap.c @@ -86,6 +86,7 @@ grub_cmd_search (grub_extcmd_context_t ctxt, int argc, char **args) { struct grub_arg_list *state = ctxt->state; const char *var = 0; + const char *id = 0; int i = 0, j = 0, nhints = 0; char **hints = NULL; @@ -163,20 +164,27 @@ grub_cmd_search (grub_extcmd_context_t ctxt, int argc, char **args) if (grub_memcmp (args[j], "--hint-", sizeof ("--hint-") - 1) != 0) break; - if (argc == j) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected")); - if (state[SEARCH_SET].set) var = state[SEARCH_SET].arg ? state[SEARCH_SET].arg : "root"; + if (argc != j) + id = args[j]; + else if (state[SEARCH_SET].set && state[SEARCH_SET].arg) + { + id = state[SEARCH_SET].arg; + var = "root"; + } + else + return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected")); + if (state[SEARCH_LABEL].set) - grub_search_label (args[j], var, state[SEARCH_NO_FLOPPY].set, + grub_search_label (id, var, state[SEARCH_NO_FLOPPY].set, hints, nhints); else if (state[SEARCH_FS_UUID].set) - grub_search_fs_uuid (args[j], var, state[SEARCH_NO_FLOPPY].set, + grub_search_fs_uuid (id, var, state[SEARCH_NO_FLOPPY].set, hints, nhints); else if (state[SEARCH_FILE].set) - grub_search_fs_file (args[j], var, state[SEARCH_NO_FLOPPY].set, + grub_search_fs_file (id, var, state[SEARCH_NO_FLOPPY].set, hints, nhints); else return grub_error (GRUB_ERR_INVALID_COMMAND, "unspecified search type");