2009-04-14 Bean <bean123ch@gmail.com>

* Makefile.in (pkglib_DATA): Add handler.lst.
	(handler.lst): New rule.

	* conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-efi.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.

	* genhandlerlist.sh: New file.

	* genmk.rb: Add rules to generate handler.lst.

	* include/grub/normal.h (grub_file_getline): New function definition.
	(read_handler_list): Likewise.
	(free_handler_list): Likewise.

	* include/grub/term.h (grub_term_register_input): Add name parameter
	for auto generation of handler.lst.
	(grub_term_register_output): Likewise.

	* normal/handler.c: New file.

	* normal/main.c (get_line): Renamed to grub_file_getline.
	(read_config_file): Use the newly renamed grub_file_getline.
	(read_command_list): Likewise.
	(read_fs_list): Likewise.
	(grub_normal_execute): Call read_handler_list to parse handler.lst.
	(GRUB_MOD_FINI): Call free_handler_list to free handler list.

	* term/efi/console.c (grub_console_init): Add name parameter for auto
	generation of handler.lst.
	* term/gfxterm.c: Likewise.
	* term/i386/pc/at_keyboard.c: Likewise.
	* term/i386/pc/console.c: Likewise.
	* term/i386/pc/serial.c: Likewise.
	* term/i386/pc/vesafb.c: Likewise.
	* term/i386/pc/vga.c: Likewise.
	* term/i386/pc/vga_text.c: Likewise.
	* term/ieee1275/ofconsole.c: Likewise.
	* term/usb_keyboard.c: Likewise.
This commit is contained in:
bean 2009-04-14 18:12:14 +00:00
parent 33c846be29
commit d05f0df3eb
26 changed files with 352 additions and 34 deletions

View file

@ -37,8 +37,8 @@ static grub_fs_module_list_t fs_module_list = 0;
#define GRUB_DEFAULT_HISTORY_SIZE 50
/* Read a line from the file FILE. */
static char *
get_line (grub_file_t file)
char *
grub_file_getline (grub_file_t file)
{
char c;
int pos = 0;
@ -310,7 +310,7 @@ read_config_file (const char *config, int nested)
{
currline++;
*line = get_line (file);
*line = grub_file_getline (file);
if (! *line)
return grub_errno;
@ -343,7 +343,7 @@ read_config_file (const char *config, int nested)
int startline;
char *cmdline;
cmdline = get_line (file);
cmdline = grub_file_getline (file);
if (!cmdline)
break;
@ -475,7 +475,7 @@ read_command_list (void)
grub_command_t cmd;
int prio = 0;
buf = get_line (file);
buf = grub_file_getline (file);
if (! buf)
break;
@ -594,7 +594,7 @@ read_fs_list (void)
char *q;
grub_fs_module_list_t fs_mod;
buf = get_line (file);
buf = grub_file_getline (file);
if (! buf)
break;
@ -650,6 +650,7 @@ grub_normal_execute (const char *config, int nested, int batch)
read_command_list ();
read_fs_list ();
read_handler_list ();
if (config)
{
@ -754,4 +755,5 @@ GRUB_MOD_FINI(normal)
{
grub_set_history (0);
grub_unregister_command (cmd_normal);
free_handler_list ();
}