From: BVK Chaitanya Date: Sat, 12 Jun 2010 15:06:46 +0000 (+0530) Subject: merge with mainline X-Git-Tag: 1.99~666^2~2^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=20ebf73276a84a78e0069268b9b578069253df6c;p=thirdparty%2Fgrub.git merge with mainline --- 20ebf73276a84a78e0069268b9b578069253df6c diff --cc conf/common.rmk index b381b150b,c437156b7..cb9885477 --- a/conf/common.rmk +++ b/conf/common.rmk @@@ -102,13 -88,12 +88,12 @@@ DISTCLEANFILES += grub_script.yy.c grub # For grub-script-check. bin_UTILITIES += grub-script-check - util/grub-script-check.c_DEPENDENCIES = grub_script_check_init.h - grub_script_check_SOURCES = gnulib/progname.c gnulib/getdelim.c \ - gnulib/getline.c util/grub-script-check.c util/misc.c \ - util/mm.c script/main.c script/script.c script/function.c \ - script/lexer.c kern/handler.c kern/err.c kern/parser.c \ - kern/list.c kern/misc.c kern/env.c kern/command.c \ - grub_script_check_init.c grub_script.tab.c grub_script.yy.c + grub_script_check_SOURCES = gnulib/progname.c gnulib/getdelim.c gnulib/getline.c \ + util/grub-script-check.c util/misc.c kern/emu/misc.c kern/emu/mm.c \ + script/main.c script/script.c script/function.c script/lexer.c \ + kern/err.c kern/list.c \ - kern/misc.c kern/env.c grub_script.tab.c \ ++ kern/command.c kern/misc.c kern/env.c grub_script.tab.c \ + grub_script.yy.c grub_script_check_CFLAGS = $(GNULIB_UTIL_CFLAGS) MOSTLYCLEANFILES += symlist.c kernel_syms.lst DEFSYMFILES += kernel_syms.lst diff --cc include/grub/script_sh.h index 36d240083,9bfc7e4bb..512498a59 --- a/include/grub/script_sh.h +++ b/include/grub/script_sh.h @@@ -223,6 -222,6 +223,9 @@@ struct grub_parser_para struct grub_lexer_param *lexerstate; }; ++void grub_script_init (void); ++void grub_script_fini (void); ++ void grub_script_argv_free (struct grub_script_argv *argv); int grub_script_argv_next (struct grub_script_argv *argv); int grub_script_argv_append (struct grub_script_argv *argv, const char *s); diff --cc normal/main.c index 4ed17e82c,fdd3c558c..75975d002 --- a/normal/main.c +++ b/normal/main.c @@@ -693,6 -655,6 +655,7 @@@ grub_env_write_pager (struct grub_env_v GRUB_MOD_INIT(normal) { grub_context_init (); ++ grub_script_init (); /* Normal mode shouldn't be unloaded. */ if (mod) @@@ -721,6 -683,6 +684,7 @@@ GRUB_MOD_FINI(normal) { grub_context_fini (); ++ grub_script_fini (); grub_set_history (0); grub_register_variable_hook ("pager", 0, 0); diff --cc script/main.c index c30df1f2d,752a8cd8a..382b35487 --- a/script/main.c +++ b/script/main.c @@@ -40,21 -39,3 +40,20 @@@ 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; + - 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")); ++ cmd_break = grub_register_command ("break", grub_script_break, ++ N_("[n]"), N_("Exit from 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; +}