2008-11-12 Robert Millan <rmh@aybabtu.com>

Fix a regression introduced by the at_keyboard.mod split.  Because
        some terminals are default on some platforms and non-default on
        others, the first terminal being registered determines which is
        going to be default.

        * kern/term.c (grub_term_register_input): If this is the first
        terminal being registered, set it as the current one.
        (grub_term_register_output): Likewise.

        * term/efi/console.c (grub_console_init): Do not call
        grub_term_set_current_output() or grub_term_set_current_input().
        * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
        * term/i386/pc/console.c (grub_console_init): Likewise.
        (grub_console_fini): Do not call grub_term_set_current_input()
        (but leave grub_term_set_current_output() to restore text mode).
This commit is contained in:
robertmh 2008-11-11 23:16:54 +00:00
parent dba3f844eb
commit 761ca975a9
5 changed files with 25 additions and 7 deletions

View file

@ -1,3 +1,21 @@
2008-11-12 Robert Millan <rmh@aybabtu.com>
Fix a regression introduced by the at_keyboard.mod split. Because
some terminals are default on some platforms and non-default on
others, the first terminal being registered determines which is
going to be default.
* kern/term.c (grub_term_register_input): If this is the first
terminal being registered, set it as the current one.
(grub_term_register_output): Likewise.
* term/efi/console.c (grub_console_init): Do not call
grub_term_set_current_output() or grub_term_set_current_input().
* term/ieee1275/ofconsole.c (grub_console_init): Likewise.
* term/i386/pc/console.c (grub_console_init): Likewise.
(grub_console_fini): Do not call grub_term_set_current_input()
(but leave grub_term_set_current_output() to restore text mode).
2008-11-10 Robert Millan <rmh@aybabtu.com>
* util/grub.d/00_header.in: Add backward compatibility check for

View file

@ -44,6 +44,8 @@ grub_term_register_input (grub_term_input_t term)
{
term->next = grub_term_list_input;
grub_term_list_input = term;
if (! grub_cur_term_input)
grub_term_set_current_input (term);
}
void
@ -51,6 +53,8 @@ grub_term_register_output (grub_term_output_t term)
{
term->next = grub_term_list_output;
grub_term_list_output = term;
if (! grub_cur_term_output)
grub_term_set_current_output (term);
}
void

View file

@ -368,8 +368,6 @@ grub_console_init (void)
grub_term_register_input (&grub_console_term_input);
grub_term_register_output (&grub_console_term_output);
grub_term_set_current_output (&grub_console_term_output);
grub_term_set_current_input (&grub_console_term_input);
}
void

View file

@ -156,19 +156,19 @@ void
grub_console_init (void)
{
grub_term_register_output (&grub_console_term_output);
grub_term_set_current_output (&grub_console_term_output);
#ifdef GRUB_MACHINE_PCBIOS
grub_term_register_input (&grub_console_term_input);
grub_term_set_current_input (&grub_console_term_input);
#endif
}
void
grub_console_fini (void)
{
/* This is to make sure the console is restored to text mode before
we boot. */
grub_term_set_current_output (&grub_console_term_output);
#ifdef GRUB_MACHINE_PCBIOS
grub_term_set_current_input (&grub_console_term_input);
grub_term_unregister_input (&grub_console_term_input);
#endif
grub_term_unregister_output (&grub_console_term_output);

View file

@ -422,8 +422,6 @@ grub_console_init (void)
{
grub_term_register_input (&grub_ofconsole_term_input);
grub_term_register_output (&grub_ofconsole_term_output);
grub_term_set_current_output (&grub_ofconsole_term_output);
grub_term_set_current_input (&grub_ofconsole_term_input);
}
void