From: BVK Chaitanya Date: Sat, 12 Jun 2010 15:23:32 +0000 (+0530) Subject: pull-in break-cmd branch X-Git-Tag: 1.99~665^2~2^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6ad1216e64d9ffd3ab40e0083cc78ffeb564a2cb;p=thirdparty%2Fgrub.git pull-in break-cmd branch --- 6ad1216e64d9ffd3ab40e0083cc78ffeb564a2cb diff --cc script/execute.c index 1ea90ebb0,da9e834c8..15eb7d142 --- a/script/execute.c +++ b/script/execute.c @@@ -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 401456e1d,382b35487..9354f3ed8 --- a/script/main.c +++ b/script/main.c @@@ -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; ++ }