2005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added normal/completion.c. * normal/completion.c: New file. * term/i386/pc/console.c (grub_console_getwh): New function. (grub_console_term): Assign grub_console_getwh to getwh. * normal/cmdline.c (grub_tab_complete): Removed. Now the same function is defined in normal/completion.c as grub_normal_do_completion. (grub_cmdline_get): Use grub_normal_do_completion instead of grub_tab_complete. * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK returns non-zero, otherwise return 0. (grub_partition_iterate): First, probe the partition map. Then, call ITERATE only for this partition map. * kern/misc.c (grub_strncmp): Rewritten. * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE returns non-zero. Otherwise return 0. * include/grub/partition.h (grub_partition_map_iterate): Return int instead of void. * include/grub/normal.h (grub_normal_do_completion): New prototype. * include/grub/misc.h (grub_strncmp): Change the type of N to grub_size_t. * include/grub/disk.h (grub_disk_dev_iterate): Return int instead of void. * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to unsigned explictly before comparing it with I. * kern/main.c (grub_env_write_root): Add the attribute unused into VAR. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added normal/completion.c. (normal_mod_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. * normal/command.c (grub_iterate_commands): If ITERATE returns non-zero, return one immediately.
This commit is contained in:
parent
e85e144bfc
commit
8de3495c7b
18 changed files with 192 additions and 348 deletions
51
ChangeLog
51
ChangeLog
|
@ -1,3 +1,54 @@
|
|||
2005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
|
||||
|
||||
* DISTLIST: Added normal/completion.c.
|
||||
|
||||
* normal/completion.c: New file.
|
||||
|
||||
* term/i386/pc/console.c (grub_console_getwh): New function.
|
||||
(grub_console_term): Assign grub_console_getwh to getwh.
|
||||
|
||||
* normal/cmdline.c (grub_tab_complete): Removed. Now the same
|
||||
function is defined in normal/completion.c as
|
||||
grub_normal_do_completion.
|
||||
(grub_cmdline_get): Use grub_normal_do_completion instead of
|
||||
grub_tab_complete.
|
||||
|
||||
* kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
|
||||
returns non-zero, otherwise return 0.
|
||||
(grub_partition_iterate): First, probe the partition map. Then,
|
||||
call ITERATE only for this partition map.
|
||||
|
||||
* kern/misc.c (grub_strncmp): Rewritten.
|
||||
|
||||
* kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
|
||||
returns non-zero. Otherwise return 0.
|
||||
|
||||
* include/grub/partition.h (grub_partition_map_iterate): Return
|
||||
int instead of void.
|
||||
|
||||
* include/grub/normal.h (grub_normal_do_completion): New prototype.
|
||||
|
||||
* include/grub/misc.h (grub_strncmp): Change the type of N to
|
||||
grub_size_t.
|
||||
|
||||
* include/grub/disk.h (grub_disk_dev_iterate): Return int instead
|
||||
of void.
|
||||
|
||||
* normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
|
||||
unsigned explictly before comparing it with I.
|
||||
|
||||
* kern/main.c (grub_env_write_root): Add the attribute unused into
|
||||
VAR.
|
||||
|
||||
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
|
||||
normal/completion.c.
|
||||
(normal_mod_SOURCES): Likewise.
|
||||
* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
|
||||
(normal_mod_SOURCES): Likewise.
|
||||
|
||||
* normal/command.c (grub_iterate_commands): If ITERATE returns
|
||||
non-zero, return one immediately.
|
||||
|
||||
2005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
|
||||
|
||||
* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
|
||||
|
|
1
DISTLIST
1
DISTLIST
|
@ -152,6 +152,7 @@ normal/powerpc/setjmp.S
|
|||
normal/arg.c
|
||||
normal/cmdline.c
|
||||
normal/command.c
|
||||
normal/completion.c
|
||||
normal/context.c
|
||||
normal/main.c
|
||||
normal/menu.c
|
||||
|
|
|
@ -253,7 +253,8 @@ kernel_img_HEADERS = arg.h boot.h device.h disk.h dl.h elf.h env.h err.h \
|
|||
file.h fs.h kernel.h loader.h misc.h mm.h net.h partition.h \
|
||||
pc_partition.h rescue.h symbol.h term.h types.h \
|
||||
machine/biosdisk.h machine/boot.h machine/console.h machine/init.h \
|
||||
machine/memory.h machine/loader.h machine/time.h machine/vga.h
|
||||
machine/memory.h machine/loader.h machine/time.h machine/vga.h \
|
||||
machine/vbe.h
|
||||
kernel_img_CFLAGS = $(COMMON_CFLAGS)
|
||||
kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
|
||||
kernel_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,8200
|
||||
|
@ -681,16 +682,17 @@ grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c \
|
|||
kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \
|
||||
kern/file.c kern/fs.c kern/loader.c kern/main.c kern/misc.c \
|
||||
kern/partition.c kern/rescue.c kern/term.c \
|
||||
normal/arg.c normal/cmdline.c normal/command.c normal/context.c \
|
||||
normal/main.c normal/menu.c normal/menu_entry.c \
|
||||
normal/arg.c normal/cmdline.c normal/command.c \
|
||||
normal/completion.c normal/context.c normal/main.c \
|
||||
normal/menu.c normal/menu_entry.c \
|
||||
partmap/amiga.c partmap/apple.c partmap/pc.c partmap/sun.c \
|
||||
util/console.c util/grub-emu.c util/misc.c \
|
||||
util/i386/pc/biosdisk.c util/i386/pc/getroot.c \
|
||||
util/i386/pc/misc.c
|
||||
CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.o grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o grub_emu-commands_timeout.o grub_emu-commands_i386_pc_halt.o grub_emu-commands_i386_pc_reboot.o grub_emu-disk_loopback.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ufs.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_env.o grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_context.o grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_i386_pc_misc.o
|
||||
MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_default.d grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d grub_emu-commands_timeout.d grub_emu-commands_i386_pc_halt.d grub_emu-commands_i386_pc_reboot.d grub_emu-disk_loopback.d grub_emu-fs_ext2.d grub_emu-fs_fat.d grub_emu-fs_fshelp.d grub_emu-fs_hfs.d grub_emu-fs_iso9660.d grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ufs.d grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d grub_emu-kern_env.d grub_emu-kern_err.d grub_emu-kern_file.d grub_emu-kern_fs.d grub_emu-kern_loader.d grub_emu-kern_main.d grub_emu-kern_misc.d grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d grub_emu-normal_context.d grub_emu-normal_main.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-util_console.d grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_i386_pc_biosdisk.d grub_emu-util_i386_pc_getroot.d grub_emu-util_i386_pc_misc.d
|
||||
CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.o grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o grub_emu-commands_timeout.o grub_emu-commands_i386_pc_halt.o grub_emu-commands_i386_pc_reboot.o grub_emu-disk_loopback.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ufs.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_env.o grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_completion.o grub_emu-normal_context.o grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_i386_pc_misc.o
|
||||
MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_default.d grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d grub_emu-commands_timeout.d grub_emu-commands_i386_pc_halt.d grub_emu-commands_i386_pc_reboot.d grub_emu-disk_loopback.d grub_emu-fs_ext2.d grub_emu-fs_fat.d grub_emu-fs_fshelp.d grub_emu-fs_hfs.d grub_emu-fs_iso9660.d grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ufs.d grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d grub_emu-kern_env.d grub_emu-kern_err.d grub_emu-kern_file.d grub_emu-kern_fs.d grub_emu-kern_loader.d grub_emu-kern_main.d grub_emu-kern_misc.d grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d grub_emu-normal_completion.d grub_emu-normal_context.d grub_emu-normal_main.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-util_console.d grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_i386_pc_biosdisk.d grub_emu-util_i386_pc_getroot.d grub_emu-util_i386_pc_misc.d
|
||||
|
||||
grub-emu: grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.o grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o grub_emu-commands_timeout.o grub_emu-commands_i386_pc_halt.o grub_emu-commands_i386_pc_reboot.o grub_emu-disk_loopback.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ufs.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_env.o grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_context.o grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_i386_pc_misc.o
|
||||
grub-emu: grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.o grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o grub_emu-commands_timeout.o grub_emu-commands_i386_pc_halt.o grub_emu-commands_i386_pc_reboot.o grub_emu-disk_loopback.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ufs.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_env.o grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_completion.o grub_emu-normal_context.o grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_i386_pc_misc.o
|
||||
$(BUILD_CC) -o $@ $^ $(BUILD_LDFLAGS) $(grub_emu_LDFLAGS)
|
||||
|
||||
grub_emu-commands_boot.o: commands/boot.c
|
||||
|
@ -981,6 +983,14 @@ grub_emu-normal_command.d: normal/command.c
|
|||
|
||||
-include grub_emu-normal_command.d
|
||||
|
||||
grub_emu-normal_completion.o: normal/completion.c
|
||||
$(BUILD_CC) -Inormal -I$(srcdir)/normal $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -DGRUB_UTIL=1 $(grub_emu_CFLAGS) -c -o $@ $<
|
||||
|
||||
grub_emu-normal_completion.d: normal/completion.c
|
||||
set -e; $(BUILD_CC) -Inormal -I$(srcdir)/normal $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -DGRUB_UTIL=1 $(grub_emu_CFLAGS) -M $< | sed 's,completion\.o[ :]*,grub_emu-normal_completion.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
|
||||
|
||||
-include grub_emu-normal_completion.d
|
||||
|
||||
grub_emu-normal_context.o: normal/context.c
|
||||
$(BUILD_CC) -Inormal -I$(srcdir)/normal $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -DGRUB_UTIL=1 $(grub_emu_CFLAGS) -c -o $@ $<
|
||||
|
||||
|
@ -1689,10 +1699,10 @@ linux_mod_CFLAGS = $(COMMON_CFLAGS)
|
|||
|
||||
# For normal.mod.
|
||||
normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \
|
||||
normal/context.c normal/main.c normal/menu.c \
|
||||
normal/menu_entry.c normal/i386/setjmp.S
|
||||
CLEANFILES += normal.mod mod-normal.o mod-normal.c pre-normal.o normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_i386_setjmp.o def-normal.lst und-normal.lst
|
||||
MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d normal_mod-normal_command.d normal_mod-normal_context.d normal_mod-normal_main.d normal_mod-normal_menu.d normal_mod-normal_menu_entry.d normal_mod-normal_i386_setjmp.d
|
||||
normal/completion.c normal/context.c normal/main.c \
|
||||
normal/menu.c normal/menu_entry.c normal/i386/setjmp.S
|
||||
CLEANFILES += normal.mod mod-normal.o mod-normal.c pre-normal.o normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_completion.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_i386_setjmp.o def-normal.lst und-normal.lst
|
||||
MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d normal_mod-normal_command.d normal_mod-normal_completion.d normal_mod-normal_context.d normal_mod-normal_main.d normal_mod-normal_menu.d normal_mod-normal_menu_entry.d normal_mod-normal_i386_setjmp.d
|
||||
DEFSYMFILES += def-normal.lst
|
||||
UNDSYMFILES += und-normal.lst
|
||||
|
||||
|
@ -1701,7 +1711,7 @@ normal.mod: pre-normal.o mod-normal.o
|
|||
$(LD) -r -d -o $@ $^
|
||||
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
|
||||
|
||||
pre-normal.o: normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_i386_setjmp.o
|
||||
pre-normal.o: normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_completion.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_i386_setjmp.o
|
||||
-rm -f $@
|
||||
$(LD) -r -d -o $@ $^
|
||||
|
||||
|
@ -1775,6 +1785,25 @@ fs-command.lst: normal/command.c genfslist.sh
|
|||
set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
|
||||
|
||||
|
||||
normal_mod-normal_completion.o: normal/completion.c
|
||||
$(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
|
||||
|
||||
normal_mod-normal_completion.d: normal/completion.c
|
||||
set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,completion\.o[ :]*,normal_mod-normal_completion.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
|
||||
|
||||
-include normal_mod-normal_completion.d
|
||||
|
||||
CLEANFILES += cmd-completion.lst fs-completion.lst
|
||||
COMMANDFILES += cmd-completion.lst
|
||||
FSFILES += fs-completion.lst
|
||||
|
||||
cmd-completion.lst: normal/completion.c gencmdlist.sh
|
||||
set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
|
||||
|
||||
fs-completion.lst: normal/completion.c genfslist.sh
|
||||
set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
|
||||
|
||||
|
||||
normal_mod-normal_context.o: normal/context.c
|
||||
$(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
|
||||
|
||||
|
|
|
@ -86,8 +86,9 @@ grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c \
|
|||
kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \
|
||||
kern/file.c kern/fs.c kern/loader.c kern/main.c kern/misc.c \
|
||||
kern/partition.c kern/rescue.c kern/term.c \
|
||||
normal/arg.c normal/cmdline.c normal/command.c normal/context.c \
|
||||
normal/main.c normal/menu.c normal/menu_entry.c \
|
||||
normal/arg.c normal/cmdline.c normal/command.c \
|
||||
normal/completion.c normal/context.c normal/main.c \
|
||||
normal/menu.c normal/menu_entry.c \
|
||||
partmap/amiga.c partmap/apple.c partmap/pc.c partmap/sun.c \
|
||||
util/console.c util/grub-emu.c util/misc.c \
|
||||
util/i386/pc/biosdisk.c util/i386/pc/getroot.c \
|
||||
|
@ -162,8 +163,8 @@ linux_mod_CFLAGS = $(COMMON_CFLAGS)
|
|||
|
||||
# For normal.mod.
|
||||
normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \
|
||||
normal/context.c normal/main.c normal/menu.c \
|
||||
normal/menu_entry.c normal/i386/setjmp.S
|
||||
normal/completion.c normal/context.c normal/main.c \
|
||||
normal/menu.c normal/menu_entry.c normal/i386/setjmp.S
|
||||
normal_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
|
||||
|
||||
|
|
|
@ -73,16 +73,17 @@ grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c \
|
|||
kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \
|
||||
kern/file.c kern/fs.c kern/loader.c kern/main.c kern/misc.c \
|
||||
kern/partition.c kern/rescue.c kern/term.c \
|
||||
normal/arg.c normal/cmdline.c normal/command.c normal/context.c \
|
||||
normal/arg.c normal/cmdline.c normal/command.c \
|
||||
normal/completion.c normal/context.c \
|
||||
normal/main.c normal/menu.c normal/menu_entry.c \
|
||||
partmap/amiga.c partmap/apple.c partmap/pc.c partmap/sun.c \
|
||||
util/console.c util/grub-emu.c util/misc.c \
|
||||
util/i386/pc/biosdisk.c util/i386/pc/getroot.c \
|
||||
util/powerpc/ieee1275/misc.c
|
||||
CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.o grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o grub_emu-commands_timeout.o grub_emu-commands_ieee1275_halt.o grub_emu-commands_ieee1275_reboot.o grub_emu-disk_loopback.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ufs.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_env.o grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_context.o grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_powerpc_ieee1275_misc.o
|
||||
MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_default.d grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d grub_emu-commands_timeout.d grub_emu-commands_ieee1275_halt.d grub_emu-commands_ieee1275_reboot.d grub_emu-disk_loopback.d grub_emu-fs_ext2.d grub_emu-fs_fat.d grub_emu-fs_fshelp.d grub_emu-fs_hfs.d grub_emu-fs_iso9660.d grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ufs.d grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d grub_emu-kern_env.d grub_emu-kern_err.d grub_emu-kern_file.d grub_emu-kern_fs.d grub_emu-kern_loader.d grub_emu-kern_main.d grub_emu-kern_misc.d grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d grub_emu-normal_context.d grub_emu-normal_main.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-util_console.d grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_i386_pc_biosdisk.d grub_emu-util_i386_pc_getroot.d grub_emu-util_powerpc_ieee1275_misc.d
|
||||
CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.o grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o grub_emu-commands_timeout.o grub_emu-commands_ieee1275_halt.o grub_emu-commands_ieee1275_reboot.o grub_emu-disk_loopback.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ufs.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_env.o grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_completion.o grub_emu-normal_context.o grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_powerpc_ieee1275_misc.o
|
||||
MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_default.d grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d grub_emu-commands_timeout.d grub_emu-commands_ieee1275_halt.d grub_emu-commands_ieee1275_reboot.d grub_emu-disk_loopback.d grub_emu-fs_ext2.d grub_emu-fs_fat.d grub_emu-fs_fshelp.d grub_emu-fs_hfs.d grub_emu-fs_iso9660.d grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ufs.d grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d grub_emu-kern_env.d grub_emu-kern_err.d grub_emu-kern_file.d grub_emu-kern_fs.d grub_emu-kern_loader.d grub_emu-kern_main.d grub_emu-kern_misc.d grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d grub_emu-normal_completion.d grub_emu-normal_context.d grub_emu-normal_main.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-util_console.d grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_i386_pc_biosdisk.d grub_emu-util_i386_pc_getroot.d grub_emu-util_powerpc_ieee1275_misc.d
|
||||
|
||||
grub-emu: grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.o grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o grub_emu-commands_timeout.o grub_emu-commands_ieee1275_halt.o grub_emu-commands_ieee1275_reboot.o grub_emu-disk_loopback.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ufs.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_env.o grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_context.o grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_powerpc_ieee1275_misc.o
|
||||
grub-emu: grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.o grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o grub_emu-commands_timeout.o grub_emu-commands_ieee1275_halt.o grub_emu-commands_ieee1275_reboot.o grub_emu-disk_loopback.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ufs.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_env.o grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_completion.o grub_emu-normal_context.o grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_powerpc_ieee1275_misc.o
|
||||
$(BUILD_CC) -o $@ $^ $(BUILD_LDFLAGS) $(grub_emu_LDFLAGS)
|
||||
|
||||
grub_emu-commands_boot.o: commands/boot.c
|
||||
|
@ -373,6 +374,14 @@ grub_emu-normal_command.d: normal/command.c
|
|||
|
||||
-include grub_emu-normal_command.d
|
||||
|
||||
grub_emu-normal_completion.o: normal/completion.c
|
||||
$(BUILD_CC) -Inormal -I$(srcdir)/normal $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -DGRUB_UTIL=1 $(grub_emu_CFLAGS) -c -o $@ $<
|
||||
|
||||
grub_emu-normal_completion.d: normal/completion.c
|
||||
set -e; $(BUILD_CC) -Inormal -I$(srcdir)/normal $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -DGRUB_UTIL=1 $(grub_emu_CFLAGS) -M $< | sed 's,completion\.o[ :]*,grub_emu-normal_completion.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
|
||||
|
||||
-include grub_emu-normal_completion.d
|
||||
|
||||
grub_emu-normal_context.o: normal/context.c
|
||||
$(BUILD_CC) -Inormal -I$(srcdir)/normal $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -DGRUB_UTIL=1 $(grub_emu_CFLAGS) -c -o $@ $<
|
||||
|
||||
|
@ -1179,11 +1188,10 @@ linux_mod_CFLAGS = $(COMMON_CFLAGS)
|
|||
|
||||
# For normal.mod.
|
||||
normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \
|
||||
normal/context.c normal/main.c normal/menu.c \
|
||||
normal/menu_entry.c \
|
||||
normal/powerpc/setjmp.S
|
||||
CLEANFILES += normal.mod mod-normal.o mod-normal.c pre-normal.o normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_powerpc_setjmp.o def-normal.lst und-normal.lst
|
||||
MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d normal_mod-normal_command.d normal_mod-normal_context.d normal_mod-normal_main.d normal_mod-normal_menu.d normal_mod-normal_menu_entry.d normal_mod-normal_powerpc_setjmp.d
|
||||
normal/completion.c normal/context.c normal/main.c \
|
||||
normal/menu.c normal/menu_entry.c normal/powerpc/setjmp.S
|
||||
CLEANFILES += normal.mod mod-normal.o mod-normal.c pre-normal.o normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_completion.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_powerpc_setjmp.o def-normal.lst und-normal.lst
|
||||
MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d normal_mod-normal_command.d normal_mod-normal_completion.d normal_mod-normal_context.d normal_mod-normal_main.d normal_mod-normal_menu.d normal_mod-normal_menu_entry.d normal_mod-normal_powerpc_setjmp.d
|
||||
DEFSYMFILES += def-normal.lst
|
||||
UNDSYMFILES += und-normal.lst
|
||||
|
||||
|
@ -1192,7 +1200,7 @@ normal.mod: pre-normal.o mod-normal.o
|
|||
$(LD) -r -d -o $@ $^
|
||||
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
|
||||
|
||||
pre-normal.o: normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_powerpc_setjmp.o
|
||||
pre-normal.o: normal_mod-normal_arg.o normal_mod-normal_cmdline.o normal_mod-normal_command.o normal_mod-normal_completion.o normal_mod-normal_context.o normal_mod-normal_main.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_powerpc_setjmp.o
|
||||
-rm -f $@
|
||||
$(LD) -r -d -o $@ $^
|
||||
|
||||
|
@ -1266,6 +1274,25 @@ fs-command.lst: normal/command.c genfslist.sh
|
|||
set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
|
||||
|
||||
|
||||
normal_mod-normal_completion.o: normal/completion.c
|
||||
$(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
|
||||
|
||||
normal_mod-normal_completion.d: normal/completion.c
|
||||
set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -M $< | sed 's,completion\.o[ :]*,normal_mod-normal_completion.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
|
||||
|
||||
-include normal_mod-normal_completion.d
|
||||
|
||||
CLEANFILES += cmd-completion.lst fs-completion.lst
|
||||
COMMANDFILES += cmd-completion.lst
|
||||
FSFILES += fs-completion.lst
|
||||
|
||||
cmd-completion.lst: normal/completion.c gencmdlist.sh
|
||||
set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1)
|
||||
|
||||
fs-completion.lst: normal/completion.c genfslist.sh
|
||||
set -e; $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1)
|
||||
|
||||
|
||||
normal_mod-normal_context.o: normal/context.c
|
||||
$(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) $(normal_mod_CFLAGS) -c -o $@ $<
|
||||
|
||||
|
|
|
@ -43,7 +43,8 @@ grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c \
|
|||
kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \
|
||||
kern/file.c kern/fs.c kern/loader.c kern/main.c kern/misc.c \
|
||||
kern/partition.c kern/rescue.c kern/term.c \
|
||||
normal/arg.c normal/cmdline.c normal/command.c normal/context.c \
|
||||
normal/arg.c normal/cmdline.c normal/command.c \
|
||||
normal/completion.c normal/context.c \
|
||||
normal/main.c normal/menu.c normal/menu_entry.c \
|
||||
partmap/amiga.c partmap/apple.c partmap/pc.c partmap/sun.c \
|
||||
util/console.c util/grub-emu.c util/misc.c \
|
||||
|
@ -117,9 +118,8 @@ linux_mod_CFLAGS = $(COMMON_CFLAGS)
|
|||
|
||||
# For normal.mod.
|
||||
normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \
|
||||
normal/context.c normal/main.c normal/menu.c \
|
||||
normal/menu_entry.c \
|
||||
normal/powerpc/setjmp.S
|
||||
normal/completion.c normal/context.c normal/main.c \
|
||||
normal/menu.c normal/menu_entry.c normal/powerpc/setjmp.S
|
||||
normal_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ void grub_disk_cache_invalidate_all (void);
|
|||
|
||||
void EXPORT_FUNC(grub_disk_dev_register) (grub_disk_dev_t dev);
|
||||
void EXPORT_FUNC(grub_disk_dev_unregister) (grub_disk_dev_t dev);
|
||||
void EXPORT_FUNC(grub_disk_dev_iterate) (int (*hook) (const char *name));
|
||||
int EXPORT_FUNC(grub_disk_dev_iterate) (int (*hook) (const char *name));
|
||||
|
||||
grub_disk_t EXPORT_FUNC(grub_disk_open) (const char *name);
|
||||
void EXPORT_FUNC(grub_disk_close) (grub_disk_t disk);
|
||||
|
|
|
@ -43,7 +43,7 @@ void *EXPORT_FUNC(memcpy) (void *dest, const void *src, grub_size_t n);
|
|||
|
||||
int EXPORT_FUNC(grub_memcmp) (const void *s1, const void *s2, grub_size_t n);
|
||||
int EXPORT_FUNC(grub_strcmp) (const char *s1, const char *s2);
|
||||
int EXPORT_FUNC(grub_strncmp) (const char *s1, const char *s2, int c);
|
||||
int EXPORT_FUNC(grub_strncmp) (const char *s1, const char *s2, grub_size_t n);
|
||||
int EXPORT_FUNC(grub_strncasecmp) (const char *s1, const char *s2, int c);
|
||||
char *EXPORT_FUNC(grub_strchr) (const char *s, int c);
|
||||
char *EXPORT_FUNC(grub_strrchr) (const char *s, int c);
|
||||
|
|
|
@ -178,6 +178,7 @@ grub_context_t grub_context_get (void);
|
|||
grub_menu_t grub_context_get_current_menu (void);
|
||||
grub_menu_t grub_context_push_menu (grub_menu_t menu);
|
||||
void grub_context_pop_menu (void);
|
||||
char *grub_normal_do_completion (char *buf, int *restore);
|
||||
|
||||
#ifdef GRUB_UTIL
|
||||
void grub_normal_init (void);
|
||||
|
|
|
@ -76,7 +76,7 @@ grub_err_t EXPORT_FUNC(grub_partition_iterate) (struct grub_disk *disk,
|
|||
int (*hook) (const grub_partition_t partition));
|
||||
char *EXPORT_FUNC(grub_partition_get_name) (const grub_partition_t partition);
|
||||
|
||||
void EXPORT_FUNC(grub_partition_map_iterate) (int (*hook) (const grub_partition_map_t partmap));
|
||||
int EXPORT_FUNC(grub_partition_map_iterate) (int (*hook) (const grub_partition_map_t partmap));
|
||||
|
||||
void EXPORT_FUNC(grub_partition_map_register) (grub_partition_map_t partmap);
|
||||
|
||||
|
|
|
@ -194,14 +194,16 @@ grub_disk_dev_unregister (grub_disk_dev_t dev)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
grub_disk_dev_iterate (int (*hook) (const char *name))
|
||||
{
|
||||
grub_disk_dev_t p;
|
||||
|
||||
for (p = grub_disk_dev_list; p; p = p->next)
|
||||
if ((p->iterate) (hook))
|
||||
break;
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_disk_t
|
||||
|
|
|
@ -60,7 +60,8 @@ grub_load_modules (void)
|
|||
/* Write hook for the environment variables of root. Remove surrounding
|
||||
parentheses, if any. */
|
||||
static char *
|
||||
grub_env_write_root (struct grub_env_var *var, const char *val)
|
||||
grub_env_write_root (struct grub_env_var *var __attribute__ ((unused)),
|
||||
const char *val)
|
||||
{
|
||||
/* XXX Is it better to check the existence of the device? */
|
||||
grub_size_t len = grub_strlen (val);
|
||||
|
|
10
kern/misc.c
10
kern/misc.c
|
@ -191,18 +191,18 @@ grub_strcmp (const char *s1, const char *s2)
|
|||
}
|
||||
|
||||
int
|
||||
grub_strncmp (const char *s1, const char *s2, int c)
|
||||
grub_strncmp (const char *s1, const char *s2, grub_size_t n)
|
||||
{
|
||||
int p = 1;
|
||||
|
||||
while (*s1 && *s2 && p < c)
|
||||
if (n == 0)
|
||||
return 0;
|
||||
|
||||
while (*s1 && *s2 && --n)
|
||||
{
|
||||
if (*s1 != *s2)
|
||||
return (int) *s1 - (int) *s2;
|
||||
|
||||
s1++;
|
||||
s2++;
|
||||
p++;
|
||||
}
|
||||
|
||||
return (int) *s1 - (int) *s2;
|
||||
|
|
|
@ -42,14 +42,16 @@ grub_partition_map_unregister (grub_partition_map_t partmap)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
grub_partition_map_iterate (int (*hook) (const grub_partition_map_t partmap))
|
||||
{
|
||||
grub_partition_map_t p;
|
||||
|
||||
for (p = grub_partition_map_list; p; p = p->next)
|
||||
if (hook (p))
|
||||
break;
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_partition_t
|
||||
|
@ -85,23 +87,35 @@ grub_err_t
|
|||
grub_partition_iterate (struct grub_disk *disk,
|
||||
int (*hook) (const grub_partition_t partition))
|
||||
{
|
||||
auto int part_map_iterate (const grub_partition_map_t partmap);
|
||||
grub_partition_map_t partmap = 0;
|
||||
|
||||
int part_map_iterate (const grub_partition_map_t partmap)
|
||||
auto int part_map_iterate (const grub_partition_map_t p);
|
||||
auto int part_map_iterate_hook (const grub_partition_t partition);
|
||||
|
||||
int part_map_iterate_hook (const grub_partition_t partition __attribute__ ((unused)))
|
||||
{
|
||||
grub_err_t err = partmap->iterate (disk, hook);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int part_map_iterate (const grub_partition_map_t p)
|
||||
{
|
||||
grub_err_t err = p->iterate (disk, part_map_iterate_hook);
|
||||
|
||||
if (err == GRUB_ERR_BAD_PART_TABLE)
|
||||
if (err != GRUB_ERR_NONE)
|
||||
{
|
||||
/* Continue to next partition map type. */
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
partmap = p;
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_partition_map_iterate (part_map_iterate);
|
||||
if (partmap)
|
||||
partmap->iterate (disk, hook);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
|
|
300
normal/cmdline.c
300
normal/cmdline.c
|
@ -133,304 +133,6 @@ grub_history_replace (int pos, char *s)
|
|||
hist_lines[pos] = grub_strdup (s);
|
||||
}
|
||||
|
||||
/* Try to complete the string in BUF, return the characters that
|
||||
should be added to the string. This command outputs the possible
|
||||
completions, in that case set RESTORE to 1 so the caller can
|
||||
restore the prompt. */
|
||||
static char *
|
||||
grub_tab_complete (char *buf, int *restore)
|
||||
{
|
||||
char *pos = buf;
|
||||
char *path;
|
||||
|
||||
char *found = 0;
|
||||
int begin;
|
||||
int end;
|
||||
int len;
|
||||
int numfound = 0;
|
||||
|
||||
/* The disk that is used for grub_partition_iterate. */
|
||||
grub_device_t partdev;
|
||||
|
||||
/* String that is added when matched. */
|
||||
char *matchstr;
|
||||
|
||||
auto void print_simple_completion (char *comp);
|
||||
auto void print_partition_completion (char *comp);
|
||||
auto int NESTED_FUNC_ATTR add_completion (const char *comp, const char *match,
|
||||
const char *what,
|
||||
void (*print_completion) (char *));
|
||||
auto int iterate_commands (grub_command_t cmd);
|
||||
auto int iterate_dev (const char *devname);
|
||||
auto int iterate_part (const grub_partition_t p);
|
||||
auto int iterate_dir (const char *filename, int dir);
|
||||
|
||||
|
||||
|
||||
void print_simple_completion (char *comp)
|
||||
{
|
||||
grub_printf (" %s", comp);
|
||||
}
|
||||
|
||||
void print_partition_completion (char *comp)
|
||||
{
|
||||
grub_print_partinfo (partdev, comp);
|
||||
grub_errno = 0;
|
||||
}
|
||||
|
||||
/* Add a string to the list of possible completions. COMP is the
|
||||
string that should be added. If this string completely matches
|
||||
add the string MATCH to the input after adding COMP. The string
|
||||
WHAT contains a discription of the kind of data that is added.
|
||||
Use PRINT_COMPLETION to show the completions if there are
|
||||
multiple matches. XXX: Because of a bug in gcc it is required to
|
||||
use __regparm__ in some cases. */
|
||||
|
||||
int NESTED_FUNC_ATTR add_completion (const char *comp, const char *match,
|
||||
const char *what,
|
||||
void (*print_completion) (char *))
|
||||
{
|
||||
/* Bug in strncmp then len ==0. */
|
||||
if (!len || grub_strncmp (pos, comp, len) == 0)
|
||||
{
|
||||
numfound++;
|
||||
|
||||
if (numfound == 1)
|
||||
{
|
||||
begin = len;
|
||||
found = grub_strdup (comp);
|
||||
end = grub_strlen (found);
|
||||
matchstr = (char *) match;
|
||||
}
|
||||
/* Multiple matches found, print the first instead of completing. */
|
||||
else if (numfound == 2)
|
||||
{
|
||||
grub_printf ("\nPossible %s are:\n", what);
|
||||
print_completion (found);
|
||||
}
|
||||
|
||||
if (numfound > 1)
|
||||
{
|
||||
char *s1 = found;
|
||||
const char *s2 = comp;
|
||||
int cnt = 0;
|
||||
|
||||
print_completion ((char *) comp);
|
||||
|
||||
/* Find out how many characters match. */
|
||||
while ((cnt < end) && *s1 && *s2 && (*s1 == *s2))
|
||||
{
|
||||
s1++;
|
||||
s2++;
|
||||
cnt++;
|
||||
}
|
||||
end = cnt;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int iterate_part (const grub_partition_t p)
|
||||
{
|
||||
add_completion (grub_partition_get_name (p), ")", "partitions",
|
||||
print_partition_completion);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int iterate_dir (const char *filename, int dir)
|
||||
{
|
||||
if (!dir)
|
||||
add_completion (filename, " ", "files", print_simple_completion);
|
||||
else
|
||||
{
|
||||
char fname[grub_strlen (filename) + 2];
|
||||
grub_strcpy (fname, filename);
|
||||
grub_sprintf (fname, "%s/", filename);
|
||||
add_completion (fname, "", "files", print_simple_completion);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int iterate_dev (const char *devname)
|
||||
{
|
||||
grub_device_t dev;
|
||||
|
||||
/* Complete the partition part. */
|
||||
dev = grub_device_open (devname);
|
||||
|
||||
if (dev)
|
||||
{
|
||||
if (dev->disk && dev->disk->has_partitions)
|
||||
add_completion (devname, ",", "disks", print_simple_completion);
|
||||
else
|
||||
add_completion (devname, ")", "disks", print_simple_completion);
|
||||
}
|
||||
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int iterate_commands (grub_command_t cmd)
|
||||
{
|
||||
if (grub_command_find (cmd->name))
|
||||
{
|
||||
if (cmd->flags & GRUB_COMMAND_FLAG_CMDLINE)
|
||||
add_completion (cmd->name, " ", "commands",
|
||||
print_simple_completion);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Remove blank space on the beginning of the line. */
|
||||
while (*pos == ' ')
|
||||
pos++;
|
||||
|
||||
/* Check if the string is a command or path. */
|
||||
path = grub_strchr (pos, ' ');
|
||||
|
||||
if (!path)
|
||||
{
|
||||
/* Tab complete a command. */
|
||||
len = grub_strlen (pos);
|
||||
|
||||
grub_iterate_commands (iterate_commands);
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = path;
|
||||
|
||||
/* Remove blank space on the beginning of the line. */
|
||||
while (*pos == ' ')
|
||||
pos++;
|
||||
|
||||
/* Check if this is a completion for a device name. */
|
||||
if (*pos == '(' && !grub_strchr (pos, ')'))
|
||||
{
|
||||
/* Check if this is a device or partition. */
|
||||
char *partition = grub_strchr (++pos, ',');
|
||||
|
||||
if (!partition)
|
||||
{
|
||||
/* Complete the disk part. */
|
||||
len = grub_strlen (pos);
|
||||
grub_disk_dev_iterate (iterate_dev);
|
||||
if (grub_errno)
|
||||
goto fail;
|
||||
}
|
||||
else
|
||||
{
|
||||
*partition = '\0';
|
||||
|
||||
/* Complete the partition part. */
|
||||
partdev = grub_device_open (pos);
|
||||
*partition = ',';
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
|
||||
if (partdev)
|
||||
{
|
||||
if (partdev->disk && partdev->disk->has_partitions)
|
||||
{
|
||||
pos = partition + 1;
|
||||
len = grub_strlen (pos);
|
||||
|
||||
grub_partition_iterate (partdev->disk, iterate_part);
|
||||
if (grub_errno)
|
||||
grub_errno = 0;
|
||||
}
|
||||
|
||||
grub_device_close (partdev);
|
||||
}
|
||||
else
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
char *device = grub_file_get_device_name (pos);
|
||||
grub_device_t dev;
|
||||
grub_fs_t fs;
|
||||
|
||||
dev = grub_device_open (device);
|
||||
if (!dev)
|
||||
goto fail;
|
||||
|
||||
fs = grub_fs_probe (dev);
|
||||
if (grub_errno)
|
||||
goto fail;
|
||||
|
||||
pos = grub_strrchr (pos, '/');
|
||||
if (pos)
|
||||
{
|
||||
char *dir;
|
||||
char *dirfile;
|
||||
pos++;
|
||||
len = grub_strlen (pos);
|
||||
|
||||
dir = grub_strchr (path, '/');
|
||||
if (!dir)
|
||||
{
|
||||
*restore = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
dir = grub_strdup (dir);
|
||||
|
||||
/* Cut away the filename part. */
|
||||
dirfile = grub_strrchr (dir, '/');
|
||||
dirfile[1] = '\0';
|
||||
|
||||
/* Tab complete a file. */
|
||||
(fs->dir) (dev, dir, iterate_dir);
|
||||
if (dev)
|
||||
grub_device_close (dev);
|
||||
|
||||
grub_free (device);
|
||||
grub_free (dir);
|
||||
|
||||
if (grub_errno)
|
||||
goto fail;
|
||||
}
|
||||
else
|
||||
{
|
||||
found = grub_strdup ("/");
|
||||
matchstr = "";
|
||||
numfound = 1;
|
||||
begin = 0;
|
||||
end = 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* If more than one match is found those matches will be printed and
|
||||
the prompt should be restored. */
|
||||
if (numfound > 1)
|
||||
*restore = 1;
|
||||
else
|
||||
*restore = 0;
|
||||
|
||||
/* Return the part that matches. */
|
||||
if (end && found)
|
||||
{
|
||||
char *insert;
|
||||
insert = grub_malloc (end - begin + 1 + sizeof (matchstr));
|
||||
grub_strncpy (insert, found + begin, end - begin);
|
||||
insert[end - begin] = '\0';
|
||||
if (numfound == 1)
|
||||
grub_strcat (insert, matchstr);
|
||||
grub_free (found);
|
||||
|
||||
return insert;
|
||||
}
|
||||
|
||||
fail:
|
||||
grub_free (found);
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
grub_cmdline_run (int nested)
|
||||
{
|
||||
|
@ -607,7 +309,7 @@ grub_cmdline_get (const char *prompt, char cmdline[], unsigned max_len,
|
|||
buf[lpos] = '\0';
|
||||
|
||||
|
||||
insert = grub_tab_complete (buf, &restore);
|
||||
insert = grub_normal_do_completion (buf, &restore);
|
||||
/* Restore the original string. */
|
||||
buf[lpos] = backup;
|
||||
|
||||
|
|
|
@ -173,8 +173,11 @@ int
|
|||
grub_iterate_commands (int (*iterate) (grub_command_t))
|
||||
{
|
||||
grub_command_t cmd;
|
||||
|
||||
for (cmd = grub_command_list; cmd; cmd = cmd->next)
|
||||
iterate (cmd);
|
||||
if (iterate (cmd))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ draw_border (void)
|
|||
|
||||
grub_gotoxy (GRUB_TERM_MARGIN, GRUB_TERM_TOP_BORDER_Y);
|
||||
grub_putcode (GRUB_TERM_DISP_UL);
|
||||
for (i = 0; i < GRUB_TERM_BORDER_WIDTH - 2; i++)
|
||||
for (i = 0; i < (unsigned) GRUB_TERM_BORDER_WIDTH - 2; i++)
|
||||
grub_putcode (GRUB_TERM_DISP_HLINE);
|
||||
grub_putcode (GRUB_TERM_DISP_UR);
|
||||
|
||||
|
@ -47,7 +47,7 @@ draw_border (void)
|
|||
|
||||
grub_gotoxy (GRUB_TERM_MARGIN, GRUB_TERM_TOP_BORDER_Y + GRUB_TERM_NUM_ENTRIES + 1);
|
||||
grub_putcode (GRUB_TERM_DISP_LL);
|
||||
for (i = 0; i < GRUB_TERM_BORDER_WIDTH - 2; i++)
|
||||
for (i = 0; i < (unsigned) GRUB_TERM_BORDER_WIDTH - 2; i++)
|
||||
grub_putcode (GRUB_TERM_DISP_HLINE);
|
||||
grub_putcode (GRUB_TERM_DISP_LR);
|
||||
|
||||
|
|
|
@ -217,6 +217,17 @@ grub_ncurses_getxy (void)
|
|||
return (x << 8) | y;
|
||||
}
|
||||
|
||||
static grub_uint16_t
|
||||
grub_ncurses_getwh (void)
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
|
||||
getmaxyx (stdscr, y, x);
|
||||
|
||||
return (x << 8) | y;
|
||||
}
|
||||
|
||||
static void
|
||||
grub_ncurses_gotoxy (grub_uint8_t x, grub_uint8_t y)
|
||||
{
|
||||
|
@ -275,6 +286,7 @@ static struct grub_term grub_ncurses_term =
|
|||
.checkkey = grub_ncurses_checkkey,
|
||||
.getkey = grub_ncurses_getkey,
|
||||
.getxy = grub_ncurses_getxy,
|
||||
.getwh = grub_ncurses_getwh,
|
||||
.gotoxy = grub_ncurses_gotoxy,
|
||||
.cls = grub_ncurses_cls,
|
||||
.setcolorstate = grub_ncurses_setcolorstate,
|
||||
|
|
Loading…
Reference in a new issue