1. 04 Mar, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Fix menu title instability bug. · d9bef9bc
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/commands/menuentry.c (options): New option --id.
      	(grub_normal_add_menu_entry): New argument id. All users updated.
      	(grub_cmd_menuentry): Handle --id.
      	(grub_menu_init): Accept unknown arguments.
      	* grub-core/normal/main.c (features): Add feature_menuentry_id and
      	feature_menuentry_options.
      	* grub-core/normal/menu.c (grub_menu_execute_entry): Use id for
      	saved_entry.
      	(get_entry_number): Match with id as well.
      	* include/grub/menu.h (grub_menu_entry): New member id.
      	* util/grub-mkconfig_lib.in (grub_get_device_id): New function.
      	* util/grub.d/00_header.in: Define menuentry_id_option.
      	* util/grub.d/10_hurd.in: Define id.
      	* util/grub.d/10_illumos.in: Likewise.
      	* util/grub.d/10_kfreebsd.in: Likewise.
      	* util/grub.d/10_linux.in: Likewise.
      	* util/grub.d/10_netbsd.in: Likewise.
      	* util/grub.d/10_windows.in: Likewise.
      	* util/grub.d/20_linux_xen.in: Likewise.
      	* util/grub.d/30_os-prober.in: Likewise.
      d9bef9bc
  2. 11 Jan, 2011 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Submenu default support. · dcb883b1
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/normal/menu.c (grub_menu_execute_entry): New parameter
      	auto_boot. All users updated.
      	Declared static.
      	Handle chosen and default with submenus.
      	(grub_menu_execute_with_fallback): Declared static.
      	Don't notify failure if autobooted. Upper level does it.
      	(menuentry_eq): New function.
      	(get_entry_number): Use menuentry_eq.
      	(show_menu): New parameter "autobooted". All users updated.
      	(grub_show_menu): Likewise.
      	* include/grub/normal.h (grub_show_menu): Likewise.
      	* include/grub/menu.h (grub_menu_execute_entry): Removed.
      	(grub_menu_execute_with_fallback): Likewise.
      dcb883b1
  3. 21 Sep, 2010 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Support submenus. · fc55cc4c
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/commands/menuentry.c (grub_normal_add_menu_entry): New
      	parameter submenu. All users updated.
      	* grub-core/normal/main.c (free_menu): Rename to ...
      	(grub_normal_free_menu): ... this. Made global.
      	* grub-core/normal/menu.c (grub_menu_execute_entry): Open new context
      	if requested.
      	* grub-core/normal/menu_entry.c (screen): New field submenu.
      	(make_screen): Set submenu.
      	(run): Open new context if requested.
      	* include/grub/menu.h (grub_menu_entry): New field submenu.
      	* include/grub/normal.h (grub_normal_free_menu): New proto.
      fc55cc4c
  4. 03 Sep, 2010 1 commit
  5. 17 Aug, 2010 1 commit
  6. 06 May, 2010 1 commit
  7. 30 Dec, 2009 1 commit
  8. 26 Dec, 2009 1 commit
  9. 20 Nov, 2009 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      2009-11-20 Colin D Bennett <colin@gibibit.com> · ac3b7128
      Vladimir 'phcoder' Serbinenko authored
      	* normal/menu_text.c (get_entry_number): Move from here ...
      	* normal/menu.c (get_entry_number): ... moved here.
      	* include/grub/menu.h (grub_menu_get_default_entry_index):
      	New prototype.
      	* normal/menu.c (grub_menu_get_default_entry_index): New function.
      	* normal/menu_text.c (run_menu): Use grub_menu_get_default_entry_index.
      ac3b7128
  10. 25 Aug, 2009 1 commit
    • phcoder's avatar
      2009-08-25 Vladimir Serbinenko <phcoder@gmail.com> · e7e1f93f
      phcoder authored
      	Authentication support.
      
      	* commands/password.c: New file.
      	* conf/common.rmk (pkglib_MODULES): Add password.mod.
      	(password_mod_SOURCES): New variable.
      	(password_mod_CFLAGS): Likewise.
      	(password_mod_LDFLAGS): Likewise.
      	(normal_mod_SOURCES): Add normal/auth.c.
      	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add commands/password.c and
      	normal/auth.c.
      	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
      	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
      	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
      	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
      	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
      	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
      	* include/grub/auth.h: New file.
      	* include/grub/err.h (grub_err_t): New enum value
      	GRUB_ERR_ACCESS_DENIED.
      	* include/grub/menu.h (grub_menu_entry): New fields 'restricted' and
      	'users'.
      	* include/grub/normal.h (grub_cmdline_get): New argument 'history'.
      	* normal/cmdline.c (grub_cmdline_get): New argument 'history'. All
      	users updated.
      	* normal/auth.c: New file.
      	* normal/main.c (grub_normal_add_menu_entry): Handle --users option.
      	(grub_cmdline_run): Don't allow to go to command line without
      	authentication.
      	* normal/menu.c (grub_menu_execute_entry): Handle restricted entries.
      	* normal/menu_entry.c (grub_menu_entry_run): Don't allow editing
      	menuentry without superuser rights.
      	* normal/menu_viewer.c (grub_menu_viewer_show_menu): Don't exit if
      	user isn't a superuser.
      e7e1f93f
  11. 24 May, 2009 1 commit
    • cbennett's avatar
      2009-05-23 Colin D Bennett <colin@gibibit.com> · 230c0ad6
      cbennett authored
      	Cleaned up `include/grub/normal.h'.  Grouped prototypes by
      	definition file, and functions defined in `normal/menu.c' have had
      	their prototypes moved to `include/grub/menu.h' for consistency.
      
      	* include/grub/menu.h (grub_menu_execute_callback): Added; moved
      	from normal.h.
      	(grub_menu_get_entry): Likewise.
      	(grub_menu_get_timeout): Likewise.
      	(grub_menu_set_timeout): Likewise.
      	(grub_menu_execute_entry): Likewise.
      	(grub_menu_execute_with_fallback): Likewise.
      	(grub_menu_entry_run): Likewise.
      
      	* include/grub/normal.h: Re-ordered and grouped function
      	prototypes by file that the function is defined in.
      	(grub_menu_execute_callback): Removed; moved to menu.h.
      	(grub_menu_get_entry): Likewise.
      	(grub_menu_get_timeout): Likewise.
      	(grub_menu_set_timeout): Likewise.
      	(grub_menu_execute_entry): Likewise.
      	(grub_menu_execute_with_fallback): Likewise.
      	(grub_menu_entry_run): Likewise.
      	(grub_menu_addentry): Renamed from this ...
      	(grub_normal_add_menu_entry): ... to this.
      
      	* normal/main.c (grub_menu_addentry): Renamed from this ...
      	(grub_normal_add_menu_entry): ... to this.
      
      	* script/sh/execute.c (grub_script_execute_menuentry): Update
      	reference to renamed grub_menu_addentry function.
      230c0ad6
  12. 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
  13. 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