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
@@@ -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
@@@ -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
@@@ -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
@@@ -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