]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
merge with mainline
authorBVK Chaitanya <bvk.groups@gmail.com>
Sat, 12 Jun 2010 15:06:46 +0000 (20:36 +0530)
committerBVK Chaitanya <bvk.groups@gmail.com>
Sat, 12 Jun 2010 15:06:46 +0000 (20:36 +0530)
1  2 
conf/common.rmk
include/grub/script_sh.h
normal/main.c
script/execute.c
script/main.c
util/grub-script-check.c

diff --cc conf/common.rmk
index b381b150b1e83d762fcdbb884bfbbe9859cd2d62,c437156b7ef194ff22cc9be9d5f0040ae941417d..cb988547767ddeb242ceffe7e30d72c2d99ec7dd
@@@ -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
index 36d2400832719d972965d12d2eaeccbc488852a5,9bfc7e4bbc5ac9b75b58b360a23ebed1de30d14f..512498a599bf76d940b510d6990f53539793ca63
@@@ -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 4ed17e82cb8001a549bfd2265eb37b925e476c02,fdd3c558cd589315524c7220ed3b73b254c2051a..75975d002ac1946f9231afc8f28163701ef94c60
@@@ -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)
  GRUB_MOD_FINI(normal)
  {
    grub_context_fini ();
++  grub_script_fini ();
  
    grub_set_history (0);
    grub_register_variable_hook ("pager", 0, 0);
Simple merge
diff --cc script/main.c
index c30df1f2ddf500d4067d7302bd77f1ce85d76233,752a8cd8a0867b36725ebd0a8f95d2658b7a4bd6..382b354870bd7456ebf0add791023a4033c785f2
@@@ -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
-   };
 +
- GRUB_MOD_INIT(sh)
++static grub_command_t cmd_break;
 +
-   grub_parser_register ("grub", &grub_sh_parser);
-   grub_register_command ("break", grub_script_break,
-                        N_("[n]"), N_("Exit from loops"));
++void
++grub_script_init (void)
 +{
- GRUB_MOD_FINI(sh)
++  cmd_break = grub_register_command ("break", grub_script_break,
++                                   N_("[n]"), N_("Exit from loops"));
 +}
 +
-   grub_parser_unregister (&grub_sh_parser);
++void
++grub_script_fini (void)
 +{
++  if (cmd_break)
++    grub_unregister_command (cmd_break);
++  cmd_break = 0;
 +}
Simple merge