From: Robert Millan Date: Sat, 9 Jan 2010 22:49:18 +0000 (+0000) Subject: Merge multiterm branch X-Git-Tag: 1.98~202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cdb3f378d6a3a0f679b1bc8447f9bc20edd4f656;p=thirdparty%2Fgrub.git Merge multiterm branch --- cdb3f378d6a3a0f679b1bc8447f9bc20edd4f656 diff --cc ChangeLog index 6f3598e6f,6f3598e6f..d5ca433a2 --- a/ChangeLog +++ b/ChangeLog @@@ -1,3 -1,3 +1,112 @@@ ++2010-01-07 Vladimir Serbinenko ++2010-01-09 Robert Millan ++ ++ Support for multiple terminals. ++ ++ * Makefile.in (pkglib_DATA): terminal.lst. ++ (terminal.lst): New target. ++ * commands/handler.c (grub_cmd_handler): Don't handle terminals. ++ (GRUB_MOD_INIT(handler)): Likewise. ++ (GRUB_MOD_FINI(handler)): Likewise. ++ * commands/help.c (grub_cmd_help): Handle multiple terminals. ++ * commands/keystatus.c (grub_cmd_keystatus): Likewise. ++ * commands/sleep.c (do_print): Use grub_term_restore_pos. ++ (grub_cmd_sleep): Use grub_term_save_pos. ++ * commands/terminal.c: New file. ++ * conf/any-emu.rmk (grub_emu_SOURCES): Add normal/term.c ++ commands/terminal.c and lib/charset.c. ++ * conf/common.rmk (normal_mod_SOURCES): Add normal/term.c. ++ (pkglib_MODULES): Add terminal.mod. ++ (terminal_mod_SOURCES): New variable. ++ (terminal_mod_CFLAGS): Likewise. ++ (terminal_mod_LDFLAGS): Likewise. ++ * genhandlerlist.sh: Don't handle terminals. ++ * genmk.rb: Generate terminal-*.lst. ++ * genterminallist.sh: New file. ++ * include/grub/charset.h (grub_ucs4_to_utf8_alloc): New proto. ++ (grub_is_valid_utf8): Likewise. ++ (grub_utf8_to_ucs4_alloc): Likewise. ++ * include/grub/menu_viewer.h (grub_menu_viewer): Rewritten. ++ (grub_menu_register_viewer): Changed argument. ++ (grub_menu_try_text): New proto. ++ (grub_gfxmenu_try_hook): New declaration. ++ * include/grub/normal.h (grub_normal_exit_level): New declaration. ++ (grub_menu_init_page): Additional argument term. ++ (grub_normal_init_page): Likewise. ++ (grub_cmdline_get): Arguments simplified. ++ (grub_utf8_to_ucs4_alloc): Removed. ++ (grub_print_ucs4): Additional argument term. ++ (grub_getstringwidth): Likewise. ++ (grub_print_message_indented): Likewise. ++ (grub_menu_text_register_instances): New proto. ++ (grub_show_menu): Likewise. ++ (read_terminal_list): Likewise. ++ (grub_set_more): Likewise. ++ * include/grub/parser.h: Include handler.h. ++ * include/grub/reader.h: Rewritten. ++ * include/grub/term.h (GRUB_TERM_NEED_INIT): Removed. ++ (GRUB_TERM_WIDTH): Changed to function. ++ (GRUB_TERM_HEIGHT): Likewise. ++ (GRUB_TERM_BORDER_WIDTH): Likewise. ++ (GRUB_TERM_BORDER_HEIGHT): Likewise. ++ (GRUB_TERM_NUM_ENTRIES): Likewise. ++ (GRUB_TERM_ENTRY_WIDTH): Likewise. ++ (GRUB_TERM_CURSOR_X): Likewise. ++ (grub_term_input_class): Likewise. ++ (grub_term_output_class): Likewise. ++ (grub_term_outputs_disabled): New declaration. ++ (grub_term_inputs_disabled): Likewise. ++ (grub_term_outputs): Likewise. ++ (grub_term_inputs): Likewise. ++ (grub_term_register_input): Rewritten. ++ (grub_term_register_output): Likewise. ++ (grub_term_unregister_input): Likewise. ++ (grub_term_unregister_output): Likewise. ++ (FOR_ACTIVE_TERM_INPUTS): New macro. ++ (FOR_DISABLED_TERM_INPUTS): Likewise. ++ (FOR_ACTIVE_TERM_OUTPUTS): Likewise. ++ (FOR_DISABLED_TERM_OUTPUTS): Likewise. ++ * include/grub/terminfo.h: Add oterm argument to all protypes. ++ * kern/main.c (grub_main): Don't call grub_register_rescue_reader. ++ Use grub_rescue_run. ++ * kern/misc.c (grub_utf8_to_ucs4): Put '?' for invalid characters. ++ All users updated. ++ * kern/reader.c: Removed. All users updated. ++ * kern/rescue_reader.c (grub_rescue_init): Removed. ++ (grub_rescue_reader): Likewise. ++ (grub_register_rescue_reader): Likewise. ++ (grub_rescue_run): New function based on kern/reader.c. ++ * kern/term.c: Adapted for multiterm. ++ * lib/charset.c (grub_ucs4_to_utf8_alloc): New function. ++ (grub_is_valid_utf8): Likewise. ++ (grub_utf8_to_ucs4_alloc): Moved from normal/menu_text.c. ++ * loader/i386/efi/linux.c (grub_cmd_linux): Retrieve parameters of ++ right terminal. ++ * loader/i386/linux.c (grub_linux_boot): Likewise. ++ * normal/auth.c (grub_username_get): New function. ++ (grub_auth_check_authentication): Use grub_username_get. ++ * normal/cmdline.c: Changed to UCS4. Adapted for multiterm. ++ * normal/color.c: Adapt for multiterm. ++ * normal/main.c (read_config_file): Don't use grub_reader_loop. ++ (grub_normal_init_page): Additional argument term. ++ (read_lists): Call read_terminal_lists. ++ (grub_enter_normal_mode): Call grub_cmdline_run. ++ Handle grub_normal_exit_level. ++ (grub_cmd_normal): Make reentrant. ++ (grub_cmd_normal_exit): New function. ++ (grub_normal_reader_init): Additional argument nested. Handle multiterm. ++ * normal/menu.c: Adapt for multiterm. ++ * normal/menu_entry.c: Likewise. ++ * normal/menu_text.c: Likewise. ++ * normal/menu_viewer.c: Removed. All users updated. ++ * normal/term.c: New file. ++ * util/console.c: Change order of includes to workaround a bug in ++ ncurses headers. ++ * term/terminfo.c: New argument oterm on all exported functions. ++ All users updated. ++ * util/grub-editenv.c (grub_term_input_class): Removed. ++ (grub_term_output_class): Likewise. ++ 2010-01-09 Robert Millan Make loader output a bit more user-friendly.