{
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))
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;
++
}