]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2010-01-17 Vladimir Serbinenko <phcoder@gmail.com>
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 17 Jan 2010 16:52:01 +0000 (17:52 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 17 Jan 2010 16:52:01 +0000 (17:52 +0100)
Use flag-based instead of hook-based video mode selection and "auto"
keyword.

* include/grub/video.h (grub_video_adapter): Changed 'setup' member.
(grub_video_set_mode): Changed prototype. All users updated.
(grub_video_check_mode_flag): New inline function.
* video/video.c (parse_modespec): New function.
(grub_video_set_mode): Parse flags and keywords.

13 files changed:
1  2 
ChangeLog
commands/videotest.c
include/grub/video.h
loader/i386/bsd.c
loader/i386/linux.c
loader/i386/multiboot_mbi.c
loader/i386/pc/chainloader.c
loader/i386/pc/linux.c
term/gfxterm.c
video/efi_gop.c
video/efi_uga.c
video/i386/pc/vbe.c
video/video.c

diff --cc ChangeLog
index 748a555653436ee697ff460422474db9e0211001,9506d26ca7d446118c526276b385d33fef672856..41f9aeaa49a6b67e0926fddb20ddc3223670bab0
+++ b/ChangeLog
++2010-01-17  Vladimir Serbinenko  <phcoder@gmail.com>
++
++      Use flag-based instead of hook-based video mode selection and "auto"
++      keyword.
++
++      * include/grub/video.h (grub_video_adapter): Changed 'setup' member.
++      (grub_video_set_mode): Changed prototype. All users updated.
++      (grub_video_check_mode_flag): New inline function.
++      * video/video.c (parse_modespec): New function.
++      (grub_video_set_mode): Parse flags and keywords.
++
 +2010-01-17  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * util/misc.c (grub_util_info): Fix the order of the parameters in a
 +      fprintf call.
 +
 +2010-01-16  GrĂ©goire Sutre <gregoire.sutre@gmail.com>
 +
 +      * genmk.rb (class SCRIPT): Replace option -i of sed by a pipe.
 +
 +2010-01-16  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * util/grub-editenv.c (usage): Use `program_name' instead of hardcoded
 +      string.
 +      * util/grub-emu.c (usage): Likewise.
 +      * util/grub-mkpasswd-pbkdf2.c (usage): Likewise.
 +      * util/i386/efi/grub-mkimage.c (usage): Likewise.
 +      * util/i386/pc/grub-mkimage.c (usage): Likewise.
 +      * util/i386/pc/grub-setup.c (usage): Likewise.
 +
 +2010-01-16  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * util/misc.c (grub_util_warn): Gettextizze, print full stop after
 +      the message.
 +      (grub_util_info): Likewise.
 +      (grub_util_error): Likewise.
 +      * util/elf/grub-mkimage.c: Fix capitalisation, quotes, full stops
 +      and/or new lines in `grub_util_warna', `grub_util_info',
 +      `grub_util_error' calls.
 +      * util/getroot.c: Likewise.
 +      * util/grub-editenv.c: Likewise.
 +      * util/grub-emu.c: Likewise.
 +      * util/grub-fstest.c: Likewise.
 +      * util/grub-mkdevicemap.c: Likewise.
 +      * util/grub-mkfont.c: Likewise.
 +      * util/grub-mkpasswd-pbkdf2.c: Likewise.
 +      * util/grub-mkrelpath.c: Likewise.
 +      * util/grub-pe2elf.c: Likewise.
 +      * util/grub-probe.c: Likewise.
 +      * util/hostdisk.c: Likewise.
 +      * util/i386/efi/grub-mkimage.c: Likewise.
 +      * util/i386/pc/grub-mkimage.c: Likewise.
 +      * util/i386/pc/grub-setup.c: Likewise.
 +      * util/ieee1275/ofpath.c: Likewise.
 +      * util/mkisofs/eltorito.c: Likewise.
 +      * util/mkisofs/rock.c: Likewise.
 +      * util/mkisofs/write.c: Likewise.
 +      * util/raid.c: Likewise.
 +      * util/sparc64/ieee1275/grub-mkimage.c: Likewise.
 +      * util/sparc64/ieee1275/grub-setup.c: Likewise.
 +
 +2010-01-15  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Enable multiboot on non-pc.
 +
 +      * conf/i386-coreboot.rmk, conf/i386-pc.rmk (pkglib_MODULES): Move
 +      multiboot.mod and multiboot2.mod to ...
 +      * conf/i386.rmk (pkglib_MODULES): ... here.
 +      * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_SOURCES):
 +      Moved to ...
 +      * conf/i386.rmk (multiboot_mod_SOURCES): .. here.
 +      * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_CFLAGS):
 +      Moved to ...
 +      * conf/i386.rmk (multiboot_mod_CFLAGS): .. here.
 +      * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_ASFLAGS):
 +      Moved to ...
 +      * conf/i386.rmk (multiboot_mod_ASFLAGS): .. here.
 +      * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_LDFLAGS):
 +      Moved to ...
 +      * conf/i386.rmk (multiboot_mod_LDFLAGS): .. here.
 +      * conf/x86_64-efi.rmk (pkglib_MODULES): Remove ata.mod and
 +      relocator.mod.
 +      (ata_mod_SOURCES): Removed.
 +      (ata_mod_CFLAGS): Likewise.
 +      (ata_mod_LDFLAGS): Likewise.
 +      (relocator_mod_SOURCES): Removed.
 +      (relocator_mod_CFLAGS): Likewise.
 +      (relocator_mod_ASFLAGS): Likewise.
 +      (relocator_mod_LDFLAGS): Likewise.
 +      Include i386.mk.
 +      * include/grub/x86_64/multiboot.h: New file.
 +      * loader/i386/multiboot.c (grub_multiboot_boot) [GRUB_MACHINE_EFI]:
 +      Terminate EFI.
 +
 +2010-01-15  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Video multiboot support.
 +
 +      * include/grub/multiboot.h (grub_multiboot_set_accepts_video):
 +      New prototype.
 +      * include/multiboot.h: Resynced with multiboot specification.
 +      * include/multiboot2.h: Likewise.
 +      * loader/i386/multiboot.c (UNSUPPORTED_FLAGS): Support video flags.
 +      (grub_multiboot): Parse MULTIBOOT_VIDEO_MODE fields.
 +      * loader/i386/multiboot_mbi.c (DEFAULT_VIDEO_MODE): New constant.
 +      (HAS_VGA_TEXT): Likewise.
 +      (accepts_video): New variable.
 +      (grub_multiboot_set_accepts_video): New function.
 +      (grub_multiboot_get_mbi_size): Account for video structures.
 +      (set_video_mode): New function.
 +      (retrieve_video_parameters): Likewise.
 +      (grub_multiboot_make_mbi): Fill video fields.
 +
 +2010-01-15  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Video driver ids.
 +
 +      * include/grub/video.h (grub_video_driver_id): New type.
 +      (grub_video_adapter): New member 'id'. All users updated.
 +      (grub_video_get_driver_id): New proto.
 +      * video/video.c (grub_video_get_driver_id): New function.
 +
 +2010-01-14  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * util/grub.d/30_os-prober.in: Use `set var=val' rather than plain
 +      `var=val'.
 +
 +2010-01-14  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * normal/cmdline.c (print_completion): Gettextizze.
 +
 +2001-01-14  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * loader/i386/pc/chainloader.c: Include `<grub/mm.h>'.
 +
 +2010-01-14  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * gettext/gettext.c (grub_gettext_translate): Push and pop
 +      grub_errno.
 +      (grub_gettext_delete_list): Change comment style.
 +      * kern/err.c (grub_error): Gettextizze.
 +      (grub_fatal): Gettextizze.
 +
 +2010-01-14  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * include/grub/i386/loader.h (grub_linux16_boot): Renamed to ...
 +      (grub_linux16_real_boot): ... this.
 +      * kern/i386/loader.S: Likewise.
 +      * loader/i386/pc/linux.c: Include `<grub/video.h>' and `<grub/mm.h>'.
 +      (grub_linux16_boot): New function.  Switches to text mode and calls
 +      grub_linux16_real_boot().
 +
 +      * loader/i386/bsd.c: Include `<grub/video.h>'.
 +      (grub_freebsd_boot, grub_openbsd_boot, grub_netbsd_boot): Switch to
 +      text mode before calling grub_unix_real_boot().
 +
 +      * loader/i386/multiboot.c: Include `<grub/video.h>'.
 +      (grub_multiboot_boot): Switch to text mode before calling
 +      grub_relocator32_boot().
 +
 +      * loader/i386/pc/chainloader.c: Include `<grub/video.h>'.
 +      (grub_chainloader_boot): Switch to text mode before calling
 +      grub_chainloader_real_boot().
 +
 +2010-01-05  Jordan Uggla  <jordan.uggla@gmail.com>
 +2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub-reboot.in: Make sure prev_saved_entry always gets a
 +      non-empty value.
 +
 +2010-01-05  Jordan Uggla  <jordan.uggla@gmail.com>
 +2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub.d/00_header.in: Define a "savedefault" function for use
 +      in menu entries.
 +      * util/grub-mkconfig_lib.in (save_default_entry): Use it.
 +
 +2010-01-05  Jordan Uggla  <jordan.uggla@gmail.com>
 +2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub-mkconfig_lib.in (save_default_entry): Only set
 +      saved_entry if boot_once is unset.
 +      * util/grub.d/00_header.in: Set boot_once to "true" if there was a
 +      previous saved entry (i.e. grub-reboot).
 +
 +2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub.d/30_os-prober.in: Call save_default_entry for hurd.
 +
 +2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub.d/00_header.in: Use `set var=val' rather than plain
 +      `var=val'.
 +      * util/grub-mkconfig_lib.in (save_default_entry): Likewise.
 +
 +2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub-reboot.in: Fix --version output.
 +      * util/grub-set-default.in: Likewise.
 +
 +2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub.d/00_header.in: Silently ignore zero-sized environment
 +      blocks.
 +
 +2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub.d/00_header.in: Quote the value assigned to `default',
 +      in case it contains spaces.
 +
 +2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub.d/30_os-prober.in: Fix merge error that moved a
 +      `save_default_entry' call from the macosx case to the linux case.
 +
 +2009-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +2009-10-25  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * normal/menu.c (grub_menu_execute_entry): Save selected entry title
 +      in `chosen' environment variable.
 +      * normal/menu_text.c (get_entry_number): Check if the variable
 +      matches the title of a menu entry.
 +      (run_menu): Pass menu to get_entry_number.
 +
 +      * util/grub-reboot.in: New file.
 +      * util/grub-set-default.in: New file.
 +      * conf/common.rmk (grub-reboot): New utility.
 +      (grub-set-default): New utility.
 +
 +      * util/grub-mkconfig_lib.in (save_default_entry): New function.
 +      * util/grub.d/00_header.in: If GRUB_DEFAULT is `saved', set
 +      default to `${saved_entry}'.  If `${prev_saved_entry}' is non-empty,
 +      move it to `saved_entry' for the next boot.  Load environment on
 +      initialisation.
 +      * util/grub.d/10_kfreebsd.in: Call save_default_entry.
 +      * util/grub.d/10_hurd.in: Likewise.
 +      * util/grub.d/10_linux.in (linux_entry): Likewise.
 +      * util/grub.d/10_windows.in: Likewise.
 +      * util/grub.d/30_os-prober.in: Likewise.
 +
 +      * util/grub-install.in: Create environment block.
 +      * util/i386/efi/grub-install.in: Likewise.
 +      * util/ieee1275/grub-install.in: Likewise.
 +      * util/sparc64/ieee1275/grub-install.in: Likewise.
 +
 +2010-01-14  BVK Chaitanya  <bvk.groups@gmail.com>
 +
 +      Unit testing framework for GRUB.
 +
 +      * Makefile.in: Test framework build rules for 'make check'.
 +      * conf/tests.rmk: Build rules for individual tests and framework.
 +
 +      * include/grub/test.h: Header file for whitebox tests.
 +      * tests/lib/functional_test.c: Framework support for whitebox
 +      functional tests.
 +      * tests/lib/test.c: Common whitebox testing code for unit and
 +      functional tests.
 +      * tests/lib/unit_test.c: Framework support for whitebox unit
 +      tests.
 +
 +      * tests/util/grub-shell-tester.in: Support utility for grub-script
 +      tests.
 +      * tests/util/grub-shell.in: Utility to execute grub-script
 +      commands in a Qemu instance.
 +
 +      * tests/example_functional_test.c: Example whitebox functional
 +      test.
 +      * tests/example_grub_script_test.in: Example grub-script test.
 +      * tests/example_scripted_test.in: Example scripted test.
 +      * tests/example_unit_test.c: Example whitebox unit test.
 +
 +2010-01-14  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * conf/i386-coreboot.rmk (multiboot_mod_SOURCES):
 +      Add loader/i386/multiboot_mbi.c.
 +      (multiboot2_mod_SOURCES): Likewise.
 +      * conf/i386-pc.rmk (multiboot_mod_SOURCES): Likewise.
 +      (multiboot2_mod_SOURCES): Likewise.
 +      * include/grub/multiboot.h (grub_multiboot_get_mbi_size): New proto.
 +      (grub_multiboot_make_mbi): Likewise.
 +      (grub_multiboot_free_mbi): Likewise.
 +      (grub_multiboot_init_mbi): Likewise.
 +      (grub_multiboot_add_module): Likewise.
 +      (grub_multiboot_set_bootdev): Likewise.
 +      * loader/i386/multiboot.c (mbi): Removed.
 +      (mbi_dest): Likewise.
 +      (alloc_mbi): New variable.
 +      (grub_multiboot_payload_size): Removed. All users updated.
 +      (grub_multiboot_pure_size): New variable.
 +      (grub_multiboot_boot): Use grub_multiboot_make_mbi.
 +      (grub_multiboot_unload): Use grub_multiboot_free_mbi.
 +      (grub_get_multiboot_mmap_len): Moved to loader/i386/multiboot_mbi.c.
 +      (grub_fill_multiboot_mmap): Likewise.
 +      (grub_multiboot_get_bootdev): Likewise.
 +      (grub_multiboot): Use multiboot_mbi functions.
 +      * loader/i386/multiboot_mbi.c: New file.
 +
 +2010-01-13  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * kern/efi/init.c (grub_efi_fini): Don't call grub_efi_mm_fini as
 +      it would result in module crash.
 +
 +2010-01-13  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * term/ieee1275/ofconsole.c (grub_ofconsole_putchar): Handle '\r'.
 +      (grub_ofconsole_getwh): Split to ...
 +      (grub_ofconsole_getwh): ... this.
 +      (grub_ofconsole_dimensions): ...and this.
 +      (grub_ofconsole_init_output): Call grub_ofconsole_dimensions.
 +
 +2010-01-13  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/mkisofs/rock.c (generate_rock_ridge_attributes): Fix a typo.
 +
 +2010-01-12  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * loader/i386/pc/multiboot2.c: Removed stalled file.
 +
 +2010-01-12  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-mkpasswd-pbkdf2.c (main): Use grub_util_init_nls.
 +      Reported by: GrĂ©goire Sutre
 +
 +2010-01-11  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/misc.c (canonicalize_file_name): New function.
 +      (make_system_path_relative_to_its_root): Use canonicalize_file_name()
 +      instead of realpath().
 +
 +2010-01-11  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/grub-install.in (usage): Clarify meaning of --root-directory,
 +      and make it clearer that it's optional.  Based on confusion
 +      witnessed on IRC.
 +
 +2010-01-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * term/i386/pc/vga_text.c (inc_y): Fix off-by-one error which resulted
 +      in premature implicit newline.
 +
 +2010-01-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * normal/cmdline.c (grub_cmdline_get): Fix off-by-one error
 +      which resulted in garbled command line at the end of screen.
 +
 +2010-01-10  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * loader/i386/ieee1275/linux.c (grub_linux_boot): Rework video position
 +      initialization with similar approach as with other Linux loaders.
 +
 +2010-01-10  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      Fix i386-ieee1275 build.
 +
 +      * loader/i386/ieee1275/linux.c (grub_linux_boot): Use grub_term_width()
 +      and grub_term_height() for video_{width,height} initialization.
 +
 +2010-01-10  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      Fix grub-emu build.
 +
 +      * conf/any-emu.rmk (grub_emu_SOURCES): Remove `kern/reader.c'.
 +
 +2010-01-07  Vladimir Serbinenko  <phcoder@gmail.com>
 +2010-01-09  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      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  <rmh.grub@aybabtu.com>
 +
 +      Make loader output a bit more user-friendly.
 +
 +      * util/grub.d/10_hurd.in: Print message indicating that GNU Mach
 +      is being loaded.  Likewise for the Hurd.
 +
 +      * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Print message indicating
 +      that kernel of FreeBSD ${version} is being loaded.
 +
 +      * loader/i386/linux.c (grub_cmd_linux): Move debug info to
 +      grub_dprintf().
 +      (grub_cmd_initrd): Likewise.
 +      * util/grub.d/10_linux.in (linux_entry): Print message indicating
 +      that Linux ${version} is being loaded.  Likewise for initrd.
 +
 +2010-01-09  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * gettext/gettext.c (GRUB_MOD_INIT): Gettextizze.
 +
 +2010-01-08  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * loader/efi/appleloader.c: Include `<grub/i18n.h>'.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/efi/chainloader.c: Include `<grub/i18n.h>'.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/i386/efi/linux.c: Include `<grub/i18n.h>'.
 +      (grub_cmd_linux): Capitalise Linux.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/i386/ieee1275/linux.c: Include `<grub/i18n.h>'.
 +      (grub_cmd_linux): Capitalise Linux.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/i386/linux.c: Include `<grub/i18n.h>'.
 +      (grub_cmd_linux): Capitalise Linux.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/i386/pc/chainloader.c: Include `<grub/i18n.h>'.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/i386/pc/linux.c: Include `<grub/i18n.h>'.
 +      (grub_cmd_linux): Capitalise Linux.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/i386/xnu.c: Include `<grub/i18n.h>'.
 +      (grub_cpu_xnu_init): Gettextizze.
 +      * loader/multiboot_loader.c: Include `<grub/i18n.h>'.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/powerpc/ieee1275/linux.c: Include `<grub/i18n.h>'.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/sparc64/ieee1275/linux.c: Include `<grub/i18n.h>'.
 +      (grub_linux_load64): Capitalise Linux.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * loader/xnu.c: Include `<grub/i18n.h>'.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * po/POTFILES: Add `loader/efi/appleloader.c',
 +      `loader/efi/chainloader.c', `loader/i386/efi/linux.c',
 +      `loader/i386/ieee1275/linux.c', `loader/i386/linux.c',
 +      `loader/i386/pc/chainloader.c', `loader/i386/pc/linux.c',
 +      `loader/i386/xnu.c', `loader/multiboot_loader.c',
 +      `loader/powerpc/ieee1275/linux.c', `loader/sparc64/ieee1275/linux.c'
 +      and `loader/xnu.c'.
 +
 +2010-01-08  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * src/mkisofs.c: Remove `ifdef linux' portability kludge.
 +
 +2010-01-08  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/mkisofs/defaults.h (APPID_DEFAULT): Redefine using PACKAGE_NAME.
 +      (SYSTEM_ID_DEFAULT): Set to "GNU" unconditionally.
 +      * util/mkisofs/mkisofs.c (main): Readjust --version output.
 +
 +2010-01-07  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      Reset Multiboot 2 support.  New loader implements the draft in
 +      /branches/multiboot2 and shares as much code as possible with the
 +      production Multiboot 1 implementation.
 +
 +      * loader/ieee1275/multiboot2.c: Remove file.  Update all users.
 +      * loader/multiboot2.c: Likewise.
 +      * loader/i386/multiboot_helper.S: Likewise.
 +      * include/multiboot2.h: Replace with latest version from the draft
 +      in /branches/multiboot2.
 +
 +      * conf/i386-coreboot.rmk (multiboot_mod_SOURCES): Remove
 +      `loader/i386/multiboot_helper.S', `loader/i386/pc/multiboot2.c'
 +      and `loader/multiboot2.c'.
 +      (pkglib_MODULES): Add `multiboot2.mod'.
 +      (multiboot2_mod_SOURCES): New variable.
 +      (multiboot2_mod_LDFLAGS): Likewise.
 +      (multiboot2_mod_CFLAGS): Likewise.  Define `GRUB_USE_MULTIBOOT2'.
 +
 +      * conf/i386-pc.rmk: Likewise.
 +
 +      * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'.
 +      (multiboot_mod_SOURCES): Remove variable.
 +      (multiboot_mod_LDFLAGS): Likewise.
 +      (multiboot_mod_CFLAGS): Likewise.
 +
 +      * include/grub/multiboot.h [GRUB_USE_MULTIBOOT2]: Include
 +      `<multiboot2.h>' instead of `<multiboot.h>'.
 +      [GRUB_USE_MULTIBOOT2] (MULTIBOOT_BOOTLOADER_MAGIC)
 +      (MULTIBOOT_HEADER_MAGIC): New macros.
 +
 +      * loader/multiboot_loader.c (module_version_status): Remove variable.
 +      (find_multi_boot2_header): Remove function.
 +      (grub_cmd_multiboot_loader): Remove Multiboot 2 / Multiboot 1 selection
 +      logic.  Always check for the Multiboot version we're compiling for.
 +      (grub_cmd_module_loader): Likewise.
 +      [GRUB_USE_MULTIBOOT2] (GRUB_MOD_INIT(multiboot)): Register `multiboot2'
 +      command instead of `multiboot'.
 +
 +2010-01-07  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * include/multiboot.h (MULTIBOOT_UNSUPPORTED): Moved from here ...
 +      * loader/i386/multiboot.c (UNSUPPORTED_FLAGS): ... to here.  Update
 +      all users.
 +
 +2010-01-07  Robert Millan  <rmh.grub@aybabtu.com>
 +2010-01-07  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix breakage introduced with previous commit.
 +
 +      * normal/dyncmd.c (read_command_list): Avoid unregistering kernel
 +      commands.
 +      * normal/handler.c (read_handler_list): Revert part of previous commit
 +      affecting this file.
 +      * normal/main.c (read_lists): Move read_handler_list() call back to ...
 +      (grub_normal_execute): ... here.
 +
 +2010-01-07  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      Merge prefix-redefinition-fix branch.
 +
 +      * normal/autofs.c (read_fs_list): Make function capable of being
 +      run multiple times, gracefuly replacing the previous data
 +      structures.
 +      * normal/dyncmd.c (read_command_list): Likewise.
 +      * normal/handler.c (read_handler_list): Likewise.
 +      * normal/main.c (read_lists): New function.  Calls all the
 +      list reading functions.
 +      (grub_normal_execute): Use read_lists() instead of calling all
 +      list reading functions explicitly.  Register read_lists() as a
 +      variable hook attached to ${prefix}.
 +
 +2010-01-07  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Merge crypto branch.
 +
 +      * Makefile.in (pkglib_DATA):  Add crypto.lst.
 +      (crypto.lst): New target.
 +      * commands/hashsum.c: New file.
 +      * commands/password.c (check_password): Use grub_crypto_memcmp.
 +      * commands/password_pbkdf2.c: New file.
 +      * commands/xnu_uuid.c: Remove MD5. Use GRUB_MD_MD5.
 +      * conf/any-emu.rmk (grub_emu_SOURCES): Add lib/crypto.c,
 +      normal/crypto.c and lib/libgcrypt-grub/cipher/md5.c.
 +      (grub_emu_CFLAGS): Add -Wno-missing-field-initializers -Wno-error
 +      -I$(srcdir)/lib/libgcrypt_wrap.
 +      * conf/common.rmk (normal_mod_SOURCES): Add normal/crypto.c.
 +      (pkglib_MODULES): Add crypto.mod, hashsum.mod, pbkdf2.mod and
 +      password_pbkdf2.mod.
 +      (crypto_mod_SOURCES): New variable.
 +      (crypto_mod_CFLAGS): Likewise.
 +      (crypto_mod_LDFLAGS): Likewise.
 +      (hashsum_mod_SOURCES): New variable.
 +      (hashsum_mod_CFLAGS): Likewise.
 +      (hashsum_mod_LDFLAGS): Likewise.
 +      (pbkdf2_mod_SOURCES): New variable.
 +      (pbkdf2_mod_CFLAGS): Likewise.
 +      (pbkdf2_mod_LDFLAGS): Likewise.
 +      (password_pbkdf2_mod_SOURCES): New variable.
 +      (password_pbkdf2_mod_CFLAGS): Likewise.
 +      (password_pbkdf2_mod_LDFLAGS): Likewise.
 +      (bin_UTILITIES): Add grub-mkpasswd-pbkdf2.
 +      (grub_mkpasswd_pbkdf2_SOURCES): New variable.
 +      (grub_mkpasswd_pbkdf2_CFLAGS): Likewise.
 +      Include conf/gcry.rmk.
 +      * include/grub/auth.h: Rewritten.
 +      * include/grub/crypto.h: New file.
 +      * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_LUKS_ID.
 +      * include/grub/normal.h (read_crypto_list): New prototype.
 +      * lib/crypto.c: New file.
 +      * lib/libgcrypt_wrap/cipher_wrap.h: Likewise.
 +      * lib/pbkdf2.c: Likewise.
 +      * normal/auth.c (grub_auth_strcmp): Removed.
 +      (grub_iswordseparator): Likewise.
 +      (grub_auth_strword): Likewise.
 +      (is_authenticated): Use grub_strword.
 +      (grub_auth_check_authentication): Use grub_strcmp, grub_password_get
 +      and grub_strword. Pass entered password to authentication callback.
 +      * normal/crypto.c: New file.
 +      * normal/main.c: Call read_crypto_list.
 +      * util/grub-mkpasswd-pbkdf2.c: New file.
 +      * util/import_gcry.py: Generate crypto.lst. Add hash blocklen.
 +
 +2010-01-06  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix descent and ascent calculation.
 +
 +      * util/grub-mkfont.c (grub_font_info): New fields 'asce' and 'max_y'.
 +      (options): New option "asce".
 +      (usage): Likewise.
 +      (add_char): Ignore invalid glyphs for descent calculation.
 +      Calculate ascent from actual content.
 +      (print_glyphs): Use 'asce'.
 +      (write_font): Likewise. Allow ascent override.
 +      (main): Handle "asce" option.
 +
 +2010-01-06  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * kern/err.c: Include `<grub/i18n.h>'.
 +      (grub_print_error): Add full stop. Gettextizze.
 +      * loader/i386/bsd.c (grub_netbsd_boot): Change grub_error description.
 +      (grub_bsd_load_elf): Capitalise ELF.
 +      (grub_cmd_freebsd_loadenv): Add `s' in error string.
 +      (grub_cmd_freebsd_module): Likewise.
 +      (grub_cmd_freebsd_module_elf): Likewise.
 +      * loader/i386/bsdXX.c (SUFFIX): Capitalise ELF.
 +
 +2010-01-06  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * commands/search.c (GRUB_MOD_INIT): Use HELP_MESSAGE.
 +      * commands/search_file.c (HELP_MESSAGE): New macro.
 +      * commands/search_label.c (HELP_MESSAGE): Likewise.
 +      * commands/search_uuid.c (HELP_MESSAGE): Likewise.
 +      * po/POTFILES: Add `commands/search_file.c',
 +      `commands/search_label.c', `commands_uuid.c'. Remove duplicate
 +      `commands/search.c'.
 +
 +2010-01-05  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * config.rpath: Update from Gnulib.
 +
 +2010-01-05  Yves Blusseau  <blusseau@zetam.org>
 +
 +      * commands/acpi.c (grub_acpi_create_ebda): fix incorrect message.
 +
 +2010-01-05  Yves Blusseau  <yves.blusseau@zetam.org>
 +
 +      * util/sparc64/ieee1275/grub-mkimage.c (main): Typo fix.
 +
 +2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/mkisofs/write.c (padblock_write): Switch size and nmemb
 +      arguments to fread so that we get a return value in bytes, rather
 +      than something that will normally be rounded down to 0.
 +      Adjust error handling to avoid producing garbage when size_t is not
 +      the same size as long long.
 +
 +2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * util/mkisofs/write.c (padblock_write): Check return value of
 +      fread.
 +
 +2010-01-05  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      Remove grub-mkfloppy.  Images produced by grub-mkrescue are valid
 +      floppy images now.
 +
 +      * util/i386/pc/grub-mkfloppy.in: Remove.  Update all users.
 +
 +2010-01-04  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Use ALIGN_UP macro
 +      instead of manual alignment.
 +      * kern/disk.c (grub_disk_read): Remove grub_dprintf call (excessively
 +      verbose).  Avoid attempts to read past end of the device
 +      (grub_disk_adjust_range() guarantees that we can read `size' bytes,
 +      but GRUB_DISK_CACHE_SIZE may exceed that).
 +
 +2010-01-04  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * commands/crc.c (grub_cmd_crc): Abort on read errors.
 +      * fs/iso9660.c (grub_iso9660_read): Check for read error and pass
 +      it to upper layer.
 +
 +2010-01-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/efi/api.h (GRUB_EFI_PIWG_DEVICE_PATH_SUBTYPE):
 +      New constant.
 +      (grub_efi_piwg_device_path): New structure
 +      (grub_efi_piwg_device_path_t): New type.
 +      * loader/efi/appleloader.c (piwg_full_device_path): New structure.
 +      (devpath_1): Transform to a structure. All users updated.
 +      (devpath_2): Likewise.
 +      (devpath_3): Likewise.
 +      (devpath_4): Likewise.
 +      (devpath_5): Likewise.
 +
 +2010-01-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * loader/efi/appleloader.c: Restored. Update all users.
 +
 +2010-01-03  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * boot/i386/pc/diskboot.S: Fix inaccurate comment.
 +
 +      * util/i386/pc/grub-setup.c: Include `<assert.h>'.
 +      (struct boot_blocklist): Move from here ...
 +      * include/grub/i386/pc/boot.h [ASM_FILE]
 +      (struct grub_boot_blocklist): ... to here.  Update all users.
 +      (setup): Only initialize `start' member of `first_block'
 +      structure.  Add assert() calls to verify the other members.
 +
 +      * util/i386/pc/grub-mkimage.c: Include `<assert.h>'.
 +      (generate_image): Fix broken blocklist length initialization.
 +      Add assert() call to verify blocklist `segment' field.
 +
 +2010-01-03  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * loader/efi/appleloader.c: Remove.  Update all users.
 +
 +2010-01-03  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * boot/i386/pc/boot.S: Update copyright year.
 +      * boot/i386/pc/cdboot.S: Likewise.
 +      * boot/i386/pc/diskboot.S: Likewise.
 +      * boot/i386/pc/lnxboot.S: Likewise.
 +      * boot/i386/pc/pxeboot.S: Likewise.
 +      * bus/pci.c: Likewise.
 +      * commands/cmp.c: Likewise.
 +      * commands/help.c: Likewise.
 +      * commands/hexdump.c: Likewise.
 +      * commands/i386/pc/halt.c: Likewise.
 +      * commands/i386/pc/play.c: Likewise.
 +      * commands/i386/pc/vbeinfo.c: Likewise.
 +      * commands/ls.c: Likewise.
 +      * commands/test.c: Likewise.
 +      * disk/dmraid_nvidia.c: Likewise.
 +      * disk/i386/pc/biosdisk.c: Likewise.
 +      * disk/ieee1275/nand.c: Likewise.
 +      * disk/ieee1275/ofdisk.c: Likewise.
 +      * disk/lvm.c: Likewise.
 +      * disk/raid.c: Likewise.
 +      * disk/raid6_recover.c: Likewise.
 +      * disk/scsi.c: Likewise.
 +      * fs/affs.c: Likewise.
 +      * fs/cpio.c: Likewise.
 +      * fs/ext2.c: Likewise.
 +      * fs/hfs.c: Likewise.
 +      * fs/iso9660.c: Likewise.
 +      * fs/ntfs.c: Likewise.
 +      * fs/sfs.c: Likewise.
 +      * fs/udf.c: Likewise.
 +      * fs/ufs.c: Likewise.
 +      * fs/xfs.c: Likewise.
 +      * gencmdlist.sh: Likewise.
 +      * genmk.rb: Likewise.
 +      * include/grub/disk.h: Likewise.
 +      * include/grub/efi/api.h: Likewise.
 +      * include/grub/efi/efi.h: Likewise.
 +      * include/grub/efi/pe32.h: Likewise.
 +      * include/grub/elf.h: Likewise.
 +      * include/grub/fs.h: Likewise.
 +      * include/grub/i386/at_keyboard.h: Likewise.
 +      * include/grub/i386/pc/memory.h: Likewise.
 +      * include/grub/i386/pc/vbe.h: Likewise.
 +      * include/grub/i386/pci.h: Likewise.
 +      * include/grub/i386/tsc.h: Likewise.
 +      * include/grub/ieee1275/ieee1275.h: Likewise.
 +      * include/grub/ntfs.h: Likewise.
 +      * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
 +      * include/grub/sparc64/libgcc.h: Likewise.
 +      * include/grub/symbol.h: Likewise.
 +      * include/grub/types.h: Likewise.
 +      * include/multiboot2.h: Likewise.
 +      * io/gzio.c: Likewise.
 +      * kern/device.c: Likewise.
 +      * kern/disk.c: Likewise.
 +      * kern/efi/efi.c: Likewise.
 +      * kern/efi/mm.c: Likewise.
 +      * kern/elf.c: Likewise.
 +      * kern/file.c: Likewise.
 +      * kern/i386/dl.c: Likewise.
 +      * kern/i386/pc/init.c: Likewise.
 +      * kern/i386/pc/startup.S: Likewise.
 +      * kern/ieee1275/ieee1275.c: Likewise.
 +      * kern/ieee1275/init.c: Likewise.
 +      * kern/main.c: Likewise.
 +      * kern/mm.c: Likewise.
 +      * kern/powerpc/dl.c: Likewise.
 +      * kern/sparc64/dl.c: Likewise.
 +      * kern/x86_64/dl.c: Likewise.
 +      * lib/hexdump.c: Likewise.
 +      * loader/efi/appleloader.c: Likewise.
 +      * loader/i386/ieee1275/linux.c: Likewise.
 +      * loader/i386/pc/chainloader.c: Likewise.
 +      * loader/i386/pc/linux.c: Likewise.
 +      * loader/i386/pc/multiboot2.c: Likewise.
 +      * loader/ieee1275/multiboot2.c: Likewise.
 +      * loader/multiboot2.c: Likewise.
 +      * loader/multiboot_loader.c: Likewise.
 +      * loader/powerpc/ieee1275/linux.c: Likewise.
 +      * normal/completion.c: Likewise.
 +      * normal/menu_entry.c: Likewise.
 +      * partmap/apple.c: Likewise.
 +      * util/grub.d/10_hurd.in: Likewise.
 +      * util/hostfs.c: Likewise.
 +      * video/readers/png.c: Likewise.
 +
 +2010-01-03  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * include/grub/misc.h (GNUC_PREREQ): New macro.
 +      (ATTRIBUTE_ERROR): New macro.
 +      * include/grub/list.h (grub_bad_type_cast_real): Use
 +      ATTRIBUTE_ERROR.
 +
 +2010-01-03  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * normal/menu_text.c (print_message): Change messages.
 +
 +2010-01-03  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * normal/menu_entry.c (store_completion): Gettextizze.
 +
 +2010-01-03  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * kern/env.c (grub_env_unset): Set the variable to "" if has hooks.
 +
 +2010-01-03  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * po/POTFILES: Sort correctly.
 +
 +2010-01-03  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * commands/acpi.c (GRUB_MOD_INIT): Capitalise some words from help.
 +      * commands/efi/loadbios.c (GRUB_MOD_INIT): Capitalise BIOS.
 +      * commands/i386/pc/drivemap.c (GRUB_MOD_INIT): Remove space. Add
 +      full stop.
 +      * commands/loadenv.c (GRUB_MOD_INIT): Remove command name from
 +      summary. Gettextizze the strings.
 +      * commands/probe.c (grub_cmd_probe): Capitalise UUID and FS.
 +      * commands/xnu_uuid.c (GRUB_MOD_INIT): Capitalise XNU.
 +      * disk/loopback.c (grub_arg_options): Capitalise first letter. Add
 +      full stop.
 +      (GRUB_MOD_INIT): Remove command name from summary.
 +      * hello/hello.c (GRUD_MOT_INIT): Add missing full stop. Improve the
 +      summary.
 +      * loader/i386/bsd.c (grub_arg_option): Capitalise CDROM.
 +      * term/i386/pc/serial.c (options): Add full stops.
 +      (GRUB_MOD_INIT): Remove command name from the summary.
 +
 +2010-01-03  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * commands/acpi.c: Gettextizze help strings and/or options. Include
 +      `grub/i18n.h' if needed.
 +      * commands/blocklist.c: Likewise.
 +      * commands/boot.c: Likewise.
 +      * commands/cat.c: Likewise.
 +      * commands/cmp.c: Likewise.
 +      * commands/configfile.c: Likewise.
 +      * commands/crc.c: Likewise.
 +      * commands/date.c: Likewise.
 +      * commands/echo.c: Likewise.
 +      * commands/efi/fixvideo.c: Likewise.
 +      * commands/efi/loadbios.c: Likewise.
 +      * commands/gptsync.c: Likewise.
 +      * commands/halt.c: Likewise.
 +      * commands/handler.c: Likewise.
 +      * commands/hdparm.c: Likewise.
 +      * commands/hexdump.c: Likewise.
 +      * commands/i386/cpuid.c: Likewise.
 +      * commands/i386/pc/drivemap.c: Likewise.
 +      * commands/i386/pc/halt.c: Likewise.
 +      * commands/i386/pc/pxecmd.c: Likewise.
 +      * commands/i386/pc/vbeinfo.c: Likewise.
 +      * commands/i386/pc/vbetest.c: Likewise.
 +      * commands/ieee1275/suspend.c: Likewise.
 +      * commands/keystatus.c: Likewise.
 +      * commands/loadenv.c: Likewise.
 +      * commands/ls.c: Likewise.
 +      * commands/lsmmap.c: Likewise.
 +      * commands/lspci.c: Likewise.
 +      * commands/memrw.c: Likewise.
 +      * commands/minicmd.c: Likewise.
 +      * commands/parttool.c: Likewise.
 +      * commands/password.c: Likewise.
 +      * commands/probe.c: Likewise.
 +      * commands/read.c: Likewise.
 +      * commands/reboot.c: Likewise.
 +      * commands/search.c: Likewise.
 +      * commands/sleep.c: Likewise.
 +      * commands/test.c: Likewise.
 +      * commands/true.c: Likewise.
 +      * commands/usbtest.c: Likewise.
 +      * commands/videotest.c: Likewise.
 +      * commands/xnu_uuid.c: Likewise.
 +      * disk/loopback.c: Likewise.
 +      * hello/hello.c: Likewise.
 +      * loader/i386/bsd.c: Likewise.
 +      * term/i386/pc/serial.c: Likewise.
 +      * po/POTFILES: Add new files.
 +
 +2010-01-02  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * term/i386/pc/at_keyboard.c
 +      (keyboard_controller_wait_untill_ready): Rename to ...
 +      (keyboard_controller_wait_until_ready): ... this. Update all users.
 +
 +2010-01-01  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * commands/help.c: Include `grub/mm.h' and `grub/normal.h'.
 +      (grub_cmd_help): Print the cmd->name before the cmd->summary. Cut the
 +      string using string width.
 +      * normal/menu_text.c (grub_print_message_indented): Use
 +      grub_print_spaces and not print_spaces.
 +      (print_timeout): Likewise.
 +      (print_spaces): Move to...
 +      * include/grub/term.h: ... here. Change the name to grub_print_spaces.
 +
 +2010-01-01  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      Import from Gnulib.
 +
 +      * gnulib/getdelim.c: New file.
 +      * gnulib/getline.c: Likewise.
 +
 +2009-12-31 BVK Chaitanya  <bvk.groups@gmail.com>
 +
 +      * include/grub/list.h (grub_assert_fail): Removed.
 +      (grub_bad_type_cast_real): New function.
 +      (grub_bad_type_cast): New macro.
 +      (GRUB_AS_LIST): Use grub_bad_type_cast.
 +      (GRUB_AS_LIST_P): Likewise.
 +      (GRUB_AS_NAMED_LIST): Likewise.
 +      (GRUB_AS_NAMED_LIST_P): Likewise.
 +      (GRUB_AS_PRIO_LIST): Likewise.
 +      (GRUB_AS_PRIO_LIST_P): Likewise.
 +      * include/grub/handler.h (GRUB_AS_HANDLER): Likewise.
 +
 +2009-12-29 Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT (linux)):
 +      Fix syntax error.
 +
 +2009-12-29  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * configure.ac: Check for TARGET_CFLAGS initialization before we
 +      initialize it ourselves (sigh).
 +      Move a few modifications to TARGET_CFLAGS to be unconditional
 +      (extra warning flags, loop alignment, i386 CPU extensions, GCC 4.4
 +      eh_frame)
 +
 +      * gettext/gettext.c (grub_gettext_delete_list): Add `void' argument.
 +      * term/i386/pc/at_keyboard.c
 +      (keyboard_controller_wait_untill_ready): Likewise.
 +      (keyboard_controller_led): Rename `led_status' paramter to avoid
 +      name conflict.
 +
 +2009-12-28  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * normal/misc.c (grub_normal_print_device_info): Add spaces and double
 +      quotes.
 +
 +2009-12-27  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * kern/parser.c (grub_parser_split_cmdline): Don't dereference NULL.
 +
 +2009-12-27  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * normal/menu_text.c (grub_print_message_indented): Prevent
 +      past-the-end-of-array dereference.
 +
 +2009-12-27  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * video/readers/jpeg.c (GRUB_MOD_FINI (grub_cmd_jpegtest)): Rename to ..
 +      (GRUB_MOD_FINI (video_reader_jpeg)): ...this
 +
 +2009-12-27  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * normal/cmdline.c (grub_cmdline_get): Print a space after prompt.
 +      * normal/main.c (grub_normal_read_line): Remove a space from the
 +      default prompt.
 +
 +2009-12-27  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * loader/i386/efi/linux.c (GRUB_MOD_INIT): Improve command summary.
 +      * loader/i386/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/pc/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/powerpc/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/xnu.c (GRUB_MOD_INIT): Likewise.
 +
 +2009-12-26  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * video/readers/jpeg.c (cmd): Declare.
 +      (grub_cmd_jpegtest): Use `grub_command_t' type.
 +      (GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
 +      Assign to `cmd'.
 +      (GRUB_MOD_FINI): Use `cmd' to unregister.
 +      * video/readers/png.c (cmd): Declare.
 +      (grub_cmd_pngtest): Use `grub_command_t' type.
 +      (GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
 +      Assign to `cmd'.
 +      (GRUB_MOD_FINI): Use `cmd' to unregister.
 +      * video/readers/tga.c (cmd): Declare.
 +      (grub_cmd_tgatest): Use `grub_command_t' type.
 +      (GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
 +      Assign to `cmd'.
 +      (GRUB_MOD_FINI): Use `cmd' to unregister.
 +
 +2009-12-26  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * efiemu/main.c (GRUB_MOD_INIT): Fix capitalizations and/or full
 +      stops.
 +      * kern/corecmd.c (grub_register_core_commands): Likewise.
 +      * loader/efi/chainloader.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/bsd.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/efi/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/pc/chainloader.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/pc/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/multiboot_loader.c (GRUB_MOD_INIT): Likewise.
 +      * loader/powerpc/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
 +      * loader/xnu.c (GRUB_MOD_INIT): Likewise.
 +      * mmap/mmap.c (GRUB_MOD_INIT): Likewise.
 +      * normal/handler.c (insert_handler): Likewise.
 +      * normal/main.c (GRUB_MOD_INIT): Likewise.
 +      * term/gfxterm.c (GRUB_MOD_INIT): Likewise.
 +
 +2009-12-26  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * commands/help.c (grub_cmd_help): Print the command name before the
 +      summary.
 +      (GRUB_MOD_INIT): Remove command name from the summary.
 +      * kern/command.c (GRUB_MOD_INIT): If summary is null assign an empty
 +      string as summary.
 +      * lib/arg.c (find_long): Print the command name before the summary.
 +      * commands/acpi.c (GRUB_MOD_INIT): Remove command name from the
 +      summary.
 +      * commands/blocklist.c (GRUB_MOD_INIT): Likewise.
 +      * commands/cat.c (GRUB_MOD_INIT): Likewise.
 +      * commands/cmp.c (GRUB_MOD_INIT): Likewise.
 +      * commands/configfile.c (GRUB_MOD_INIT): Likewise.
 +      * commands/crc.c (GRUB_MOD_INIT): Likewise.
 +      * commands/date.c (GRUB_MOD_INIT): Likewise.
 +      * commands/echo.c (GRUB_MOD_INIT): Likewise.
 +      * commands/efi/loadbios.c (GRUB_MOD_INIT): Likewise.
 +      * commands/gptsync.c (GRUB_MOD_INIT): Likewise.
 +      * commands/handler.c (GRUB_MOD_INIT): Likewise.
 +      * commands/hdparm.c (GRUB_MOD_INIT): Likewise.
 +      * commands/hexdump.c (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/cpuid.c (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/pc/halt.c (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/pc/play.c (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/pc/pxecmd.c (GRUB_MOD_INIT): Likewise.
 +      * commands/keystatus.c (GRUB_MOD_INIT): Likewise.
 +      * commands/loadenv.c (GRUB_MOD_INIT): Likewise.
 +      * commands/ls.c (GRUB_MOD_INIT): Likewise.
 +      * commands/lspci.c (GRUB_MOD_INIT): Likewise.
 +      * commands/memrw.c (GRUB_MOD_INIT): Likewise.
 +      * commands/minicmd.c (GRUB_MOD_INIT): Likewise.
 +      * commands/parttool.c (GRUB_MOD_INIT): Likewise.
 +      * commands/password.c (GRUB_MOD_INIT): Likewise.
 +      * commands/probe.c (GRUB_MOD_INIT): Likewise.
 +      * commands/read.c (GRUB_MOD_INIT): Likewise.
 +      * commands/search.c (GRUB_MOD_INIT): Likewise.
 +      * commands/sleep.c (GRUB_MOD_INIT): Likewise.
 +      * commands/test.c (GRUB_MOD_INIT): Likewise.
 +      * commands/xnu_uuid.c (GRUB_MOD_INIT): Likewise.
 +      * efiemu/main.c (GRUB_MOD_INIT): Likewise.
 +      * font/font_cmd.c (GRUB_MOD_INIT): Likewise.
 +      * gettext/gettext.c (GRUB_MOD_INIT): Likewise.
 +      * kern/corecmd.c (GRUB_MOD_INIT): Likewise.
 +      * lib/arg.c (GRUB_MOD_INIT): Likewise.
 +      * loader/efi/appleloader.c (GRUB_MOD_INIT): Likewise.
 +      * loader/i386/bsd.c (GRUB_MOD_INIT): Likewise.
 +      * loader/xnu.c (GRUB_MOD_INIT): Likewise.
 +      * mmap/mmap.c (GRUB_MOD_INIT): Likewise.
 +      * term/terminfo.c (GRUB_MOD_INIT): Likewise.
 +      * video/readers/jpeg.c (GRUB_MOD_INIT): Likewise.
 +      * video/readers/png.c (GRUB_MOD_INIT): Likewise.
 +      * video/readers/tga.c (GRUB_MOD_INIT): Likewise.
 +
 +2009-12-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Use search command for preliminar UUID search.
 +
 +      * commands/search.c: Split into ...
 +      * commands/search_wrap.c: ...this
 +      * commands/search.c: ...and this.
 +      * commands/search_file.c: New file.
 +      * commands/search_label.c: New file.
 +      * commands/search_uuid.c: New file.
 +      * conf/any-emu.rmk (grub_emu_SOURCES): Remove commands/search.c.
 +      Add commands/search_wrap.c, commands/search_file.c,
 +      commands/search_label.c and commands/search_uuid.c.
 +      * conf/common.rmk (pkglib_MODULES): Remove fs_uuid.mod and fs_file.mod.
 +      (search_mod_SOURCES): Set to commands/search_wrap.c.
 +      (pkglib_MODULES): Add search_fs_file.mod, search_fs_uuid.mod and
 +      search_label.mod.
 +      (search_fs_file_mod_SOURCES): New variable.
 +      (search_fs_file_mod_CFLAGS): Likewise.
 +      (search_fs_file_mod_LDFLAGS): Likewise.
 +      (search_label_mod_SOURCES): Likewise.
 +      (search_label_mod_CFLAGS): Likewise.
 +      (search_label_mod_LDFLAGS): Likewise.
 +      (search_fs_uuid_mod_SOURCES): New variable.
 +      (search_fs_uuid_mod_CFLAGS): Likewise.
 +      (search_fs_uuid_mod_LDFLAGS): Likewise.
 +      (fs_file_mod_SOURCES): Removed.
 +      (fs_file_mod_CFLAGS): Likewise.
 +      (fs_file_mod_LDFLAGS): Likewise.
 +      (fs_uuid_mod_SOURCES): Removed.
 +      (fs_uuid_mod_CFLAGS): Likewise.
 +      (fs_uuid_mod_LDFLAGS): Likewise.
 +      * conf/sparc64-ieee1275.rmk (grub_install_SOURCES):
 +      Set to util/grub-install.in.
 +      * disk/fs_file.c: Removed.
 +      * disk/fs_uuid.c: Likewise.
 +      * include/grub/search.h: New file.
 +      * util/grub-install.in: Handle sparc64.
 +      Create and use load.cfg.
 +      * util/sparc64/ieee1275/grub-install.in: Removed.
 +
 +2009-12-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions):
 +      Ignore return status if CF is cleared.
 +      (grub_biosdisk_get_diskinfo_standard): Likewise.
 +
 +2009-12-25  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * term/i386/pc/at_keyboard.c
 +      (keyboard_controller_wait_untill_ready): New function.
 +      (grub_keyboard_controller_write, grub_keyboard_controller_read)
 +      (keyboard_controller_led): Use keyboard_controller_wait_untill_ready()
 +      for keyboard polling, rather than duplicate the same loop.  This
 +      saves a few bytes in code size.
 +
 +2009-12-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support for (pxe[:server[:gateway]]) syntax and
 +      use environment variable for PXE.
 +
 +      * commands/i386/pc/pxecmd.c (options): Removed.
 +      (print_ip): Removed.
 +      (grub_cmd_pxe): Removed
 +      (grub_cmd_pxe_unload): New function.
 +      * fs/i386/pc/pxe.c (grub_pxe_disk_data): New structure.
 +      (grub_pxe_your_ip): Made static.
 +      (grub_pxe_default_server_ip): Likewise.
 +      (grub_pxe_default_gateway_ip): Likewise.
 +      (grub_pxe_blksize): Likewise.
 +      (parse_ip): New function.
 +      (grub_pxe_open): Support server and gateway specification.
 +      (grub_pxe_close): Free disk->data.
 +      (grub_pxefs_open): Use disk->data.
 +      (grub_pxefs_read): Likewise.
 +      (grub_env_write_readonly): New function.
 +      (set_mac_env): Likewise.
 +      (set_env_limn_ro): Likewise.
 +      (parse_dhcp_vendor): Likewise.
 +      (grub_pxe_detect): Set the environment variables.
 +      (set_ip_env): New function.
 +      (write_ip_env): Likewise.
 +      (grub_env_write_pxe_default_server): Likewise.
 +      (grub_env_write_pxe_default_gateway): Likewise.
 +      (grub_env_write_pxe_blocksize): Likewise.
 +      (GRUB_MOD_INIT(pxe)): Set environment variables.
 +      * include/grub/i386/pc/pxe.h (grub_pxe_mac_addr): Rename to ...
 +      (grub_pxe_mac_addr_t): ... this. All users updated.
 +      (grub_pxe_your_ip): Removed.
 +      (grub_pxe_server_ip): Likewise.
 +      (grub_pxe_gateway_ip): Likewise.
 +      (grub_pxe_blksize): Likewise.
 +
 +2009-12-25  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * commands/help.c: Include `<grub/i18n.h>'.
 +      (grub_cmd_help): Gettextizze.
 +      (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/pc/play.c: Include `<grub/i18n.h>'.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * commands/search.c: Include `<grub/i18n.h>'.
 +      (options): Gettextizze.
 +      (GRUB_MOD_INIT): Gettextizze.
 +      * lib/arg.c: Include `<grub/i18n.h>'.
 +      (help_options): Gettextizze.
 +      (find_long): Likewise.
 +      (grub_arg_show_help): Likewise.
 +      * normal/dyncmd.c: Include `<grub/i18n.h>'.
 +      (read_command_list): Gettextizze.
 +      * po/POTFILES: Add `commands/i386/pc/play.c', `commands/search.c',
 +      `commands/help.c', `lib/arg.c' and `normal/dyncmd.c'.
 +
 +2009-12-25  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * include/grub/i386/at_keyboard.h (NUM_LOCK, SCROLL_LOCK): New macros.
 +      * term/i386/pc/at_keyboard.c (KEYBOARD_STATUS_NUM_LOCK)
 +      (KEYBOARD_LED_SCROLL, KEYBOARD_LED_NUM, KEYBOARD_LED_CAPS): New macros.
 +      (led_status): New variable.
 +      (keyboard_controller_led): New function.
 +      (grub_at_keyboard_getkey_noblock): Handle num lock and scroll lock,
 +      update led status for caps lock, num lock and scroll lock.
 +
 +2009-12-25  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * util/hostdisk.c (open_device): Fix a comment.
 +
 +2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/grub-install.in (host_os): New variable.
 +      * util/i386/efi/grub-install.in (host_os): Likewise.
 +
 +2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/mkisofs/write.c (padblock_write): Abort when given an
 +      excedingly large embed image, instead of silently truncating it.
 +
 +2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * include/multiboot.h: Indentation fixes.
 +
 +2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * include/multiboot.h (struct multiboot_aout_symbol_table)
 +      (struct multiboot_elf_section_header_table): New structure
 +      declarations (stolen from GRUB Legacy).
 +      (struct multiboot_info): Replace opaque `syms' with a.out and ELF
 +      table information.
 +
 +      (multiboot_aout_symbol_table_t, multiboot_elf_section_header_table_t)
 +      (multiboot_info_t, multiboot_memory_map_t, multiboot_module_t): New
 +      type aliases.
 +
 +2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * include/multiboot.h: Make comments src2texi-friendly.
 +
 +2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      For consistency with [multiboot]/docs/boot.S.
 +
 +      * include/multiboot.h (MULTIBOOT_MAGIC): Rename from this ...
 +      (MULTIBOOT_HEADER_MAGIC): ... to this.  Update all users.
 +      (MULTIBOOT_MAGIC2): Rename from this ...
 +      (MULTIBOOT_BOOTLOADER_MAGIC): ... to this.  Update all users.
 +
 +2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * include/multiboot.h: Remove `<grub/types.h>'.
 +      (multiboot_uint16_t, multiboot_uint32_t, multiboot_uint64_t): New
 +      types.  Update all users.
 +
 +2009-12-25  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * commands/efi/loadbios.c: Capitalize acronyms, replace `could not' by
 +      `couldn't' and `can not' by `cannot'.
 +      * commands/i386/pc/drivemap.c: Likewise.
 +      * disk/ata.c: Likewise.
 +      * disk/ieee1275/nand.c: Likewise.
 +      * fs/affs.c: Likewise.
 +      * fs/fat.c: Likewise.
 +      * fs/hfs.c: Likewise.
 +      * fs/hfsplus.c: Likewise.
 +      * fs/iso9660.c: Likewise.
 +      * fs/jfs.c: Likewise.
 +      * fs/minix.c: Likewise.
 +      * fs/reiserfs.c: Likewise.
 +      * fs/sfs.c: Likewise.
 +      * fs/udf.c: Likewise.
 +      * fs/ufs.c: Likewise.
 +      * fs/xfs.c: Likewise.
 +      * loader/powerpc/ieee1275/linux.c: Likewise.
 +      * loader/sparc64/ieee1275/linux.c: Likewise.
 +      * util/grub-probe.c: Likewise.
 +      * util/misc.c: Likewise.
 +
 +2009-12-24  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * bus/usb/usbhub.c: Fix capitalization, fullstop and newlines in
 +      grub_errno calls.
 +      * commands/acpi.c: Likewise.
 +      * commands/blocklist.c: Likewise.
 +      * commands/efi/loadbios.c: Likewise.
 +      * commands/i386/pc/drivemap.c: Likewise.
 +      * commands/loadenv.c: Likewise.
 +      * commands/memrw.c: Likewise.
 +      * commands/password.c: Likewise.
 +      * commands/videotest.c: Likewise.
 +      * disk/ata.c: Likewise.
 +      * disk/ata_pthru.c: Likewise.
 +      * disk/dmraid_nvidia.c: Likewise.
 +      * disk/ieee1275/nand.c: Likewise.
 +      * disk/ieee1275/ofdisk.c: Likewise.
 +      * disk/loopback.c: Likewise.
 +      * disk/lvm.c: Likewise.
 +      * disk/mdraid_linux.c: Likewise.
 +      * disk/raid.c: Likewise.
 +      * disk/raid6_recover.c: Likewise.
 +      * disk/scsi.c: Likewise.
 +      * efiemu/main.c: Likewise.
 +      * efiemu/mm.c: Likewise.
 +      * efiemu/pnvram.c: Likewise.
 +      * efiemu/symbols.c: Likewise.
 +      * font/font.c: Likewise.
 +      * fs/cpio.c: Likewise.
 +      * fs/hfsplus.c: Likewise.
 +      * fs/iso9660.c: Likewise.
 +      * fs/jfs.c: Likewise.
 +      * fs/minix.c: Likewise.
 +      * fs/ntfs.c: Likewise.
 +      * fs/ntfscomp.c: Likewise.
 +      * fs/reiserfs.c: Likewise.
 +      * fs/ufs.c: Likewise.
 +      * fs/xfs.c: Likewise.
 +      * gettext/gettext.c: Likewise.
 +      * include/grub/auth.h: Likewise.
 +      * kern/elf.c: Likewise.
 +      * kern/file.c: Likewise.
 +      * kern/ieee1275/init.c: Likewise.
 +      * kern/ieee1275/mmap.c: Likewise.
 +      * kern/ieee1275/openfw.c: Likewise.
 +      * kern/powerpc/dl.c: Likewise.
 +      * kern/sparc64/dl.c: Likewise.
 +      * lib/arg.c: Likewise.
 +      * loader/i386/bsd.c: Likewise.
 +      * loader/i386/bsdXX.c: Likewise.
 +      * loader/i386/efi/linux.c: Likewise.
 +      * loader/i386/efi/xnu.c: Likewise.
 +      * loader/i386/ieee1275/linux.c: Likewise.
 +      * loader/i386/linux.c: Likewise.
 +      * loader/i386/multiboot.c: Likewise.
 +      * loader/i386/pc/linux.c: Likewise.
 +      * loader/i386/pc/multiboot2.c: Likewise.
 +      * loader/i386/xnu.c: Likewise.
 +      * loader/ieee1275/multiboot2.c: Likewise.
 +      * loader/macho.c: Likewise.
 +      * loader/machoXX.c: Likewise.
 +      * loader/multiboot2.c: Likewise.
 +      * loader/multiboot_loader.c: Likewise.
 +      * loader/powerpc/ieee1275/linux.c: Likewise.
 +      * loader/sparc64/ieee1275/linux.c: Likewise.
 +      * loader/xnu.c: Likewise.
 +      * loader/xnu_resume.c: Likewise.
 +      * mmap/i386/pc/mmap.c: Likewise.
 +      * normal/menu_viewer.c: Likewise.
 +      * partmap/acorn.c: Likewise.
 +      * partmap/amiga.c: Likewise.
 +      * partmap/apple.c: Likewise.
 +      * script/lexer.c: Likewise.
 +      * term/gfxterm.c: Likewise.
 +      * term/i386/pc/serial.c: Likewise.
 +      * term/i386/pc/vga.c: Likewise.
 +      * term/ieee1275/ofconsole.c: Likewise.
 +      * term/terminfo.c: Likewise.
 +      * video/bitmap.c: Likewise.
 +      * video/efi_gop.c: Likewise.
 +      * video/efi_uga.c: Likewise.
 +      * video/fb/video_fb.c: Likewise.
 +      * video/i386/pc/vbe.c: Likewise.
 +      * video/readers/tga.c: Likewise.
 +      * video/video.c: Likewise.
 +
 +2009-12-23  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * commands/i386/pc/drivemap.c: Remove all trailing whitespace.
 +      * commands/lspci.c: Likewise.
 +      * commands/probe.c: Likewise.
 +      * commands/xnu_uuid.c: Likewise.
 +      * conf/i386-coreboot.rmk: Likewise.
 +      * conf/i386-efi.rmk: Likewise.
 +      * conf/i386-ieee1275.rmk: Likewise.
 +      * conf/i386-pc.rmk: Likewise.
 +      * conf/powerpc-ieee1275.rmk: Likewise.
 +      * conf/sparc64-ieee1275.rmk: Likewise.
 +      * conf/x86_64-efi.rmk: Likewise.
 +      * fs/i386/pc/pxe.c: Likewise.
 +      * gettext/gettext.c: Likewise.
 +      * include/grub/efi/graphics_output.h: Likewise.
 +      * include/grub/i386/pc/memory.h: Likewise.
 +      * kern/env.c: Likewise.
 +      * kern/i386/qemu/startup.S: Likewise.
 +      * lib/i386/pc/biosnum.c: Likewise.
 +      * lib/i386/relocator.c: Likewise.
 +      * lib/i386/relocator_asm.S: Likewise.
 +      * lib/relocator.c: Likewise.
 +      * loader/i386/bsd.c: Likewise.
 +      * loader/i386/multiboot.c: Likewise.
 +      * loader/i386/pc/chainloader.c: Likewise.
 +      * loader/i386/xnu.c: Likewise.
 +      * loader/xnu.c: Likewise.
 +      * normal/main.c: Likewise.
 +      * normal/menu_text.c: Likewise.
 +      * util/getroot.c: Likewise.
 +      * util/grub-mkconfig_lib.in: Likewise.
 +      * util/grub.d/00_header.in: Likewise.
 +      * util/i386/pc/grub-mkimage.c: Likewise.
 +      * util/mkisofs/eltorito.c: Likewise.
 +      * util/mkisofs/exclude.h: Likewise.
 +      * util/mkisofs/hash.c: Likewise.
 +      * util/mkisofs/iso9660.h: Likewise.
 +      * util/mkisofs/joliet.c: Likewise.
 +      * util/mkisofs/mkisofs.c: Likewise.
 +      * util/mkisofs/mkisofs.h: Likewise.
 +      * util/mkisofs/multi.c: Likewise.
 +      * util/mkisofs/name.c: Likewise.
 +      * util/mkisofs/rock.c: Likewise.
 +      * util/mkisofs/tree.c: Likewise.
 +      * util/mkisofs/write.c: Likewise.
 +      * video/efi_gop.c: Likewise.
 +
 +2009-12-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * video/efi_gop.c (grub_video_gop_get_bitmask): Fix off-by-one in mask
 +      size counting.
 +
 +2009-12-22  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * util/grub-mkrescue.in (pkglib_DATA): Set to @pkglib_DATA@.
 +      * genmk.rb (class SCRIPT): Modify the target file instead of source.
 +
 +2009-12-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * commands/memrw.c (grub_cmd_write): Support for mask parameter.
 +      (GRUB_MOD_INIT(memrw)): Update help line.
 +
 +2009-12-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * commands/memrw.c (cmd_read_byte, cmd_read_word, cmd_read_dword):
 +      Use grub_extcmd_t. All users updated.
 +      (options): New variable.
 +      (grub_cmd_read): Restructure for readability. Support "-v" option.
 +      (grub_cmd_write): Restructure for readability.
 +
 +2009-12-22  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * genmk.rb (class SCRIPT): Prepend #{src} path with $(srcdir).
 +
 +2009-12-22  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * genmk.rb (class SCRIPT): Use sed to substitute @pkglib_DATA@
 +      with the actual contents of the correspondending make variable.
 +      * util/grub-mkrescue.in (pkglib_DATA): New variable.
 +      (process_input_dir): Copy all $pkglib_DATA files instead of explicitly
 +      specifying `*.lst' and `efiemu??.o'
 +
 +2009-12-22  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * util/grub.d/30_os-prober.in (osx_entry): Add round brackets
 +      after function name.
 +      Noticed by Rene Engelhard <rene@debian.org>.
 +
 +2009-12-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * commands/lspci.c (grub_pci_classes): Add "USB Controller".
 +      (options): New variable.
 +      (iospace): Likewise.
 +      (grub_lspci_iter): List IO spaces if "-i" was given.
 +      (grub_cmd_lspci): Parse options.
 +      (GRUB_MOD_INIT(lspci)): Use extcmd.
 +      (GRUB_MOD_FINI(lspci)): Likewise.
 +
 +2009-12-22  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * util/grub.d/30_os-prober.in (osx_entry): Remove non POSIX compliant
 +      `function' keyword.
 +      Patch by Tony Mancill <tmancill@debian.org>.
 +
 +2009-12-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * bus/usb/uhci.c (grub_uhci_transfer): Set a limit transaction time.
 +      (grub_uhci_portstatus): Likewise.
 +      (grub_uhci_portstatus): Add necessary delay.
 +      * bus/usb/usbhub.c (grub_usb_hub_add_dev): Fix loop-break condition.
 +
 +2009-12-21  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * commands/acpi.c (options): Fix capitalizations and/or full stops.
 +      (GRUB_MOD_INIT): Likewise.
 +      * commands/boot.c (GRUB_MOD_INIT): Likewise.
 +      * commands/cmp.c (grub_cmd_cmp): Improve the help message.
 +      * commands/echo.c (options): Fix capitalizations and/or full stops.
 +      * commands/efi/loadbios.c (enable_rom_area): Likewise.
 +      (enable_rom_area): Likewise.
 +      (GRUB_MOD_INIT): Likewise.
 +      * commands/gptsync.c (GRUB_MOD_INIT): Likewise.
 +      * commands/halt.c (GRUB_MOD_INIT): Improve the help message.
 +      * commands/handler.c (GRUB_MOD_INIT): Likewise.
 +      * commands/hdparm.c (options): Fix capitalizations and/or full stops.
 +      * commands/hexdump.c (options): Likewise.
 +      * commands/i386/cpuid.c (options): Likewise.
 +      (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/pc/drivemap.c (options): Likewise.
 +      (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/pc/halt (options): Likewise.
 +      (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/pc/play.c (GRUB_MOD_INIT): Likewise.
 +      * commands/i386/pc/pxecmd.c (options): Likewise.
 +      * commands/i386/pc/vbetest.c (GRUB_MOD_INIT): Likewise.
 +      * commands/ieee1275/suspend.c (GRUB_MOD_INIT): Likewise.
 +      * commands/keystatus.c (options): Likewise.
 +      (GRUB_MOD_INIT): Likewise.
 +      * commands/loadenv.c (options): Likewise.
 +      * commands/ls.c (options): Likewise.
 +      * commands/lspci.c (GRUB_MOD_INIT): Likewise.
 +      * commands/memrw.c (GRUB_MOD_INIT): Likewise.
 +      * commands/minicmd.c (GRUB_MOD_INIT): Likewise.
 +      * commands/parttool.c (helpmsg): Likewise.
 +      * commands/probe.c (options): Likewise.
 +      * commands/read.c (GRUB_MOD_INIT): Likewise.
 +      * commands/reboot.c (GRUB_MOD_INIT): Likewise.
 +      * commands/search.c (options): Likewise.
 +      * commands/sleep.c (options): Likewise.
 +      * commands/test.c (GRUB_MOD_INIT): Likewise.
 +      * commands/true.c (GRUB_MOD_INIT): Likewise.
 +      * commands/usbtest.c (GRUB_MOD_INIT): Likewise.
 +      * commands/videotest.c (GRUB_MOD_INIT): Likewise.
 +      * lib/arg.c (help_options): Likewise.
 +      * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass -ctranslate to
 +      `$(XGETTEXT)'.
 +      * po/POTFILES: Add `commands/loadenv.c'.
 +
 +2009-12-21  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * util/grub-mkrescue.in (process_input_dir): Copy `*.lst' files
 +      instead of specifying them explicit.
 +
 +2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * NEWS: Add grub-probe support for GNU/Hurd.
 +
 +2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * NEWS: gettext was added after 1.97.
 +
 +2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/mkisofs/msdos_partition.h: New file (based on
 +      include/grub/msdos_partition.h).
 +      * util/mkisofs/mkisofs.c (use_protective_msdos_label): New variable.
 +      (OPTION_PROTECTIVE_MSDOS_LABEL): New macro.
 +      (ld_options, main): Recognize --protective-msdos-label.
 +      * util/mkisofs/mkisofs.h (use_protective_msdos_label): New declaration.
 +      * util/mkisofs/write.c: Include `"msdos_partition.h"'.
 +      (padblock_write): If `use_protective_msdos_label' is set, patch a
 +      protective DOS-style label in the output image.
 +
 +      * util/grub-mkrescue.in: Use --protective-msdos-label.
 +
 +2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/grub-mkrescue.in: Do not zero-pad image for BIOS-based disk
 +      boot.
 +
 +2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/mkisofs/mkisofs.c (use_embedded_boot, boot_image_embed): New
 +      variables.
 +      (ld_options, main): Recognize `--embedded-boot'.
 +      * util/mkisofs/mkisofs.h (use_embedded_boot, boot_image_embed): New
 +      declarations.
 +      * util/mkisofs/write.c (PADBLOCK_SIZE): New variable.
 +      (padblock_size): Use `PADBLOCK_SIZE' instead of hardcoding 16.
 +      (padblock_write): Likewise.  Rewrite to support embedded boot image.
 +
 +      * util/grub-mkrescue.in: When building i386-pc images, embed core.img
 +      for BIOS-based disk boot instead of only ElTorito.
 +
 +2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/grub-mkrescue.in: Remove `configfile' and `sh' from i386-pc
 +      build (not needed for bootstrap).
 +
 +2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * util/grub-mkrescue.in: Remove `memdisk', `tar' and `search' modules
 +      from i386-pc build (not needed for bootstrap).
 +      Rewrite a pair of strings.
 +
 +2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
 +
 +      * normal/main.c (grub_normal_reader_init): Set left margin back to 3.
 +
 +2009-12-21  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * video/i386/pc/vbe.c (grub_video_vbe_fini): Set 'last_set_mode'.
 +
 +2009-12-21 Andreas Born  <futur.andy@googlemail.com>
 +
 +      * kern/env.c (grub_env_context_open): Mark exported variable for
 +      reexport.
 +
 +2009-12-21 Andreas Born  <futur.andy@googlemail.com>
 +
 +      * kern/env.c (grub_env_export): Create nonexistent variables before
 +      exporting.
 +
 +2009-12-20 Carles Pina i Estany  <carles@pina.cat>
 +
 +      * include/grub/auth.h: Include `<grub/i18n.h>'.
 +      (GRUB_GET_PASSWORD): Gettextizze string.
 +      * include/grub/normal.h (STANDARD_MARGIN): New macro, moved from
 +      menu_text.c.
 +      (grub_utf8_to_ucs4_alloc): Fix indentation.
 +      (grub_print_ucs4): Likewise.
 +      (grub_getstringwidth): Likewise.
 +      (print_message_indented): New declaration.
 +      * normal/auth.c: Include `<grub/i18n.h>'.
 +      (grub_auth_check_authentication): Gettexttize string.
 +      * normal/cmdline.c: Include `<grub/i18n.h>'.
 +      (grub_cmdline_get): Gettextizze.
 +      * normal/color.c: Include `<grub/i18n.h>'.
 +      (grub_parse_color_name_pair): Gettexttize strings.
 +      * normal/main.c (grub_normal_reader_init): Cleanup gettexttized
 +      string (use `print_message_indented').
 +      * normal/menu_text.c (STANDARD_MARGIN): Moved from here to
 +      `include/grub/normal.h'.
 +      (print_message_indented): Renamed to ...
 +      (grub_print_message_indented): ... this. Remove `static' qualifer (now
 +      used in normal/main.c).
 +      (print_message): Use `grub_print_message_indented' instead of
 +      `print_message_indented'.
 +      (print_timeout): Likewise.
 +      * normal/misc.c: Include `<grub/term.h>' and `<grub/i18n.h>'.
 +      (grub_normal_print_device_info): Gettexttize strings.
 +      * po/POTFILES: Add `auth.c', `color.c' and `misc.c'.
 +
 +2009-12-20  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * kern/parser.c (grub_parser_split_cmdline): Fix incorrect counting
 +      of arguments. Return number of tokens and not arguments. All users
 +      updated.
 +
 +2009-12-20  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/i386/pc/grub-setup.c (setup): Don't install on non-GPT,
 +      non-MSDOS paritions.
 +
 +2009-12-19  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/types.h (UNUSED): Removed since it conflicts with
 +      NetBSD headers. All users changed to direct __attribute__ ((unused)).
 +      Reported by GrĂ©goire Sutre.
 +
 +2009-12-19  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * include/grub/normal.h (grub_utf8_to_ucs4): New declaration.
 +      (grub_print_ucs4_alloc): Likewise.
 +      (grub_getstringwidth): Likewise.
 +      * normal/main.c (grub_normal_init_page): Gettextize version string.
 +      * normal/menu_text.c (grub_utf8_to_ucs4_alloc): New definition.
 +      (getstringwidth): Renamed to ...
 +      (grub_getstringwidth): ... this. Remove `static' qualifier (now used
 +      in normal/main.c).  Use `grub_utf8_to_ucs4_alloc'.
 +      (grub_print_ucs4): Remove `static' qualifer (now used in
 +      normal/main.c).
 +      * po/POTFILES: Add normal/main.c.
 +
 +2009-12-19  Carles Pina i Estany  <carles@pina.cat>
 +
 +      * normal/menu_text.c (STANDARD_MARGIN): New macro.
 +      (print_message_indented): Add `margin_left' and `margin_right'
 +      parameters.
 +      (print_message): Update `print_message_indented' calls. Adds '\n' to the
 +      strings.
 +      (print_timeout): Use `print_message_indented' to print the message.
 +      Deletes `second_stage' parameter.
 +      (run_menu): Update `print_timeout' calls.
 +
 +2009-12-18  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix console palette on OpenFirmware.
 +
 +      * term/ieee1275/ofconsole.c (MAX): Removed.
 +      (colors): Redone based on VGA palette.
 +      (grub_ofconsole_setcolor): Discard brightness bit since only 8
 +      colors are supported.
 +      (grub_ofconsole_init_output): Use ARRAY_SIZE instead of hardcoded size.
 +
 +2009-12-18  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix potential EfiEmu double prepare.
 +
 +      * efiemu/main.c (prepared): New variable
 +      (grub_efiemu_unload): Set prepare to '0'.
 +      (grub_efiemu_prepare): Return if already prepared. Set prepared.
 +
 +      set_virtual_address_map support.
 +
 +      * include/grub/efi/efi.h (grub_efi_set_virtual_address_map): New
 +      prototype.
 +      * include/grub/efiemu/efiemu.h (grub_efiemu_write_sym_markers): New
 +      prototype.
 +      (grub_efiemu_crc32): Likewise.
 +      (grub_efiemu_crc64): Likewise.
 +      (grub_efiemu_set_virtual_address_map): Likewise.
 +      * include/grub/autoefi.h (grub_autoefi_exit_boot_services):
 +      New definition.
 +      (grub_autoefi_set_virtual_address_map): Likewise.
 +      * kern/efi/efi.c (grub_efi_set_virtual_address_map): New function.
 +      * loader/i386/xnu.c (grub_xnu_boot): Call set_virtual_address_map.
 +      Restructure flow to accomodate it.
 +      * efiemu/prepare.c (grub_efiemu_prepare): Support set_virtual_address_map.
 +      (grub_efiemu_crc): Recompute CRC32.
 +      * efiemu/runtime/efiemu.c (ptv_relocated): Renamed to ...
 +      (efiemu_ptv_relocated): ... this. Made global. All users updated.
 +      * efiemu/symbols.c (relocated_handle): New variable.
 +      (grub_efiemu_free_syms): Free relocated_handle.
 +      (grub_efiemu_alloc_syms): Allocate relocated_handle.
 +      (grub_efiemu_write_sym_markers): New function.
 +      (grub_efiemu_set_virtual_address_map): Likewise.
 +
 +      Newer XNU parameters.
 +
 +      * include/grub/i386/xnu.h (GRUB_XNU_BOOTARGS_VERMINOR): Change to 5.
 +      * include/grub/xnu.h (grub_xnu_extheader): Add nameaddr and namesize.
 +      (grub_xnu_fill_devicetree): New prototype.
 +      (grub_xnu_heap_real_start): New variable.
 +      * loader/xnu.c (get_name_ptr): New function.
 +      (grub_xnu_load_driver): Fill namelen and name.
 +
 +      64-bit xnu support.
 +
 +      * conf/i386-efi.rmk (xnu_mod_SOURCES): Add 'loader/macho32.c'
 +      and 'loader/macho64.c'.
 +      * conf/i386-pc.rmk: Likewise.
 +      * conf/x86_64-efi.rmk: Likewise.
 +      * include/grub/i386/macho.h (grub_macho_thread64): New structure.
 +      * include/grub/xnu.h (grub_xnu_is_64bit): New variable.
 +      * include/grub/macho.h (grub_macho_segment64): New structure.
 +      * include/grub/machoload.h (grub_macho32_size): Renamed from ...
 +      (grub_macho_size32): ... to this.
 +      (grub_macho32_get_entry_point): Renamed from ...
 +      (grub_macho_get_entry_point32): ... to this.
 +      (grub_macho_contains_macho64): New prototype.
 +      (grub_macho_size64): Likewise.
 +      (grub_macho_get_entry_point64): Likewise.
 +      (grub_macho32_load): Renamed from ...
 +      (grub_macho_load32): ... to this.
 +      (grub_macho32_filesize): Renamed from ...
 +      (grub_macho_filesize32): ... to this.
 +      (grub_macho32_readfile): Renamed from ...
 +      (grub_macho_readfile32): ... to this.
 +      (grub_macho_filesize64): New prototype.
 +      (grub_macho_readfile64): Likewise.
 +      (grub_macho_parse32): Likewise.
 +      (grub_macho_parse64): Likewise.
 +      * loader/macho.c: Split into ...
 +      * loader/machoXX.c: ... and this. Replace 32 with XX.
 +      * loader/macho32.c: New file.
 +      * loader/macho64.c: Likewise.
 +      * loader/xnu.c (grub_xnu_is_64bit): New variable.
 +      (grub_cmd_xnu_kernel): Make 32-bit only.
 +      (grub_cmd_xnu_kernel64): New function.
 +      (grub_xnu_load_driver): Support Mach-O 64.
 +      (grub_cmd_xnu_mkext): Likewise.
 +      * util/grub.d/30_os-prober.in (osx_entry): New function.
 +      Generate entries for 64-bit boot too.
 +
 +      Eliminate ad-hoc tree format in XNU and EfiEmu.
 +
 +      * efiemu/main.c (grub_efiemu_prepare): Update comment.
 +      * efiemu/pnvram.c: Rewritten to use environment variables.
 +      All users updated.
 +
 +      Inline utf16_to_utf8.
 +
 +      * kern/misc.c (grub_utf16_to_utf8): Move from here ...
 +      * include/grub/charset.h (grub_utf16_to_utf8): ... to here. Inlined.
 +      All users updated.
 +      * include/grub/misc.h (grub_utf16_to_utf8): Removed.
 +
 +      * bus/usb/usb.c (grub_usb_get_string): Move from here ...
 +      * commands/usbtest.c (grub_usb_get_string): ... move here.
 +      (usb_print_str): Fix error handling.
 +      * include/grub/usb.h (grub_usb_get_string): Remove.
 +
 +      UTF-8 to UTF-16 transformation.
 +
 +      * conf/common.rmk (pkglib_MODULES): Add charset.mod
 +      (charset_mod_SOURCES): New variable.
 +      (charset_mod_CFLAGS): Likewise.
 +      (charset_mod_LDFLAGS): Likewise.
 +      * include/grub/utf.h: New file.
 +      * lib/utf.c: New file. (Based on grub_utf8_to_ucs4 from kern/misc.c)
 +
 +      Support for device properties.
 +
 +      * include/grub/i386/xnu.h (grub_xnu_devprop_header): New structure.
 +      (grub_xnu_devprop_device_header): Likewise.
 +      (grub_xnu_devprop_device_descriptor): Likewise.
 +      (grub_xnu_devprop_add_device): New prototype.
 +      (grub_xnu_devprop_remove_device): Likewise.
 +      (grub_xnu_devprop_remove_property): Likewise.
 +      (grub_xnu_devprop_add_property_utf8): Likewise.
 +      (grub_xnu_devprop_add_property_utf16): Likewise.
 +      (grub_cpu_xnu_init): Likewise.
 +      (grub_cpu_xnu_fini): Likewise.
 +      (grub_cpu_xnu_unload): Likewise.
 +      * loader/i386/xnu.c (grub_xnu_devprop_device_descriptor): New structure.
 +      (property_descriptor): Likewise.
 +      (devices): New variable.
 +      (grub_xnu_devprop_remove_property): New function.
 +      (grub_xnu_devprop_add_device): Likewise.
 +      (grub_xnu_devprop_remove_device): Likewise.
 +      (grub_xnu_devprop_add_property): Likewise.
 +      (grub_xnu_devprop_add_property_utf8): Likewise.
 +      (grub_xnu_devprop_add_property_utf16): Likewise.
 +      (hextoval): Likewise.
 +      (grub_cpu_xnu_fill_devprop): Likewise.
 +      (grub_cmd_devprop_load): Likewise.
 +      (grub_xnu_boot): Call grub_cpu_xnu_fill_devprop,
 +      grub_xnu_fill_devicetree, grub_xnu_fill_devicetree
 +      (cmd_devprop_load): New variable.
 +      (grub_cpu_xnu_init): New function.
 +      (grub_cpu_xnu_fini): Likewise.
 +      * loader/i386/xnu.c (grub_xnu_unload): Call grub_cpu_xnu_unload.
 +      * loader/xnu.c (grub_xnu_parse_devtree): Remove.
 +      (grub_cmd_xnu_devtree): Likewise.
 +      (hextoval): New function.
 +      (unescape): Likewise.
 +      (grub_xnu_fill_devicetree): Likewise.
 +
 +      * util/grub.d/30_os-prober.in: Load devprop.bin. Don't load devtree.txt.
 +      * util/i386/efi/grub-dumpdevtree: Generate devprop.bin.
 +
 +2009-12-18  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Workaround for broken ATI VBE.
 +
 +      * video/i386/pc/vbe.c (last_set_mode): New variable.
 +      (grub_vbe_set_video_mode): Set 'last_set_mode'.
 +      (grub_vbe_get_video_mode): Use 'last_set_mode' if get_mode fails.
 +      (grub_video_vbe_setup): Don't check for reserved flag.
 +
 +2009-12-17  Felix Zielcke <fzielcke@z-51.de>
 +
 +      * gendistlist.sh: Use POSIX compliant `!' instead of `-not' in
 +      the `find' command.
 +
  2009-12-16  Vladimir Serbinenko  <phcoder@gmail.com>
  
        UUID support for HFS.
Simple merge
index 437c98eb9bfde36eafde0d6c227583c950197948,53fe67c4e42393402345e7763e3efa9fee874289..fb0151878574b2f253594f20859404ee7807481b
@@@ -316,10 -307,14 +316,17 @@@ grub_err_t grub_video_set_active_render
  grub_err_t grub_video_get_active_render_target (struct grub_video_render_target **target);
  
  grub_err_t grub_video_set_mode (const char *modestring,
-                               int NESTED_FUNC_ATTR (*hook) (grub_video_adapter_t p,
-                                                             struct grub_video_mode_info *mode_info));
+                               unsigned int modemask,
+                               unsigned int modevalue);
+ static inline int
+ grub_video_check_mode_flag (unsigned int flags, unsigned int mask,
+                           unsigned int flag, int def)
+ {
+   return (flag & mask) ? !! (flags & flag) : def;
+ }
  
 +grub_video_driver_id_t
 +grub_video_get_driver_id (void);
 +
  #endif /* ! GRUB_VIDEO_HEADER */
index 49be758c64e4812c2fbfbd82391f95dfca3f93b1,6f2202a671ab5fc5dc21be84945df78a12b10393..c5d213a0638194b0b917b5b8834ae783d52c4015
@@@ -509,8 -508,6 +509,8 @@@ grub_freebsd_boot (void
  
    bi.bi_kernend = kern_end;
  
-   grub_video_set_mode ("text", NULL);
++  grub_video_set_mode ("text", 0, 0);
 +
    if (is_64bit)
      {
        grub_uint32_t *gdt;
@@@ -619,8 -616,6 +619,8 @@@ grub_openbsd_boot (void
    pa->ba_type = OPENBSD_BOOTARG_END;
    pa++;
  
-   grub_video_set_mode ("text", NULL);
++  grub_video_set_mode ("text", 0, 0);
 +
    grub_unix_real_boot (entry, bootflags, openbsd_root, OPENBSD_BOOTARG_APIVER,
                       0, (grub_uint32_t) (grub_mmap_get_upper () >> 10),
                       (grub_uint32_t) (grub_mmap_get_lower () >> 10),
@@@ -717,8 -712,6 +717,8 @@@ grub_netbsd_boot (void
        bootinfo->bi_data[0] = mmap;
      }
  
-   grub_video_set_mode ("text", NULL);
++  grub_video_set_mode ("text", 0, 0);
 +
    grub_unix_real_boot (entry, bootflags, 0, bootinfo,
                       0, (grub_uint32_t) (grub_mmap_get_upper () >> 10),
                       (grub_uint32_t) (grub_mmap_get_lower () >> 10));
Simple merge
index 5f33a7314d66e6feb3fbc3d14230a3aeb8355f75,0000000000000000000000000000000000000000..58bb68323a554db3fd5c685171db2c992028d8d4
mode 100644,000000..100644
--- /dev/null
@@@ -1,463 -1,0 +1,463 @@@
-       err = grub_video_set_mode (DEFAULT_VIDEO_MODE, 0);
 +/*
 + *  GRUB  --  GRand Unified Bootloader
 + *  Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2009  Free Software Foundation, Inc.
 + *
 + *  GRUB is free software: you can redistribute it and/or modify
 + *  it under the terms of the GNU General Public License as published by
 + *  the Free Software Foundation, either version 3 of the License, or
 + *  (at your option) any later version.
 + *
 + *  GRUB is distributed in the hope that it will be useful,
 + *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + *  GNU General Public License for more details.
 + *
 + *  You should have received a copy of the GNU General Public License
 + *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
 + */
 +
 +#include <grub/machine/memory.h>
 +#include <grub/memory.h>
 +#ifdef GRUB_MACHINE_PCBIOS
 +#include <grub/machine/biosnum.h>
 +#endif
 +#include <grub/multiboot.h>
 +#include <grub/cpu/multiboot.h>
 +#include <grub/disk.h>
 +#include <grub/device.h>
 +#include <grub/partition.h>
 +#include <grub/mm.h>
 +#include <grub/misc.h>
 +#include <grub/env.h>
 +#include <grub/video.h>
 +
 +#if defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_QEMU)
 +#include <grub/i386/pc/vbe.h>
 +#define DEFAULT_VIDEO_MODE "text"
 +#define HAS_VGA_TEXT 1
 +#else
 +#define DEFAULT_VIDEO_MODE "auto"
 +#define HAS_VGA_TEXT 0
 +#endif
 +
 +struct module
 +{
 +  struct module *next;
 +  grub_addr_t start;
 +  grub_size_t size;
 +  char *cmdline;
 +  int cmdline_size;
 +};
 +
 +struct module *modules, *modules_last;
 +static grub_size_t cmdline_size;
 +static grub_size_t total_modcmd;
 +static unsigned modcnt;
 +static char *cmdline = NULL;
 +static grub_uint32_t bootdev;
 +static int bootdev_set;
 +static int accepts_video;
 +
 +void
 +grub_multiboot_set_accepts_video (int val)
 +{
 +  accepts_video = val;
 +}
 +
 +/* Return the length of the Multiboot mmap that will be needed to allocate
 +   our platform's map.  */
 +static grub_uint32_t
 +grub_get_multiboot_mmap_len (void)
 +{
 +  grub_size_t count = 0;
 +
 +  auto int NESTED_FUNC_ATTR hook (grub_uint64_t, grub_uint64_t, grub_uint32_t);
 +  int NESTED_FUNC_ATTR hook (grub_uint64_t addr __attribute__ ((unused)),
 +                           grub_uint64_t size __attribute__ ((unused)),
 +                           grub_uint32_t type __attribute__ ((unused)))
 +    {
 +      count++;
 +      return 0;
 +    }
 +
 +  grub_mmap_iterate (hook);
 +
 +  return count * sizeof (struct multiboot_mmap_entry);
 +}
 +
 +grub_size_t
 +grub_multiboot_get_mbi_size (void)
 +{
 +  return sizeof (struct multiboot_info) + ALIGN_UP (cmdline_size, 4)
 +    + modcnt * sizeof (struct multiboot_mod_list) + total_modcmd
 +    + ALIGN_UP (sizeof(PACKAGE_STRING), 4) + grub_get_multiboot_mmap_len ()
 +    + 256 * sizeof (struct multiboot_color);
 +}
 +
 +/* Fill previously allocated Multiboot mmap.  */
 +static void
 +grub_fill_multiboot_mmap (struct multiboot_mmap_entry *first_entry)
 +{
 +  struct multiboot_mmap_entry *mmap_entry = (struct multiboot_mmap_entry *) first_entry;
 +
 +  auto int NESTED_FUNC_ATTR hook (grub_uint64_t, grub_uint64_t, grub_uint32_t);
 +  int NESTED_FUNC_ATTR hook (grub_uint64_t addr, grub_uint64_t size, grub_uint32_t type)
 +    {
 +      mmap_entry->addr = addr;
 +      mmap_entry->len = size;
 +      switch (type)
 +      {
 +      case GRUB_MACHINE_MEMORY_AVAILABLE:
 +        mmap_entry->type = MULTIBOOT_MEMORY_AVAILABLE;
 +        break;
 +        
 +      default:
 +        mmap_entry->type = MULTIBOOT_MEMORY_RESERVED;
 +        break;
 +      }
 +      mmap_entry->size = sizeof (struct multiboot_mmap_entry) - sizeof (mmap_entry->size);
 +      mmap_entry++;
 +
 +      return 0;
 +    }
 +
 +  grub_mmap_iterate (hook);
 +}
 +
 +static grub_err_t
 +set_video_mode (void)
 +{
 +  grub_err_t err;
 +  const char *modevar;
 +
 +  if (accepts_video || !HAS_VGA_TEXT)
 +    {
 +      modevar = grub_env_get ("gfxpayload");
 +      if (! modevar || *modevar == 0)
-         err = grub_video_set_mode (tmp, 0);
++      err = grub_video_set_mode (DEFAULT_VIDEO_MODE, 0, 0);
 +      else
 +      {
 +        char *tmp;
 +        tmp = grub_malloc (grub_strlen (modevar)
 +                           + sizeof (DEFAULT_VIDEO_MODE) + 1);
 +        if (! tmp)
 +          return grub_errno;
 +        grub_sprintf (tmp, "%s;" DEFAULT_VIDEO_MODE, modevar);
-     err = grub_video_set_mode ("text", 0);
++        err = grub_video_set_mode (tmp, 0, 0);
 +        grub_free (tmp);
 +      }
 +    }
 +  else
++    err = grub_video_set_mode ("text", 0, 0);
 +
 +  return err;
 +}
 +
 +static grub_err_t
 +retrieve_video_parameters (struct multiboot_info *mbi,
 +                         grub_uint8_t *ptrorig, grub_uint32_t ptrdest)
 +{
 +  grub_err_t err;
 +  struct grub_video_mode_info mode_info;
 +  void *framebuffer;
 +  grub_video_driver_id_t driv_id;
 +  struct grub_video_palette_data palette[256];
 +
 +  err = set_video_mode ();
 +  if (err)
 +    {
 +      grub_print_error ();
 +      grub_errno = GRUB_ERR_NONE;
 +    }
 +
 +  grub_video_get_palette (0, ARRAY_SIZE (palette), palette);
 +
 +  driv_id = grub_video_get_driver_id ();
 +  if (driv_id == GRUB_VIDEO_DRIVER_NONE)
 +    return GRUB_ERR_NONE;
 +
 +  err = grub_video_get_info_and_fini (&mode_info, &framebuffer);
 +  if (err)
 +    return err;
 +
 +  mbi->framebuffer_addr = (grub_addr_t) framebuffer;
 +  mbi->framebuffer_pitch = mode_info.pitch;
 +
 +  mbi->framebuffer_width = mode_info.width;
 +  mbi->framebuffer_height = mode_info.height;
 +
 +  mbi->framebuffer_bpp = mode_info.bpp;
 +      
 +  if (mode_info.mode_type & GRUB_VIDEO_MODE_TYPE_INDEX_COLOR)
 +    {
 +      struct multiboot_color *mb_palette;
 +      unsigned i;
 +      mbi->framebuffer_type = MULTIBOOT_FRAMEBUFFER_TYPE_INDEXED;
 +      mbi->framebuffer_palette_addr = ptrdest;
 +      mbi->framebuffer_palette_num_colors = mode_info.number_of_colors;
 +      if (mbi->framebuffer_palette_num_colors > ARRAY_SIZE (palette))
 +      mbi->framebuffer_palette_num_colors = ARRAY_SIZE (palette);
 +      mb_palette = (struct multiboot_color *) ptrorig;
 +      for (i = 0; i < mbi->framebuffer_palette_num_colors; i++)
 +      {
 +        mb_palette[i].red = palette[i].r;
 +        mb_palette[i].green = palette[i].g;
 +        mb_palette[i].blue = palette[i].b;
 +      }
 +      ptrorig += mbi->framebuffer_palette_num_colors
 +      * sizeof (struct multiboot_color);
 +      ptrdest += mbi->framebuffer_palette_num_colors
 +      * sizeof (struct multiboot_color);
 +    }
 +  else
 +    {
 +      mbi->framebuffer_type = MULTIBOOT_FRAMEBUFFER_TYPE_RGB;
 +      mbi->framebuffer_red_field_position = mode_info.green_field_pos;
 +      mbi->framebuffer_red_mask_size = mode_info.green_mask_size;
 +      mbi->framebuffer_green_field_position = mode_info.green_field_pos;
 +      mbi->framebuffer_green_mask_size = mode_info.green_mask_size;
 +      mbi->framebuffer_blue_field_position = mode_info.blue_field_pos;
 +      mbi->framebuffer_blue_mask_size = mode_info.blue_mask_size;
 +    }
 +
 +  mbi->flags |= MULTIBOOT_INFO_FRAMEBUFFER_INFO;
 +
 +  return GRUB_ERR_NONE;
 +}
 +
 +grub_err_t
 +grub_multiboot_make_mbi (void *orig, grub_uint32_t dest, grub_off_t buf_off,
 +                       grub_size_t bufsize)
 +{
 +  grub_uint8_t *ptrorig = (grub_uint8_t *) orig + buf_off;
 +  grub_uint32_t ptrdest = dest + buf_off;
 +  struct multiboot_info *mbi;
 +  struct multiboot_mod_list *modlist;
 +  unsigned i;
 +  struct module *cur;
 +  grub_size_t mmap_size;
 +  grub_err_t err;
 +
 +  if (bufsize < grub_multiboot_get_mbi_size ())
 +    return grub_error (GRUB_ERR_OUT_OF_MEMORY, "mbi buffer is too small");
 +
 +  mbi = (struct multiboot_info *) ptrorig;
 +  ptrorig += sizeof (*mbi);
 +  ptrdest += sizeof (*mbi);
 +  grub_memset (mbi, 0, sizeof (*mbi));
 +
 +  grub_memcpy (ptrorig, cmdline, cmdline_size);
 +  mbi->flags |= MULTIBOOT_INFO_CMDLINE;
 +  mbi->cmdline = ptrdest;
 +  ptrorig += ALIGN_UP (cmdline_size, 4);
 +  ptrdest += ALIGN_UP (cmdline_size, 4);
 +
 +  grub_memcpy (ptrorig, PACKAGE_STRING, sizeof(PACKAGE_STRING));
 +  mbi->flags |= MULTIBOOT_INFO_BOOT_LOADER_NAME;
 +  mbi->boot_loader_name = ptrdest;
 +  ptrorig += ALIGN_UP (sizeof(PACKAGE_STRING), 4);
 +  ptrdest += ALIGN_UP (sizeof(PACKAGE_STRING), 4);
 +
 +  if (modcnt)
 +    {
 +      mbi->flags |= MULTIBOOT_INFO_MODS;
 +      mbi->mods_addr = ptrdest;
 +      mbi->mods_count = modcnt;
 +      modlist = (struct multiboot_mod_list *) ptrorig;
 +      ptrorig += modcnt * sizeof (struct multiboot_mod_list);
 +      ptrdest += modcnt * sizeof (struct multiboot_mod_list);
 +
 +      for (i = 0, cur = modules; i < modcnt; i++, cur = cur->next)
 +      {
 +        modlist[i].mod_start = cur->start;
 +        modlist[i].mod_end = modlist[i].mod_start + cur->size;
 +        modlist[i].cmdline = ptrdest;
 +        grub_memcpy (ptrorig, cur->cmdline, cur->cmdline_size);
 +        ptrorig += ALIGN_UP (cur->cmdline_size, 4);
 +        ptrdest += ALIGN_UP (cur->cmdline_size, 4);
 +      }
 +    }
 +  else
 +    {
 +      mbi->mods_addr = 0;
 +      mbi->mods_count = 0;
 +    }
 +
 +  mmap_size = grub_get_multiboot_mmap_len (); 
 +  grub_fill_multiboot_mmap ((struct multiboot_mmap_entry *) ptrorig);
 +  mbi->mmap_length = mmap_size;
 +  mbi->mmap_addr = ptrdest;
 +  mbi->flags |= MULTIBOOT_INFO_MEM_MAP;
 +  ptrorig += mmap_size;
 +  ptrdest += mmap_size;
 +
 +  /* Convert from bytes to kilobytes.  */
 +  mbi->mem_lower = grub_mmap_get_lower () / 1024;
 +  mbi->mem_upper = grub_mmap_get_upper () / 1024;
 +  mbi->flags |= MULTIBOOT_INFO_MEMORY;
 +
 +  if (bootdev_set)
 +    {
 +      mbi->boot_device = bootdev;
 +      mbi->flags |= MULTIBOOT_INFO_BOOTDEV;
 +    }
 +
 +  err = retrieve_video_parameters (mbi, ptrorig, ptrdest);
 +  if (err)
 +    {
 +      grub_print_error ();
 +      grub_errno = GRUB_ERR_NONE;
 +    }
 +
 +  return GRUB_ERR_NONE;
 +}
 +
 +void
 +grub_multiboot_free_mbi (void)
 +{
 +  struct module *cur, *next;
 +
 +  cmdline_size = 0;
 +  total_modcmd = 0;
 +  modcnt = 0;
 +  grub_free (cmdline);
 +  cmdline = NULL;
 +  bootdev_set = 0;
 +
 +  for (cur = modules; cur; cur = next)
 +    {
 +      next = cur->next;
 +      grub_free (cur->cmdline);
 +      grub_free (cur);
 +    }
 +  modules = NULL;
 +  modules_last = NULL;
 +}
 +
 +grub_err_t
 +grub_multiboot_init_mbi (int argc, char *argv[])
 +{
 +  grub_ssize_t len = 0;
 +  char *p;
 +  int i;
 +
 +  grub_multiboot_free_mbi ();
 +
 +  for (i = 0; i < argc; i++)
 +    len += grub_strlen (argv[i]) + 1;
 +  if (len == 0)
 +    len = 1;
 +
 +  cmdline = p = grub_malloc (len);
 +  if (! cmdline)
 +    return grub_errno;
 +  cmdline_size = len;
 +
 +  for (i = 0; i < argc; i++)
 +    {
 +      p = grub_stpcpy (p, argv[i]);
 +      *(p++) = ' ';
 +    }
 +
 +  /* Remove the space after the last word.  */
 +  if (p != cmdline)
 +    p--;
 +  *p = '\0';
 +
 +  return GRUB_ERR_NONE;
 +}
 +
 +grub_err_t
 +grub_multiboot_add_module (grub_addr_t start, grub_size_t size,
 +                         int argc, char *argv[])
 +{
 +  struct module *newmod;
 +  char *p;
 +  grub_ssize_t len = 0;
 +  int i;
 +
 +  newmod = grub_malloc (sizeof (*newmod));
 +  if (!newmod)
 +    return grub_errno;
 +  newmod->start = start;
 +  newmod->size = size;
 +
 +  for (i = 0; i < argc; i++)
 +    len += grub_strlen (argv[i]) + 1;
 +
 +  if (len == 0)
 +    len = 1;
 +
 +  newmod->cmdline = p = grub_malloc (len);
 +  if (! newmod->cmdline)
 +    {
 +      grub_free (newmod);
 +      return grub_errno;
 +    }
 +  newmod->cmdline_size = len;
 +  total_modcmd += ALIGN_UP (len, 4);
 +
 +  for (i = 0; i < argc; i++)
 +    {
 +      p = grub_stpcpy (p, argv[i]);
 +      *(p++) = ' ';
 +    }
 +
 +  /* Remove the space after the last word.  */
 +  if (p != newmod->cmdline)
 +    p--;
 +  *p = '\0';
 +
 +  if (modules_last)
 +    modules_last->next = newmod;
 +  else
 +    {
 +      modules = newmod;
 +      modules_last->next = NULL;
 +    }
 +  modules_last = newmod;
 +
 +  modcnt++;
 +
 +  return GRUB_ERR_NONE;
 +}
 +
 +void
 +grub_multiboot_set_bootdev (void)
 +{
 +  char *p;
 +  grub_uint32_t biosdev, slice = ~0, part = ~0;
 +  grub_device_t dev;
 +
 +#ifdef GRUB_MACHINE_PCBIOS
 +  biosdev = grub_get_root_biosnumber ();
 +#else
 +  biosdev = 0xffffffff;
 +#endif
 +
 +  dev = grub_device_open (0);
 +  if (dev && dev->disk && dev->disk->partition)
 +    {
 +
 +      p = dev->disk->partition->partmap->get_name (dev->disk->partition);
 +      if (p)
 +      {
 +        if ((p[0] >= '0') && (p[0] <= '9'))
 +          {
 +            slice = grub_strtoul (p, &p, 0) - 1;
 +
 +            if ((p) && (p[0] == ','))
 +              p++;
 +          }
 +
 +        if ((p[0] >= 'a') && (p[0] <= 'z'))
 +          part = p[0] - 'a';
 +      }
 +    }
 +  if (dev)
 +    grub_device_close (dev);
 +
 +  bootdev = ((biosdev & 0xff) << 24) | ((slice & 0xff) << 16) 
 +    | ((part & 0xff) << 8) | 0xff;
 +  bootdev_set = 1;
 +}
index 1d6de1de7c0a688027c2b1e307a430416fc964d2,caf1450e4d1bbf92054af52dea6b680e61149203..fbc35689580eb07c846e968682cbf8a5c07c4407
@@@ -43,7 -40,6 +43,7 @@@ static void *boot_part_addr
  static grub_err_t
  grub_chainloader_boot (void)
  {
-   grub_video_set_mode ("text", NULL);
++  grub_video_set_mode ("text", 0, 0);
    grub_chainloader_real_boot (boot_drive, boot_part_addr);
  
    /* Never reach here.  */
index 96973adb9037cfe078d8175e32df94c45c0db8e9,c5279f6ceeab6c296468e214fae29d63ed8acc9b..0fa9abc12430b4b793e933c3d912e838c0ca0242
@@@ -50,16 -47,6 +50,16 @@@ grub_linux_unload (void
    return GRUB_ERR_NONE;
  }
  
-   grub_video_set_mode ("text", NULL);
 +static grub_err_t
 +grub_linux16_boot (void)
 +{
++  grub_video_set_mode ("text", 0, 0);
 +  grub_linux16_real_boot ();
 +
 +  /* Not reached.  */
 +  return GRUB_ERR_NONE;
 +}
 +
  static grub_err_t
  grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
                int argc, char *argv[])
diff --cc term/gfxterm.c
Simple merge
diff --cc video/efi_gop.c
Simple merge
diff --cc video/efi_uga.c
Simple merge
Simple merge
diff --cc video/video.c
Simple merge