]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
pull-in break-cmd branch
authorBVK Chaitanya <bvk.groups@gmail.com>
Sat, 12 Jun 2010 15:23:32 +0000 (20:53 +0530)
committerBVK Chaitanya <bvk.groups@gmail.com>
Sat, 12 Jun 2010 15:23:32 +0000 (20:53 +0530)
1  2 
script/execute.c
script/main.c

index 1ea90ebb0f927c067ae370f88e20f184e8b6ac52,da9e834c844d1b246674ba3189445b74dbcee351..15eb7d142480ea47d3e27c10d92f80bbda36e333
@@@ -381,7 -397,7 +398,8 @@@ grub_script_execute_cmdfor (struct grub
  {
    unsigned i;
    grub_err_t result;
-   struct grub_script_argv argv;
+   struct grub_script_argv argv = { 0, 0 };
++
    struct grub_script_cmdfor *cmdfor = (struct grub_script_cmdfor *) cmd;
  
    if (grub_script_arglist_to_argv (cmdfor->words, &argv))
diff --cc script/main.c
index 401456e1dc5b6eecea3a778d32b2bde0a2b59f46,382b354870bd7456ebf0add791023a4033c785f2..9354f3ed848f418268e316dd5ff7d89d3057e84d
@@@ -41,22 -41,19 +41,27 @@@ grub_normal_parse_line (char *line, gru
    return grub_errno;
  }
  
- static struct grub_parser grub_sh_parser =
-   {
-     .name = "grub",
-     .parse_line = grub_normal_parse_line
-   };
+ static grub_command_t cmd_break;
++static grub_command_t cmd_continue;
  
- GRUB_MOD_INIT(sh)
+ void
+ grub_script_init (void)
  {
-   grub_parser_register ("grub", &grub_sh_parser);
-   grub_register_command ("break", grub_script_break,
-                        N_("[n]"), N_("Exit from loops"));
-   grub_register_command ("continue", grub_script_break,
-                        N_("[n]"), N_("Continue loops"));
+   cmd_break = grub_register_command ("break", grub_script_break,
+                                    N_("[n]"), N_("Exit from loops"));
++  cmd_continue = grub_register_command ("continue", grub_script_break,
++                                      N_("[n]"), N_("Coninue loops"));
  }
  
- GRUB_MOD_FINI(sh)
+ void
+ grub_script_fini (void)
  {
-   grub_parser_unregister (&grub_sh_parser);
+   if (cmd_break)
+     grub_unregister_command (cmd_break);
+   cmd_break = 0;
++
++  if (cmd_continue)
++    grub_unregister_command (cmd_continue);
++  cmd_continue = 0;
++
  }