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:
parent
dba3f844eb
commit
761ca975a9
5 changed files with 25 additions and 7 deletions
18
ChangeLog
18
ChangeLog
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue