1. 18 Oct, 2013 1 commit
  2. 07 Jun, 2013 1 commit
  3. 15 Jan, 2013 1 commit
    • Colin Watson's avatar
      Remove nested functions from script reading and parsing. · 09fd6d82
      Colin Watson authored
      * grub-core/kern/parser.c (grub_parser_split_cmdline): Add
      getline_data argument, passed to getline.
      * grub-core/kern/rescue_parser.c (grub_rescue_parse_line): Add
      getline_data argument, passed to grub_parser_split_cmdline.
      * grub-core/script/lexer.c (grub_script_lexer_yywrap): Pass
      lexerstate->getline_data to lexerstate->getline.
      (grub_script_lexer_init): Add getline_data argument, saved in
      lexerstate->getline_data.
      * grub-core/script/main.c (grub_normal_parse_line): Add getline_data
      argument, passed to grub_script_parse.
      * grub-core/script/script.c (grub_script_parse): Add getline_data
      argument, passed to grub_script_lexer_init.
      * include/grub/parser.h (grub_parser_split_cmdline): Update
      prototype.  Update all callers to pass appropriate getline data.
      (struct grub_parser.parse_line): Likewise.
      (grub_rescue_parse_line): Likewise.
      * include/grub/reader.h (grub_reader_getline_t): Add void *
      argument.
      * include/grub/script_sh.h (struct grub_lexer_param): Add
      getline_data member.
      (grub_script_parse): Update prototype.  Update all callers to pass
      appropriate getline data.
      (grub_script_lexer_init): Likewise.
      (grub_normal_parse_line): Likewise.
      
      * grub-core/commands/legacycfg.c (legacy_file_getline): Add unused
      data argument.
      * grub-core/kern/parser.c (grub_parser_execute: getline): Make
      static instead of nested.  Rename to ...
      (grub_parser_execute_getline): ... this.
      * grub-core/kern/rescue_reader.c (grub_rescue_read_line): Add unused
      data argument.
      * grub-core/normal/main.c (read_config_file: getline): Make static
      instead of nested.  Rename to ...
      (read_config_file_getline): ... this.
      (grub_normal_read_line): Add unused data argument.
      * grub-core/script/execute.c (grub_script_execute_sourcecode:
      getline): Make static instead of nested.  Rename to ...
      (grub_script_execute_sourcecode_getline): ... this.
      * util/grub-script-check.c (main: get_config_line): Make static
      instead of nested.
      09fd6d82
  4. 09 Jun, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Fix wildcard escaping. · 5e619f40
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/commands/wildcard.c (wildcard_escape): Moved from here ...
      	* grub-core/script/execute.c (wildcard_escape): .. to here.
      	Don't escape dot.
      	* grub-core/commands/wildcard.c (wildcard_unescape): Moved from here ...
      	* grub-core/script/execute.c (wildcard_unescape): .. to here.
      	Don't escape dot.
      	* grub-core/script/execute.c (gettext_append): Always escape.
      	(grub_script_arglist_to_argv): Always handle escaping/unescaping.
      	* grub-core/script/yylex.l: Don't cut away the escaping.
      	* tests/grub_script_echo1.in: Add tests with wildcard.
      5e619f40
  5. 26 Feb, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      $"..." support in scripts. · 7e8fac16
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/script/execute.c (grub_script_arglist_to_argv): Handle
      	GRUB_SCRIPT_ARG_TYPE_GETTEXT.
      	* grub-core/script/yylex.l: Likewise.
      	* include/grub/script_sh.h (GRUB_SCRIPT_ARG_TYPE_GETTEXT): New enum
      	value.
      7e8fac16
  6. 12 Nov, 2011 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Add const keyword to grub_env_get and gettextize week days. · d35d0d37
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/hook/datehook.c (grub_datetime_names): Make const.
      	(grub_read_hook_datetime): Return const char *.
      	* grub-core/kern/env.c (grub_env_get): Return const char *. All users
      	updated.
      	* grub-core/normal/datetime.c (grub_weekday_names): Make const.
      	Mark for gettext.
      	(grub_get_weekday_name): Return const char *. Call gettext.
      	* grub-core/script/argv.c (grub_script_argv_append): Receive const
      	char * and len as the argument. All users updated.
      	(grub_script_argv_split_append): Receive const char *.
      	* include/grub/datetime.h (grub_get_weekday_name): Update proto.
      	* include/grub/env.h (grub_env_get): Likewise.
      	(grub_env_read_hook_t): Return const char *.
      	* include/grub/script_sh.h (grub_script_argv_append): Update proto.
      	(grub_script_argv_split_append): Likewise.
      d35d0d37
  7. 25 Nov, 2010 1 commit
  8. 19 Nov, 2010 1 commit
  9. 03 Sep, 2010 1 commit
  10. 25 Aug, 2010 1 commit
  11. 17 Aug, 2010 1 commit
  12. 06 May, 2010 1 commit
  13. 05 May, 2010 3 commits
  14. 30 Apr, 2010 1 commit
  15. 29 Apr, 2010 1 commit
  16. 27 Mar, 2010 2 commits
  17. 28 Jan, 2010 1 commit
  18. 23 Jan, 2010 5 commits
  19. 22 Jan, 2010 1 commit
  20. 20 Jan, 2010 1 commit
  21. 17 Jun, 2009 1 commit
    • phcoder's avatar
      2009-06-17 Vladimir Serbinenko <phcoder@gmail.com> · cf24ed9e
      phcoder authored
      	Fix newline handling
      
      	* include/grub/script_sh.h (grub_lexer_param): new field was_newline
      	* script/sh/lexer.c (grub_script_lexer_init): initilaise was_newline
      	(grub_script_yylex): don't segfault on unterminated script
      	newline terminates command and variable
      cf24ed9e
  22. 04 Jun, 2009 1 commit
    • phcoder's avatar
      2009-06-04 Vladimir Serbinenko <phcoder@gmail.com> · fda6cb98
      phcoder authored
      	Script fixes
      
      	* include/grub/script_sh.h (grub_script_cmdline): remove cmdline
      	(grub_lexer_param): add tokenonhold
      	(grub_script_create_cmdline): remove cmdline. All callers updated
      	(grub_script_function_create): make functionname
      	grub_script_arg. All callers updated
      	(grub_script_execute_argument_to_string): new prototype
      	* kern/parser.c (state_transitions): reorder
      	(grub_parser_cmdline_state): fix a bug and make more compact
      	* script/sh/execute.c (grub_script_execute_argument_to_string): 
      	make global
      	(grub_script_execute_cmdline): use new format
      	* script/sh/function.c (grub_script_function_create): make functionname
      	grub_script_arg. All callers updated
      	* script/sh/lexer.c (grub_script_lexer_init): initilaize tokenonhold
      	(grub_script_yylex): remove
      	(grub_script_yylex2): renamed to ...
      	(grub_script_yylex): ...renamed
      	parse the expressions like a${b}c
      	* script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
      	(GRUB_PARSER_TOKEN_VAR): remove
      	(GRUB_PARSER_TOKEN_NAME): likewise
      	("if"): declare as typeless
      	("while"): likewise
      	("function"): likewise
      	("else"): likewise
      	("then"): likewise
      	("fi"): likewise
      	(text): remove
      	(argument): likewise
      	(script): accept empty scripts and make exit on error
      	(arguments): use GRUB_PARSER_TOKEN_ARG
      	(function): likewise
      	(command): move error handling to script
      	(menuentry): move grub_script_lexer_ref before
      	* script/sh/script.c (grub_script_create_cmdline): remove cmdline 
      	argument. All callers updated
      fda6cb98
  23. 05 May, 2009 1 commit
    • proski's avatar
      2009-05-04 Pavel Roskin <proski@gnu.org> · 4241d2b1
      proski authored
      	* disk/ata.c: Spelling fixes.
      	* disk/raid.c: Likewise.
      	* disk/usbms.c: Likewise.
      	* disk/dmraid_nvidia.c: Likewise.
      	* kern/ieee1275/openfw.c: Likewise.
      	* kern/ieee1275/init.c: Likewise.
      	* kern/ieee1275/cmain.c: Likewise.
      	* boot/i386/pc/cdboot.S: Likewise.
      	* video/readers/png.c: Likewise.
      	* video/i386/pc/vbe.c: Likewise.
      	* fs/udf.c: Likewise.
      	* fs/hfs.c: Likewise.
      	* fs/reiserfs.c: Likewise.
      	* efiemu/runtime/efiemu.c: Likewise.
      	* efiemu/main.c: Likewise.
      	* efiemu/mm.c: Likewise.
      	* include/grub/elf.h: Likewise.
      	* include/grub/xnu.h: Likewise.
      	* include/grub/usbdesc.h: Likewise.
      	* include/grub/usb.h: Likewise.
      	* include/grub/script_sh.h: Likewise.
      	* include/grub/lib/LzmaEnc.h: Likewise.
      	* include/grub/efiemu/efiemu.h: Likewise.
      	* include/grub/command.h: Likewise.
      	* normal/menu.c: Likewise.
      	* normal/main.c: Likewise.
      	* normal/datetime.c: Likewise.
      	* bus/usb/uhci.c: Likewise.
      	* mmap/i386/uppermem.c: Likewise.
      	* mmap/mmap.c: Likewise.
      	* commands/acpi.c: Likewise.
      	* commands/test.c: Likewise.
      	* partmap/apple.c: Likewise.
      	* font/font.c: Likewise.
      	* loader/sparc64/ieee1275/linux.c: Likewise.
      	* loader/macho.c: Likewise.
      	* loader/i386/bsd_trampoline.S: Likewise.
      	* loader/i386/bsd.c: Likewise.
      	* loader/xnu.c: Likewise.
      	* term/i386/pc/vesafb.c: Likewise.
      	* term/usb_keyboard.c: Likewise.
      	* util/resolve.c: Likewise.
      	* util/getroot.c: Likewise.
      4241d2b1
  24. 03 May, 2009 1 commit
    • bean's avatar
      2009-05-02 Bean <bean123ch@gmail.com> · d558e6b5
      bean authored
      	* conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
      	script/sh/parser.y.
      	(pkglib_MODULES): Add normal.mod and sh.mod.
      	(normal_SOURCES): New variable.
      	(normal_mod_CFLAGS): Likewise.
      	(normal_mod_LDFLAGS): Likewise.
      	(sh_mod_SOURCES): Likewise.
      	(sh_mod_CFLAGS): Likewise.
      	(sh_mod_LDFLAGS): Likewise.
      
      	* conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
      	script/sh/lexer.c_DEPENDENCIES.
      	(kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
      	kern/rescue_reader.c and kern/rescue_parser.c.
      	(kernel_img_HEADERS): Remove rescue.h, add reader.h.
      	(grub_emu_SOURCES): Change source files.
      	(pkglib_MODULES): Remove normal.mod.
      	(normal_SOURCES): Removed.
      	(normal_mod_CFLAGS): Likewise.
      	(normal_mod_LDFLAGS): Likewise.
      	* conf/i386-coreboot.rmk: Likewise.
      	* conf/i386-efi.rmk: Likewise.
      	* conf/i386-ieee1276.rmk: Likewise.
      	* conf/powerpc-ieee1275.rmk: Likewise.
      	* conf/sparc64-ieee1275.rmk: Likewise.
      	* conf/x86_64-efi.rmk: Likewise.
      
      	* include/grub/command.h (grub_command_execute): New inline function.
      
      	* include/grub/menu.h (grub_menu_entry): Removed commands field.
      
      	* include/grub/normal.h: Remove <grub/setjmp.h>.
      	(grub_fs_module_list): Moved to normal/autofs.c.
      	(grub_exit_env): Removed.
      	(grub_command_execute): Likewise.
      	(grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
      	parameter script.
      	(read_command_list): New function declaration.
      	(read_fs_list): Likewise.
      
      	* include/parser.h: Include <grub/reader.h>.
      	(grub_parser_split_cmdline): Change type of getline parameter.
      	(grub_parser): New structure.
      	(grub_parser_class): New variable.
      	(grub_parser_execute): New function declaration.
      	(grub_register_rescue_parser): Likewise.
      	(grub_parser_register): New inline function.
      	(grub_parser_unregister): Likewise.
      	(grub_parser_get_current): Likewise.
      	(grub_parser_set_current): Likewise.
      
      	* include/grub/reader.h: New file.
      	* kern/reader.c: Likewise.
      	* kern/rescue_parser.c: Likewise.
      	* kern/rescue_reader.c: Likewise.
      	* normal/autofs.c: Likewise.
      	* normal/dyncmd.c: Likewise.
      
      	* include/grub/rescue.h: Removed.
      	* normal/command.h: Likewise.
      
      	* include/grub/script.h: Moved to ...
      	* include/grub/script_sh.h: ... Moved here.
      	* normal/execute.c: Moved to ...
      	* script/sh/execute.c: ... Moved here.
      	* normal/function.c: Moved to ...
      	* script/sh/function.c: ... Moved here.
      	* normal/lexer.c: Moved to ...
      	* script/sh/lexer.c: ... Moved here.
      	* normal/parser.y: Moved to ...
      	* script/sh/parser.y: ... Moved here.
      	* normal/script.c: Moved to ...
      	* script/sh/script.c: ... Moved here.
      
      	* normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
      	<grub/reader.h>.
      	(grub_exit_env): Removed.
      	(fs_module_list): Moved to normal/autofs.c.
      	(grub_file_getline): Don't handle comment here.
      	(free_menu): Skip removed field entry->commands.
      	(grub_normal_menu_addentry): Removed as grub_menu_entry, removed
      	script parameter.
      	(read_config_file): Removed nested parameter, change getline function.
      	(grub_enter_normal_mode): Removed.
      	(grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
      	(read_command_list): Likewise.
      	(autoload_fs_module): Moved to normal/autofs.c.
      	(read_fs_list): Likewise.
      	(reader_nested): New variable.
      	(grub_normal_execute): Run parser.sh to switch to sh parser.
      	(grub_cmd_rescue): Removed.
      	(cmd_normal): Removed.
      	(grub_cmd_normal): Unregister itself at the beginning. Don't register
      	rescue command.
      	(grub_cmdline_run): New function.
      	(grub_normal_reader_init): Likewise.
      	(grub_normal_read_line): Likewise.
      	(grub_env_write_pager): Likewise.
      	(cmdline): New variable.
      	(grub_normal_reader): Likewise.
      	(GRUB_MOD_INIT): Register normal reader and set as current, register
      	pager hook, register normal command with grub_register_command_prio,
      	so that it won't show up in command.lst.
      	(GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
      	grub_fs_autoload_hook.
      
      	* normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
      	(grub_menu_execute_entry): Replace grub_script_execute with
      	grub_parser_execute, change parameter to grub_command_execute.
      
      	* normal/menu_text.c: Remove <grub/script.h>.
      
      	* normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
      	and <grub/parser.h>.
      	(run): Change editor_getline to use new parser interface. Change
      	parameter to grub_command_execute.
      
      	* kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
      	<grub/reader.h> and <grub/parser.h>.
      	(grub_load_normal_mode): Execute normal command.
      	(grub_main): Call grub_register_core_commands,
      	grub_register_rescue_parser and grub_register_rescue_reader, use
      	grub_reader_loop to enter input loop.
      
      	* kern/parser.c (grub_parser_spli_cmdline): Change type of getline
      	parameter.
      	(grub_parser_class): New variable.
      	(grub_parser_execute): New function.
      
      	* loader/i386/multiboot.c: Remove <grub/rescue.h>.
      	* loader/multiboot2.c: Likewise.
      	* loader/sparc64/ieee1275/linux.c: Likewise.
      
      	* util/grub-emu.c (read_command_list): New dummy function.
      d558e6b5
  25. 31 Jan, 2009 1 commit
    • chaac's avatar
      2009-01-31 Colin D Bennett <colin@gibibit.com> · 6fa42fa6
      chaac authored
      	* normal/main.c: Add include to grub/menu_viewer.h. 
      	(free_menu_entry_classes): Added.
      	(grub_normal_menu_addentry): Added class property handling.
      	(grub_normal_execute): Changed to use new menu viewer for menu viewing.
      	(GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
      
      	* normal/menu_viewer.c: New file.
      
      	* normal/menu.c (run_menu_entry): Renamed to ...
      	(grub_menu_execute_entry): ... this and	made it as global.
      	(grub_menu_run): Renamed to ...
      	(show_text_menu): ... this and made it local.
      	(show_text_menu): Adapt to new function names.
      	(grub_normal_terminal_menu_viewer): New global variable.
      
      	* include/grub/menu.h: New file.
      
      	* include/grub/menu_viewer.h: New file.
      
      	* include/grub/normal.h: Added include to grub/menu.h.
      	(grub_menu_entry): Moved to include/grub/menu.h.
      	(grub_menu_entry_t): Likewise.
      	(grub_menu): Likewise.
      	(grub_menu_t): Likewise.
      	(grub_normal_terminal_menu_viewer): Added.
      	(grub_menu_execute_entry): Likewise.
      	(grub_menu_run): Removed.
      
      	* DISTLIST: Added include/grub/menu.h.
      	Added include/grub/menu_viewer.h.
      	Added normal/menu_viewer.c.
      
      2009-01-31  Vesa Jääskeläinen  <chaac@nic.fi>
      
      	* normal/execute.c (grub_script_execute_menuentry): Changed to use
      	arglist for menutitle arguments.
      
      	* normal/main.c (grub_normal_menu_addentry): Likewise.
      
      	* normal/parser.y (menuentry): Likewise.
      
      	* normal/script.c (grub_script_create_cmdmenu): Likewise.
      
      	* include/grub/script.h (grub_script_cmd_menuentry): Likewise.
      	(grub_script_create_cmdmenu): Likewise.
      
      	* include/grub/normal.h (grub_normal_menu_addentry): Likewise.
      
      	* conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
      	changes.
      
      	* conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
      6fa42fa6
  26. 30 May, 2008 1 commit
    • proski's avatar
      2008-05-29 Pavel Roskin <proski@gnu.org> · 528ad8f2
      proski authored
      	* include/grub/script.h: Don't include grub_script.tab.h.  It's
      	a generated file, which may only be included from the files with
      	DEPENDENCIES rules in the makefile.  Don't use typedef YYSTYPE,
      	use union YYSTYPE, as the later allows forward declaration.
      	* normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
      528ad8f2
  27. 22 Jul, 2007 1 commit
    • okuji's avatar
      2007-07-22 Yoshinori K. Okuji <okuji@enbug.org> · 5a79f472
      okuji authored
          Migrate to GNU General Public License Version 3.
      
          * COPYING: Replaced with the plain text version of GPLv3.
      
          * config.guess: Updated from gnulib.
          * config.sub: Likewise.
      
          * geninit.sh: Output a GPLv3 copyright notice.
          * geninitheader.sh: Likewise.
          * genmodsrc.sh: Likewise.
          * gensymlist.sh.in: Likewise.
      
          * boot/i386/pc/boot.S: Upgraded to GPLv3.
          * boot/i386/pc/diskboot.S: Likewise.
          * boot/i386/pc/pxeboot.S: Likewise.
          * commands/blocklist.c: Likewise.
          * commands/boot.c: Likewise.
          * commands/cat.c: Likewise.
          * commands/cmp.c: Likewise.
          * commands/configfile.c: Likewise.
          * commands/echo.c: Likewise.
          * commands/help.c: Likewise.
          * commands/ls.c: Likewise.
          * commands/search.c: Likewise.
          * commands/terminal.c: Likewise.
          * commands/test.c: Likewise.
          * commands/videotest.c: Likewise.
          * commands/i386/cpuid.c: Likewise.
          * commands/i386/pc/halt.c: Likewise.
          * commands/i386/pc/play.c: Likewise.
          * commands/i386/pc/reboot.c: Likewise.
          * commands/i386/pc/vbeinfo.c: Likewise.
          * commands/i386/pc/vbetest.c: Likewise.
          * commands/ieee1275/halt.c: Likewise.
          * commands/ieee1275/reboot.c: Likewise.
          * commands/ieee1275/suspend.c: Likewise.
          * disk/loopback.c: Likewise.
          * disk/lvm.c: Likewise.
          * disk/raid.c: Likewise.
          * disk/efi/efidisk.c: Likewise.
          * disk/i386/pc/biosdisk.c: Likewise.
          * disk/ieee1275/ofdisk.c: Likewise.
          * font/manager.c: Likewise.
          * fs/affs.c: Likewise.
          * fs/ext2.c: Likewise.
          * fs/fat.c: Likewise.
          * fs/fshelp.c: Likewise.
          * fs/hfs.c: Likewise.
          * fs/hfsplus.c: Likewise.
          * fs/iso9660.c: Likewise.
          * fs/jfs.c: Likewise.
          * fs/minix.c: Likewise.
          * fs/sfs.c: Likewise.
          * fs/ufs.c: Likewise.
          * fs/xfs.c: Likewise.
          * hello/hello.c: Likewise.
          * include/grub/acorn_filecore.h: Likewise.
          * include/grub/arg.h: Likewise.
          * include/grub/bitmap.h: Likewise.
          * include/grub/boot.h: Likewise.
          * include/grub/cache.h: Likewise.
          * include/grub/device.h: Likewise.
          * include/grub/disk.h: Likewise.
          * include/grub/dl.h: Likewise.
          * include/grub/elfload.h: Likewise.
          * include/grub/env.h: Likewise.
          * include/grub/err.h: Likewise.
          * include/grub/file.h: Likewise.
          * include/grub/font.h: Likewise.
          * include/grub/fs.h: Likewise.
          * include/grub/fshelp.h: Likewise.
          * include/grub/gzio.h: Likewise.
          * include/grub/hfs.h: Likewise.
          * include/grub/kernel.h: Likewise.
          * include/grub/loader.h: Likewise.
          * include/grub/lvm.h: Likewise.
          * include/grub/misc.h: Likewise.
          * include/grub/mm.h: Likewise.
          * include/grub/net.h: Likewise.
          * include/grub/normal.h: Likewise.
          * include/grub/parser.h: Likewise.
          * include/grub/partition.h: Likewise.
          * include/grub/pc_partition.h: Likewise.
          * include/grub/raid.h: Likewise.
          * include/grub/rescue.h: Likewise.
          * include/grub/script.h: Likewise.
          * include/grub/setjmp.h: Likewise.
          * include/grub/symbol.h: Likewise.
          * include/grub/term.h: Likewise.
          * include/grub/terminfo.h: Likewise.
          * include/grub/tparm.h: Likewise.
          * include/grub/types.h: Likewise.
          * include/grub/video.h: Likewise.
          * include/grub/efi/api.h: Likewise.
          * include/grub/efi/chainloader.h: Likewise.
          * include/grub/efi/console.h: Likewise.
          * include/grub/efi/console_control.h: Likewise.
          * include/grub/efi/disk.h: Likewise.
          * include/grub/efi/efi.h: Likewise.
          * include/grub/efi/pe32.h: Likewise.
          * include/grub/efi/time.h: Likewise.
          * include/grub/i386/linux.h: Likewise.
          * include/grub/i386/setjmp.h: Likewise.
          * include/grub/i386/types.h: Likewise.
          * include/grub/i386/efi/kernel.h: Likewise.
          * include/grub/i386/efi/loader.h: Likewise.
          * include/grub/i386/efi/time.h: Likewise.
          * include/grub/i386/pc/biosdisk.h: Likewise.
          * include/grub/i386/pc/boot.h: Likewise.
          * include/grub/i386/pc/chainloader.h: Likewise.
          * include/grub/i386/pc/console.h: Likewise.
          * include/grub/i386/pc/init.h: Likewise.
          * include/grub/i386/pc/kernel.h: Likewise.
          * include/grub/i386/pc/loader.h: Likewise.
          * include/grub/i386/pc/memory.h: Likewise.
          * include/grub/i386/pc/multiboot.h: Likewise.
          * include/grub/i386/pc/serial.h: Likewise.
          * include/grub/i386/pc/time.h: Likewise.
          * include/grub/i386/pc/vbe.h: Likewise.
          * include/grub/i386/pc/vbeblit.h: Likewise.
          * include/grub/i386/pc/vbefill.h: Likewise.
          * include/grub/i386/pc/vbeutil.h: Likewise.
          * include/grub/i386/pc/vga.h: Likewise.
          * include/grub/ieee1275/ieee1275.h: Likewise.
          * include/grub/ieee1275/ofdisk.h: Likewise.
          * include/grub/powerpc/libgcc.h: Likewise.
          * include/grub/powerpc/setjmp.h: Likewise.
          * include/grub/powerpc/types.h: Likewise.
          * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
          * include/grub/powerpc/ieee1275/console.h: Likewise.
          * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
          * include/grub/powerpc/ieee1275/kernel.h: Likewise.
          * include/grub/powerpc/ieee1275/loader.h: Likewise.
          * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
          * include/grub/powerpc/ieee1275/time.h: Likewise.
          * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
          * include/grub/sparc64/libgcc.h: Likewise.
          * include/grub/sparc64/setjmp.h: Likewise.
          * include/grub/sparc64/types.h: Likewise.
          * include/grub/sparc64/ieee1275/console.h: Likewise.
          * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
          * include/grub/sparc64/ieee1275/kernel.h: Likewise.
          * include/grub/sparc64/ieee1275/time.h: Likewise.
          * include/grub/util/biosdisk.h: Likewise.
          * include/grub/util/getroot.h: Likewise.
          * include/grub/util/lvm.h: Likewise.
          * include/grub/util/misc.h: Likewise.
          * include/grub/util/raid.h: Likewise.
          * include/grub/util/resolve.h: Likewise.
          * io/gzio.c: Likewise.
          * kern/device.c: Likewise.
          * kern/disk.c: Likewise.
          * kern/dl.c: Likewise.
          * kern/elf.c: Likewise.
          * kern/env.c: Likewise.
          * kern/err.c: Likewise.
          * kern/file.c: Likewise.
          * kern/fs.c: Likewise.
          * kern/loader.c: Likewise.
          * kern/main.c: Likewise.
          * kern/misc.c: Likewise.
          * kern/mm.c: Likewise.
          * kern/parser.c: Likewise.
          * kern/partition.c: Likewise.
          * kern/rescue.c: Likewise.
          * kern/term.c: Likewise.
          * kern/efi/efi.c: Likewise.
          * kern/efi/init.c: Likewise.
          * kern/efi/mm.c: Likewise.
          * kern/i386/dl.c: Likewise.
          * kern/i386/efi/init.c: Likewise.
          * kern/i386/efi/startup.S: Likewise.
          * kern/i386/pc/init.c: Likewise.
          * kern/i386/pc/lzo1x.S: Likewise.
          * kern/i386/pc/startup.S: Likewise.
          * kern/ieee1275/ieee1275.c: Likewise.
          * kern/powerpc/cache.S: Likewise.
          * kern/powerpc/dl.c: Likewise.
          * kern/powerpc/ieee1275/cmain.c: Likewise.
          * kern/powerpc/ieee1275/crt0.S: Likewise.
          * kern/powerpc/ieee1275/init.c: Likewise.
          * kern/powerpc/ieee1275/openfw.c: Likewise.
          * kern/sparc64/cache.S: Likewise.
          * kern/sparc64/dl.c: Likewise.
          * kern/sparc64/ieee1275/init.c: Likewise.
          * kern/sparc64/ieee1275/openfw.c: Likewise.
          * loader/efi/chainloader.c: Likewise.
          * loader/efi/chainloader_normal.c: Likewise.
          * loader/i386/efi/linux.c: Likewise.
          * loader/i386/efi/linux_normal.c: Likewise.
          * loader/i386/pc/chainloader.c: Likewise.
          * loader/i386/pc/chainloader_normal.c: Likewise.
          * loader/i386/pc/linux.c: Likewise.
          * loader/i386/pc/linux_normal.c: Likewise.
          * loader/i386/pc/multiboot.c: Likewise.
          * loader/i386/pc/multiboot_normal.c: Likewise.
          * loader/powerpc/ieee1275/linux.c: Likewise.
          * loader/powerpc/ieee1275/linux_normal.c: Likewise.
          * normal/arg.c: Likewise.
          * normal/cmdline.c: Likewise.
          * normal/command.c: Likewise.
          * normal/completion.c: Likewise.
          * normal/execute.c: Likewise.
          * normal/function.c: Likewise.
          * normal/lexer.c: Likewise.
          * normal/main.c: Likewise.
          * normal/menu.c: Likewise.
          * normal/menu_entry.c: Likewise.
          * normal/misc.c: Likewise.
          * normal/parser.y: Likewise.
          * normal/script.c: Likewise.
          * normal/i386/setjmp.S: Likewise.
          * normal/powerpc/setjmp.S: Likewise.
          * normal/sparc64/setjmp.S: Likewise.
          * partmap/acorn.c: Likewise.
          * partmap/amiga.c: Likewise.
          * partmap/apple.c: Likewise.
          * partmap/gpt.c: Likewise.
          * partmap/pc.c: Likewise.
          * partmap/sun.c: Likewise.
          * term/gfxterm.c: Likewise.
          * term/terminfo.c: Likewise.
          * term/efi/console.c: Likewise.
          * term/i386/pc/console.c: Likewise.
          * term/i386/pc/serial.c: Likewise.
          * term/i386/pc/vesafb.c: Likewise.
          * term/i386/pc/vga.c: Likewise.
          * term/ieee1275/ofconsole.c: Likewise.
          * util/biosdisk.c: Likewise.
          * util/console.c: Likewise.
          * util/genmoddep.c: Likewise.
          * util/getroot.c: Likewise.
          * util/grub-emu.c: Likewise.
          * util/grub-mkdevicemap.c: Likewise.
          * util/grub-probe.c: Likewise.
          * util/lvm.c: Likewise.
          * util/misc.c: Likewise.
          * util/raid.c: Likewise.
          * util/resolve.c: Likewise.
          * util/update-grub.in: Likewise.
          * util/update-grub_lib.in: Likewise.
          * util/grub.d/00_header.in: Likewise.
          * util/grub.d/10_hurd.in: Likewise.
          * util/grub.d/10_linux.in: Likewise.
          * util/i386/efi/grub-install.in: Likewise.
          * util/i386/efi/grub-mkimage.c: Likewise.
          * util/i386/pc/grub-install.in: Likewise.
          * util/i386/pc/grub-mkimage.c: Likewise.
          * util/i386/pc/grub-mkrescue.in: Likewise.
          * util/i386/pc/grub-setup.c: Likewise.
          * util/i386/pc/misc.c: Likewise.
          * util/powerpc/ieee1275/grub-install.in: Likewise.
          * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
          * util/powerpc/ieee1275/misc.c: Likewise.
          * video/bitmap.c: Likewise.
          * video/video.c: Likewise.
          * video/i386/pc/vbe.c: Likewise.
          * video/i386/pc/vbeblit.c: Likewise.
          * video/i386/pc/vbefill.c: Likewise.
          * video/i386/pc/vbeutil.c: Likewise.
          * video/readers/tga.c: Likewise.
      5a79f472
  28. 29 May, 2006 1 commit
    • chaac's avatar
      2006-05-29 Vesa Jaaskelainen <chaac@nic.fi> · f09771a1
      chaac authored
              * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
              'exec_to_evaluate'.  Renamed field 'true' to 'exec_on_true'.  Renamed
              field 'false' to 'exec_on_false'.
              (grub_script_create_cmdif): Renamed argument names to reflect above
              changes.
      
              * normal/execute.c (grub_script_execute_cmdif): Likewise.
      
              * normal/script.c (grub_script_create_cmdif): Likewise.
      f09771a1
  29. 17 Apr, 2006 1 commit
    • marco_g's avatar
      2006-17-04 Marco Gerards <marco@gnu.org> · bfa2bd9e
      marco_g authored
      	* include/grub/script.h: Include <grub/parser.h> and
      	"grub_script.tab.h".
      	(struct grub_lexer_param): New struct.
      	(struct grub_parser_param): Likewise.
      	(grub_script_create_arglist): Pass the state in an argument.
      	(grub_script_add_arglist): Likewise.
      	(grub_script_create_cmdline): Likewise.
      	(grub_script_create_cmdblock): Likewise.
      	(grub_script_create_cmdif): Likewise.
      	(grub_script_create_cmdmenu): Likewise.
      	(grub_script_add_cmd): Likewise.
      	(grub_script_arg_add): Likewise.
      	(grub_script_lexer_ref): Likewise.
      	(grub_script_lexer_deref): Likewise.
      	(grub_script_lexer_record_start): Likewise.
      	(grub_script_lexer_record_stop): Likewise.
      	(grub_script_mem_record): Likewise.
      	(grub_script_mem_record_stop): Likewise.
      	(grub_script_malloc): Likewise.
      	(grub_script_yylex): Likewise.
      	(grub_script_yyparse): Likewise.
      	(grub_script_yyerror): Likewise.
      	(grub_script_yylex): Likewise.
      	(grub_script_lexer_init): Return the state.
      
      	* normal/lexer.c (grub_script_lexer_state): Removed variable.
      	(grub_script_lexer_done): Likewise.
      	(grub_script_lexer_getline): Likewise.
      	(grub_script_lexer_refs): Likewise.
      	(script): Likewise.
      	(newscript): Likewise.
      	(record): Likewise.
      	(recording): Likewise.
      	(recordpos): Likewise.
      	(recordlen): Likewise.
      	(grub_script_lexer_init): Return the state instead of setting
      	global variables.
      	(grub_script_lexer_ref): Use the newly added argument for state
      	instead of globals.
      	(grub_script_lexer_deref): Likewise.
      	(grub_script_lexer_record_start): Likewise.
      	(grub_script_lexer_record_stop): Likewise.
      	(recordchar): Likewise.
      	(nextchar): Likewise.
      	(grub_script_yylex2): Likewise.
      	(grub_script_yylex): Likewise.
      	(grub_script_yyerror): Likewise.
      
      	* normal/parser.y (func_mem): Removed variable.
      	(menu_entry): Likewise.
      	(err): Likewise.
      	(%lex-param): New parser option.
      	(%parse-param): Likewise.
      	(script): Always return the AST.
      	(argument): Pass the state around.
      	(arguments): Likewise.
      	(grubcmd): Likewise.
      	(commands): Likewise.
      	(function): Likewise.
      	(menuentry): Likewise.
      	(if_statement): Likewise.
      	(if): Likewise.
      
      	* normal/script.c (grub_script_memused): Removed variable.
      	(grub_script_parsed): Likewise.
      	(grub_script_malloc): Added a state argument.  Use that instead of
      	global variables.
      	(grub_script_mem_record): Likewise.
      	(grub_script_mem_record_stop): Likewise.
      	(grub_script_arg_add): Likewise.
      	(grub_script_add_arglist): Likewise.
      	(grub_script_create_cmdline): Likewise.
      	(grub_script_create_cmdif): Likewise.
      	(grub_script_create_cmdmenu): Likewise.
      	(grub_script_add_cmd): Likewise.
      	(grub_script_parse): Setup the state before calling the parser.
      bfa2bd9e
  30. 17 Jan, 2006 1 commit
    • marco_g's avatar
      2006-01-17 Marco Gerards <marco@gnu.org> · 77c4a393
      marco_g authored
      	* include/grub/normal.h: Include <grub/script.h>.
      	(grub_command_list): Removed struct.
      	(grub_command_list_t): Removed type.
      	(grub_menu_entry): Remove members `num' and `command_list'.  Add
      	members `commands' and `sourcecode'.
      	* include/grub/script.h: Add inclusion guards.
      	(grub_script_cmd_menuentry): New struct.
      	(grub_script_execute_menuentry): New prototype.
      	(grub_script_lexer_record_start): Likewise.
      	(grub_script_lexer_record_stop): Likewise.
      	* normal/execute.c (grub_script_execute_menuentry): New function.
      	* normal/lexer.c (record, recording, recordpos, recordlen): New
      	variables.
      	(grub_script_lexer_record_start): New function.
      	(grub_script_lexer_record_stop): Likewise.
      	(recordchar): Likewise.
      	(nextchar): Likewise.
      	(grub_script_yylex): Use `nextchar' to fetch new characters.  Use
      	2048 as the buffer size.  Add the tokens `menuentry' and `@'.
      	* normal/main.c: Include <grub/parser.h> and <grub/script.h>
      	(current_menu): New variable.
      	(free_menu): Mainly rewritten.
      	(grub_normal_menu_addentry): New function.
      	(read_config_file): Rewritten.
      	* normal/menu.c (run_menu_entry): Mainly rewritten.
      	* normal/menu_entry.c (make_screen): Rewritten te code to insert
      	the menu entry.
      	(run): Mainly rewritten.
      	* normal/parser.y (menu_entry): New variable.
      	(GRUB_PARSER_TOKEN_MENUENTRY): New token.
      	(menuentry): New rule.
      	(command): Add `menuentry'.
      	(if_statement): Allow additional returns before `fi'.
      	* normal/script.c (grub_script_create_cmdmenu): New function.
      77c4a393
  31. 07 Nov, 2005 1 commit
    • marco_g's avatar
      2005-11-06 Marco Gerards <mgerards@xs4all.nl> · daac212a
      marco_g authored
      	Add initial scripting support.
      
      	* commands/test.c: New file.
      	* include/grub/script.h: Likewise.
      	* normal/execute.c: Likewise.
      	* normal/function.c: Likewise.
      	* normal/lexer.c: Likewise.
      	* normal/parser.y: Likewise.
      	* normal/script.c: Likewise.
      
      	* configure.ac: Add `AC_PROG_YACC' test.
      
      	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
      	`normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
      	`normal/function.c' and `normal/script.c'.
      	(normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
      	`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
      	(test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New variables.
      	(pkgdata_MODULES): Add `test.mod'.
      	(grub_script.tab.c): New rule.
      	(grub_script.tab.h): Likewise.
      
      	* include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
      
      	* include/grub/normal.h (grub_test_init): New prototype.
      	(grub_test_fini): Likewise.
      
      	* normal/command.c: Include <grub/script.h>.
      	(grub_command_execute): Rewritten.
      
      	* util/grub-emu.c (main): Call `grub_test_init' and
      	`grub_test_fini'.
      daac212a