]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
full menuentry command support
authorBVK Chaitanya <bvk.groups@gmail.com>
Mon, 19 Jul 2010 21:03:57 +0000 (02:33 +0530)
committerBVK Chaitanya <bvk.groups@gmail.com>
Mon, 19 Jul 2010 21:03:57 +0000 (02:33 +0530)
commands/extcmd.c
commands/menuentry.c

index 349e9bfc7066b08fba9cb69490133a0a449f252a..9dbb0a2ce7f8548a584400d97d2269806d6f4f46 100644 (file)
@@ -40,9 +40,7 @@ grub_extcmd_dispatcher (struct grub_command *cmd, int argc, char **args,
   context.extcmd = ext;
   context.script_params = scripts;
 
-  /* Dynamic commands should not perform option parsing before
-     corresponding module gets loaded.  */
-  if (cmd->flags & GRUB_COMMAND_FLAG_DYNCMD)
+  if (! ext->options)
     {
       ret = (ext->func) (&context, argc, args);
       return ret;
@@ -65,7 +63,6 @@ grub_extcmd_dispatcher (struct grub_command *cmd, int argc, char **args,
     ret = grub_errno;
 
   grub_free (state);
-
   return ret;
 }
 
index 95ec67bbde696142aaab5d03ef31b71400f8b6a7..0ce5a9e0e1f065b2acb664e5654c9c50786bdb51 100644 (file)
@@ -29,6 +29,7 @@ static grub_err_t
 grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
 {
   char *src;
+  unsigned len;
   grub_err_t r;
 
   /* XXX Rewrite to make use of already parsed menu definition.  */
@@ -37,9 +38,12 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
 
   src = args[argc - 1];
   args[argc - 1] = '\0';
+  len = grub_strlen(src);
+  src[len - 1] = '\0';
 
-  r = grub_normal_add_menu_entry (argc - 1, (const char **) args, src);
+  r = grub_normal_add_menu_entry (argc - 1, (const char **) args, src + 1);
 
+  src[len - 1] = '}';
   args[argc - 1] = src;
   return r;
 }