From 667478942a6750b7b9cdf2cd6770bd807b4c509d Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 8 Feb 2012 20:12:41 +0100 Subject: [PATCH] * grub-core/commands/hdparm.c (grub_cmd_hdparm): Accept device name without quotes. --- ChangeLog | 5 +++++ grub-core/commands/hdparm.c | 20 +++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index ffa8289e1..b3cf3bf70 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-02-08 Vladimir Serbinenko + + * grub-core/commands/hdparm.c (grub_cmd_hdparm): Accept device name + without quotes. + 2012-02-08 Vladimir Serbinenko * grub-core/net/net.c (GRUB_MOD_INIT): Don't register netfs. diff --git a/grub-core/commands/hdparm.c b/grub-core/commands/hdparm.c index 41269f1d8..70635739d 100644 --- a/grub-core/commands/hdparm.c +++ b/grub-core/commands/hdparm.c @@ -275,19 +275,25 @@ static int get_int_arg (const struct grub_arg_list *state) } static grub_err_t -grub_cmd_hdparm (grub_extcmd_context_t ctxt, int argc, char **args) // state???? +grub_cmd_hdparm (grub_extcmd_context_t ctxt, int argc, char **args) { struct grub_arg_list *state = ctxt->state; struct grub_ata *ata; + const char *diskname; /* Check command line. */ if (argc != 1) - return grub_error (GRUB_ERR_BAD_ARGUMENT, "missing device name argument"); + return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected")); - grub_size_t len = grub_strlen (args[0]); - if (! (args[0][0] == '(' && args[0][len - 1] == ')')) - return grub_error (GRUB_ERR_BAD_ARGUMENT, "argument is not a device name"); - args[0][len - 1] = 0; + if (args[0][0] == '(') + { + grub_size_t len = grub_strlen (args[0]); + if (args[0][len - 1] == ')') + args[0][len - 1] = 0; + diskname = &args[0][1]; + } + else + diskname = &args[0][0]; int i = 0; int apm = get_int_arg (&state[i++]); @@ -304,7 +310,7 @@ grub_cmd_hdparm (grub_extcmd_context_t ctxt, int argc, char **args) // state???? quiet = state[i++].set; /* Open disk. */ - grub_disk_t disk = grub_disk_open (&args[0][1]); + grub_disk_t disk = grub_disk_open (diskname); if (! disk) return grub_errno; -- 2.39.5