2005-05-08  Yoshinori K. Okuji  
	* configure.ac (AC_INIT): Upgraded to 0.97.
	* compile: Copied from Automake 1.9.4.
	* config.guess: Likewise.
	* config.sub: Likewise.
	* depcomp: Likewise.
	* install-sh: Likewise.
	* missing: Likewise.
	* mkinstalldirs: Likewise.
	* mdate-sh: Likewise.
	* docs/texinfo.tex: Likewise.
2005-05-08  Yoshinori K. Okuji  
	* stage2/fsys_xfs.c (next_dentry): Use arrays of arrays instead of
	arrays of pointers for USUAL, to avoid read-only strings. Reported
	by Sven Wegener .
2005-03-28  Yoshinori K. Okuji  
	* lib/device.c (get_drive_geometry): Use ST.ST_SIZE instead of
	ST.ST_BLOCKS to get the total number of sectors, because st_blocks
	is not the same if it is a sparse file.
2005-03-19  Yoshinori K. Okuji  
	* stage2/stage2.c (cmain): Initialize DEFAULT_FILE to an empty
	string. Reported by NATORI Shin .
2005-03-15  Yoshinori K. Okuji  
	* stage2/fsys_fat.c (fat_mount): Ignore the 3rd bit of a media
	descriptor, because some BIOSes overwrite this value, according
	to the storage mode (e.g. USB Floppy or USB HDD).
2005-02-16  Yoshinori K. Okuji  
	* grub/asmstub.c (grub_stage2): Remove the attribute `volatile'
	from doit. I hope this change is safe for all compilers.
2005-02-15  Yoshinori K. Okuji  
	* stage2/builtins.c (install_func): If DEST_DRIVE is a hard
	disk, enable the workaround in Stage 1 by replacing the jmp
	with double nop's.
	* stage1/stage1.h (STAGE1_BOOT_DRIVE_CHECK): New macro.
	(STAGE1_BOOT_DRIVE_MASK): Removed.
	* stage1/stage1.S (boot_drive_check): New label. This implements
	a different workaround for buggy BIOSes which don't pass boot
	drive correctly. This is effective for BIOSes which pass a value
	without the seventh bit (0x80).
	(boot_drive_mask): Removed.
2005-02-03  Yoshinori K. Okuji  
	* grub/asmstub.c (console_current_color): Make it global as
	declared.
	(grub_stage2): Tweak the declaration and the definition of the
	nested function doit.
2005-02-02  Yoshinori K. Okuji  
	* stage2/smp-imps.h (imps_any_new_apics): Removed.
	(imps_enabled): Likewise.
	(imps_lapic_addr): Likewise.
	(imps_num_cpus): Likewise.
	(imps_cpu_apic_map): Likewise.
	(imps_apic_cpu_map): Likewise.
	* stage2/Makefile.am (libgrub_a_CFLAGS): Remove
	-fwritable-strings. Not required for the grub shell actually.
	* grub/Makefile.am (AM_CFLAGS): Likewise.
2005-02-01  Yoshinori K. Okuji  
	* grub/asmstub.c (grub_stage2): Use auto instead of static for
	nested functions.
	* stage2/char_io.c (memcheck) [GRUB_UTIL]: Likewise.
	* stage2/builtins.c (blocklist_func): Likewise.
	(color_func): Likewise.
	(install_func): Likewise.
	(setkey_func): Likewise.
	* lib/device.c (read_device_map): Likewise.
2005-01-30  Yoshinori K. Okuji  
        * configure.ac (AC_INIT): Upgraded to 0.96.
2004-10-11 Jason Thomas 
	Patch from Stefanus Du Toit  
	* docs/kernel.c.texi (cmain): Incremement mod by one, instead of
	sizeof(module_t), since it's already a pointer of type module_t.
	* docs/kernel.c (cmain): Do the same.
2004-09-20  Yoshinori K. Okuji  
	* docs/internals.texi (Internals): Changed to an appendix.
	* docs/grub.texi (@setchapternewpage): Changed to odd from off.
	(@contents): Moved to the beginning.
	(Future): Changed to an appendix.
2004-08-17  Yoshinori K. Okuji  
	* stage2/cmdline.c (run_script): Fix a reversed conditional.
	Reported by Alban Crequy .
2004-08-07  Jason Thomas  
	
	From Michael Hohnbaum :
	* stage2/fsys_ext2fs.c (ext2fs_read): Handle sparse files.
2004-07-24  Yoshinori K. Okuji  
	* stage2/stage2.c (cmain): Terminate DEFAULT_FILE with NUL
	correctly. Reported by Alban Crequy .
2004-07-21  Robert Millan  
	Patch from David Weinehall 
	* util/mkbimage: Fix XSI-isms (for supporting POSIX-only shells).
2004-07-20  Robert Millan  
	* util/grub-install.in: Detect GNU/k*BSD systems as well.
2004-07-16  Yoshinori K. Okuji  
	* util/grub-install.in (convert): Fix the sed statement for
	Linux. The expression was ambigious in some cases.
2004-06-29  Robert Millan  
	* util/grub-set-default.in: Fix minor syntax error (non-escaped
	characters).
2004-06-24  Robert Millan  
	Fixes for FHS compliance. (/usr/share is for arch-independant data)
	* stage1/Makefile.am: Move stage files to pkglibdir.
	* stage2/Makefile.am: Likewise.
	* docs/grub.texi: s,/usr/share,/usr/lib,g.
	* util/grub-image.in: Look for stage files in pkglibdir.
	* util/grub-install.in: Likewise.
	* util/grub-install.in: Improve usage message.
2004-06-20  Yoshinori K. Okuji  
	This is a big change on saving a default entry. This change
	makes it possible to set up a quite robust system using GRUB.
	Now we do not use the second sector of Stage 2 to store an
	entry number but use the file /boot/grub/default. This file
	must be generated by grub-set-default, although this file is
	plain-text.
	
	* util/grub-set-default.in: New file.
	
	* util/grub-install.in (grub_set_default): New variable.
	Use /grub instead of /boot/grub on OpenBSD as well as NetBSD.
	Run grub-set-default to make a default file.
	* util/Makefile.am (sbin_SCRIPTS): Added grub-set-default.
	* stage2/stage2.c (run_menu): Change the fallback handling to
	support multiple fallback entries.
	(cmain): Likewise. Also, get a saved entry from a default file
	if possible, before reading a config file.
	* stage2/shared.h (DEFAULT_FILE_BUF): New macro.
	(DEFAULT_FILE_BUFLEN): Likewise.
	(CMDLINE_BUF): Set to DEFAULT_FILE_BUF + DEFAULT_FILE_BUFLEN.
	(MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - MENU_BUF.
	(fallback_entry): Removed.
	(fallback_entries): Declared.
	(fallback_entryno): Likewise.
	(MAX_FALLBACK_ENTRIES): New macro.
	* stage2/cmdline.c (run_script): Use FALLBACK_ENTRYNO instead of
	FALLBACK_ENTRY.
	* stage2/builtins.c (fallback_entry): Removed.
	(fallback_entryno): New variable.
	(fallback_entries): Likewise.
	(init_config): Initialize FALLBACK_ENTRYNO and FALLBACK_ENTRIES.
	(fallback_func): Rewritten completely.
	(savedefault_func): Likewise.
	* docs/grub.texi (grub-set-default): New direntry.
	(Installation): Describe grub-set-default for manual
	installations.
	(Making your system robust): New section.
	(Booting once-only): New subsection.
	(Booting fallback systems): Likewise.
	(fallback): Describe multiple fallback entries.
	(savedefault): Describe an optional argument.
	(Invoking grub-set-default): New chapter.
	(Future): Replaced with a description about GRUB 2.
	* configure.ac (AC_CONFIG_FILES): Added util/grub-set-default.
2004-06-19  Yoshinori K. Okuji  
	* stage2/ufs2.h (int8_t): Renamed to ...
	(grub_uint8_t): ... this.
	(int16_t): Renamed to ...
	(grub_int16_t): ... this.
	(int32_t): Renamed to ...
	(grub_int32_t): ... this.
	(int64_t): Renamed to ...
	(grub_int64_t): ... this.
	(uint8_t): Renamed to ...
	(grub_uint8_t): ... this.
	(uint16_t): Renamed to ...
	(grub_uint16_t): ... this.
	(uint32_t): Renamed to ...
	(grub_uint32_t): ... this.
	(uint64_t): Renamed to ...
	(grub_uint64_t): ... this.
	(u_char): Renamed to ...
	(grub_u_char): ... this.
	(u_int): Renamed to ...
	(grub_u_int): ... this.
	(u_int8_t): Renamed to ...
	(grub_u_int8_t): ... this.
	(u_int16_t): Renamed to ...
	(grub_u_int16_t): ... this.
	(u_int32_t): Renamed to ...
	(grub_u_int32_t): ... this.
	(u_int64_t): Renamed to ...
	(grub_u_int64_t): ... this.
	(ino_t): Renamed to ...
	(grub_ino_t): ... this.
	All callers are changed.
2004-06-14  Jeroen Dekkers  
	* stage2/ufs2.h (__uint8_t): Remove.
	(__uint16_t): Likewise.
	(__uint32_t): Likewise.
	(__uint64_t): Likewise.
	(ino_t): Typedef to uint32_t.
2004-06-13  Yoshinori K. Okuji  
	* stage2/Makefile.am (noinst_HEADERS): Added ufs2.h.
	
2004-06-13  Yoshinori K. Okuji  
	* configure.ac (AC_INIT): Upgraded to 0.95.
2004-05-23  Yoshinori K. Okuji  
	* stage2/char_io.c (grub_isspace): Use a switch sentense instead
	of an if sentense, because that reduces the size.
	* lib/device.c (read_device_map): Change the max number of DRIVE
	to 127 from 8. This was too strict.
	* stage2/asm.S (stop_floppy): Call pusha and popa outside the
	block of real mode code. Reported by Guillem Jover
	.
2004-05-20  Damian Ivereigh  
	* netboot/main.c: Fixed bootp only code so that options
	work properly. This fix is obvious when compared with the
	DHCP code.
2004-05-17  Pavel Roskin  
	* stage2/char_io.c (safe_parse_maxint): Disable for stage 1.5.
	(grub_tolower): Disable for stage 1.5 except fat_stage1_5.
	(grub_memcmp): Disable for stage 1.5 except iso9660_stage1_5.
2004-05-14  Yoshinori K. Okuji  
	From Sergey Matveychuk :
	* stage2/size_test: Added a check for ufs2_stage1_5.
	* stage2/shared.h (STAGE2_ID_UFS2_STAGE1_5): New macro.
	[FSYS_UFS2] (STAGE2_ID): Set to STAGE2_ID_UFS2_STAGE1_5.
	* stage2/filesys.h (FSYS_UFS2_NUM): New macro.
	[FSYS_UFS2] (ufs2_mount): New prototype.
	[FSYS_UFS2] (ufs2_read): Likewise.
	[FSYS_UFS2] (ufs2_dir): Likewise.
	[FSYS_UFS2] (ufs2_embed): Likewise.
	(NUM_FSYS): Added FSYS_UFS2_NUM.
	* stage2/disk_io.c (fsys_table): Added an ufs2 entry.
	* stage2/builtins.c (setup_func): Added ufs2 into the
	STAGE1_5_MAP.
	* stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_ufs2.c.
	(libgrub_a_CFLAGS): Added -DFSYS_UFS2=1.
	(pkgdata_DATA): Added ufs2_stage1_5.
	(noinst_PROGRAMS): Added ufs2_stage1_5.exec.
	(ufs2_stage1_5_exec_SOURCES): New variable.
	(ufs2_stage1_5_exec_CFLAGS): Likewise.
	(ufs2_stage1_5_exec_CCASFLAGS): Likewise.
	(ufs2_stage1_5_exec_LDFLAGS): Likewise.
	* grub/Makefile.am (AM_CPPFLAGS): Added -DFSYS_ISO9660=1,
	-DFSYS_JFS=1, -DFSYS_REISERFS=1, -DFSYS_UFS2=1, -DFSYS_VSTAFS=1,
	-DFSYS_XFS=1, and -DUSE_MD5_PASSWORDS=1.
	* configure.ac (--disable-ufs2): New option.
	* stage2/fsys_ufs2.c: New file.
	* stage2/ufs2.h: Likewise.
2004-05-10  Robert Millan  
	* lib/device.c: Mangle __FreeBSD_* macro usage to support
	kFreeBSD-based non-FreeBSD systems (i.e. GNU/kFreeBSD).
	Implement runtime detection of version of kFreeBSD. Now if
	we build against kFreeBSD 5.x headers the GRUB shell will work on
	both 4.x and 5.x.
	Replace `u_int_t' types with portable `unsigned int' and old
	reference to `geometry' structure to new `geom' one.
	* docs/menu.lst: Split GNU/kFreeBSD and GNU/kNetBSD as separate
	options than FreeBSD and NetBSD, respectively. There are minor
	differences now (different paths).
2004-05-03  Pavel Roskin  
	* stage2/char_io.c (convert_to_ascii): Remove "%b" support.
	It's non-standard and is not used anymore.
	(grub_printf): Likewise.
2004-04-29  Robert Millan  
	From Yann Dirson  :
	* util/mkbimage: Misc syntax fixes.
2004-04-29  Jeroen Dekkers  
	* stage2/char_io.c (grub_memcmp): Define for stage1.5 too.
	* stage2/fsys_iso9660.c (iso9660_mount): Use memcmp() instead of
	__builtin_memcmp().
	(iso9660_dir): Likewise.
2004-04-26  Christian Jones  
	* docs/grub.texi (Making a GRUB bootable CD-ROM): minor edits,
	including a few compatibility notes and a change to
	-boot-load-size 4 for the mkisofs command.
2004-04-22  Jeroen Dekkers  
	* Makefile.am (AUTOMAKE_OPTIONS): Add "gnu".
	* configure.ac: Update to work with automake 1.8, quote all
	AC_DEFUN's correctly and provide descriptions for AC_DEFINE's.
	* acinclude.m4: Likewise.
	* acconfig.h: Removed.
	
	* stage1/Makefile.am (.exec): Use suffix rules instead of pattern
	rules.
	* stage2/Makefile.am (.exec): Likewise.
2004-04-18  Yoshinori K. Okuji  
	* docs/grub.texi (Making a GRUB bootable CD-ROM): New section.
	* stage2/disk_io.c (set_device): Use CH instead of *DEVICE to
	test the first character of DEVICE, because DEVICE is
	incremented.
	Reported by Bernhard Treutwein.
2004-04-15  Yoshinori K. Okuji  
	* netboot/fsys_tftp.c (buf_fill): Cast 1 to unsigned short
	explicitly so that the constant doesn't extend unsigned short
	to int automatically.
	Reported by Eduard Guzovsky .
	* docs/grub.texi (Invoking grub-md5-crypt): Fixed the chapter
	name.
	Reported by Martin Pool .
2004-04-04  Yoshinori K. Okuji  
	* configure.ac (STAGE2_CFLAGS): Check if -fno-stack-protector is
	supported by GCC. If yes, added the option. This is necessary
	for OpenBSD, because the stack protector defines additional
	symbols. Reported by uc.sheda .
2004-03-28  Pavel Roskin  
	* stage2/boot.c: Imply --no-mem-option for Linux kernels with
	protocol version 2.03 and above (Linux 2.4.18 and newer).
2004-03-27  Yoshinori K. Okuji  
	* stage2/char_io.c [!GRUB_UTIL] (memcpy): New function. It is
	defined as an alias of grub_memmove. This is copied from GRUB 2.
	* stage2/disk_io.c (print_completions): Simplified conditionals
	to make it easier to edit the file with Emacs.
	Added support for (cd).
	(set_device): Likewise.
	* stage2/common.c (init_bios_info): Check if BOOT_DRIVE is a
	CDROM drive. If it is true, set CDROM_DRIVE to BOOT_DRIVE.
	(cdrom_drive): New variable.
	From Leonid Lisovskiy :
	* stage2/start_eltorito.S: New file.
	* stage2/stage2.c (run_menu): Use GRUB_INVALID_DRIVE instead of
	0xFF.
	* stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
	[FSYS_ISO9660] (STAGE2_ID): Set to STAGE2_ID_ISO9660_STAGE1_5.
	(struct geometry): Added a new member ``sector_size''.
	(BIOSDISK_FLAG_CDROM): New macro.
	(cdrom_drive): Declared.
	* stage2/fsys_iso9660.c: New file.
	* stage2/iso9660.h: Likewise.
	* stage2/filesys.h (FSYS_ISO9660_NUM): New macro.
	[FSYS_ISO9660] (iso9660_mount): Declared.
	[FSYS_ISO9660] (iso9660_read): Likewise.
	[FSYS_ISO9660] (iso9660_dir): Likewise.
	(NUM_FSYS): Added FSYS_ISO9660_NUM.
	* stage2/disk_io.c (fsys_table) [FSYS_ISO9660]: Added iso9660.
	(current_drive): Use GRUB_INVALID_DRIVE.
	(log2): New function.
	(rawread): Use BUF_GEOM.SECTOR_SIZE instead of SECTOR_SIZE.
	Change the type of BUFADDR from int to char *.
	Use a virtual track to make sure that one track fits in the
	buffer.
	(sane_partition): Allow CURRENT_DRIVE to be CDROM_DRIVE, because
	a bios drive for a CD-ROM is often assigned to greater than
	0x88.
	(set_device): Use GRUB_INVALID_DRIVE instead of 0xFF.
	(setup_part): Likewise.
	* stage2/cmdline.c (init_cmdline): Use GRUB_INVALID_DRIVE.
	* stage2/builtins.c (install_func): Use GRUB_INVALID_DRIVE.
	(setup_func): Added iso9660_stage1_5.
	* stage2/bios.c (biosdisk): Don't fall back to the CHS mode
	if the drive is a CDROM.
	(get_cdinfo): New function.
	(get_diskinfo): Call get_cdinfo if the drive is greater than or
	equal to 0x88 or the drive supports LBA.
	Set the sector size to SECTOR_SIZE if it is not a CD-ROM.
	* stage2/asm.S (biosdisk_int13_extensions): Take a word
	argument AX instead of a byte argument AH.
	(get_diskinfo_int13_extensions): Removed.
	* stage2/Makefile.am (noinst_HEADERS): Added iso9660.h.
	(libgrub_a_SOURCES): Added fsys_iso9660.c.
	(libgrub_a_CFLAGS): Added -DFSYS_ISO9660=1.
	(pkgdata_DATA): Added iso9660_stage1_5 and stage2_eltorito.
	(noinst_PROGRAMS): Added iso9660_stage1_5.exec and
	start_eltorito.exec.
	(noinst_DATA): Added start_eltorito.
	(pre_stage2_exec_SOURCES): Added fsys_iso9660.c.
	(START_ELTORITO_LINK): New variable.
	(start_eltorito_exec_SOURCES): Likewise.
	(start_eltorito_exec_CCASFLAGS): Likewise.
	(start_eltorito_exec_LDFLAGS): Likewise.
	(start_eltorito_exec-start.$(OBJEXT)): New dependency.
	(stage2_eltorito): New target.
	(iso9660_stage1_5_exec_SOURCES): New variable.
	(iso9660_stage1_5_exec_CFLAGS): Likewise.
	(iso9660_stage1_5_exec_CCASFLAGS): Likewise.
	(iso9660_stage1_5_exec_LDFLAGS): Likewise.
	* stage1/stage1.h (GRUB_INVALID_DRIVE): New macro.
	* stage1/stage1.S (boot_drive): Use the macro GRUB_INVALID_DRIVE.
	(real_start): Likewise.
	* lib/device.c (get_drive_geometry): Set GEOM->SECTOR_SIZE to
	SECTOR_SIZE by default.
	* configure.ac (--disable-iso9660): New option.
2004-03-13  Yoshinori K. Okuji  
	
	From Daniele Zelante :
	* stage2/asm.S (stop_floppy): Use INT 13, AH=00h to stop the
	floppy controller instead of a direct I/O.
2004-03-12  Yoshinori K. Okuji  
	* stage2/serial.c (serial_putchar): Handle the character code
	127 as a backspace. Reported by Florian Engelhardt
	.
2004-03-12  Yoshinori K. Okuji  
	From Boji Tony Kannanthanam :
	* util/grub-install.in (convert): Add support for ATARAID
	device names.
	* lib/device.c (get_ataraid_disk_name) [__linux__]: New
	function.
	(init_device_map) [__linux__]: Probe ATARAID disks.
	* stage2/size_test (check): Don't use the local statement any
	longer. It was unneeded actually. Reported by Paul Jarc.
2004-03-12  Yoshinori K. Okuji  
	
	From Sergey Matveychuk :
	* lib/device.c (get_drive_geometry): Do not open the same device
	more than once unnecessarily.
	(get_drive_geometry) [__FreeBSD_version >= 500040]: Use new
	ioctl methods.
	(get_floppy_disk_name) [__FreeBSD__ >= 4]: Use /dev/fd%d rather
	than /dev/rfd%d.
	(get_ide_disk_name) [__FreeBSD__ >= 4]: Use /dev/ad%d rather
	than /dev/rad%d.
	(get_scsi_disk_name) [__FreeBSD__ >= 4]: Use /dev/da%d rather
	than /dev/rda%d.
	* grub/asmstub.c (get_diskinfo): Check if ERRNO is EPERM as
	well.
2004-02-28  Jeroen Dekkers  
	* docs/grub.texi (partnew): Change @var{to} to @var{len}.
2004-02-18  Yoshinori K. Okuji  
	From Yury V. Umanets :
	* stage2/fsys_reiserfs.c (REISER3FS_SUPER_MAGIC_STRING): New
	macro.
	(reiserfs_mount): Added checks for ReiserFS 3.
	(reiserfs_embed): Likewise.
2004-01-25  Yoshinori K. Okuji  
	* docs/grub.texi (Obtaining and Building GRUB): Instead of
	describing how to use the anoncvs method, specify the URL of
	the description page on Savannah.
	Reported by Bernhard Treutwein.
2004-01-18  Yoshinori K. Okuji  
	From Thomas Schwinge :
	* grub/Makefile.am (AM_CPPFLAGS): New variable.
	(AM_CFLAGS): Removed all cpp flags.
	* stage2/xfs.h (__int8_t): Renamed to ...
	(xfs_int8_t): ... this.
	(__uint8_t): Renamed to ...
	(xfs_uint8_t): ... this.
	(__int16_t): Renamed to ...
	(xfs_int16_t): ... this.
	(__uint16_t): Renamed to ...
	(xfs_uint16_t): ... this.
	(__int32_t): Renamed to ...
	(xfs_int32_t): ... this.
	(__uint32_t): Renamed to ...
	(xfs_uint32_t): ... this.
	(__int64_t): Renamed to ...
	(xfs_int64_t): ... this.
	(__uint64_t): Renamed to ...
	(xfs_uint64_t): ... this.
	All callers are changed.x
	From Egmont Koblinger :
	* util/grub-install.in: Support an install devices in GRUB's
	notation without parentheses.
	* docs/grub.texi (Installing GRUB using grub-install): Added an
	example of using grub-install without parentheses.
2004-01-18  Yoshinori K. Okuji  
	
	* util/grub-install.in: Use the first word of GRUB_SHELL when
	checking if the grub shell is present. This is necessary to
	support options to the grub shell (e.g. grub --read-only).
	From Eric Kvaalen :
	* docs/grub.texi: Many bug fixes.
2004-01-17  Yoshinori K. Okuji  
	* lib/device.c [__linux__] (MAJOR): Support 32 bit and 64 bit
	dev_t. This code is stolen from glibc.
	Suggested by Shen Feng .
2004-01-11  Yoshinori K. Okuji  
	* stage2/terminfo.c (ti_set_term): Use a pointer to struct
	terminfo instead to avoid GCC's bug, which inserts a reference
	to memcpy implicitly.
	(ti_get_term): Likewise.
	All callers are fixed.
	* stage2/terminfo.h (ti_set_term): Updated.
	(ti_get_term): Likewise.
	* stage2/shared.h (struct linux_kernel_header): New member,
	initrd_max_address. Defined in the boot protocol 2.03 or higher.
	* stage2/boot.c (load_initrd): If the boot protocol is greater
	than or equal to 2.03, use the field ``initrd_max_address''
	instead of LINUX_INITRD_MAX_ADDRESS.
2003-12-30  Yoshinori K. Okuji  
	* stage2/fsys_ext2fs.c (ext2_is_fast_symlink): New function.
	(ext2fs_dir): Use ext2_is_fast_symlink to check if the current
	inode is a fast or slow symlink. This change was required
	because Linux now uses acl seriously (i.e. incompatibility).
	Reported by Chris PeBenito  and Seemant
	Kulleen 
2003-11-30  Yoshinori K. Okuji  
	* lib/device.c (read_device_map) (sho_warning): New internal
	function.
	(read_device_map): If DRIVE is greater than 8, emit a warning
	and ignore the drive, rather than exiting abnormally.
	Reported by Greg Newby .
2003-10-19  Yoshinori K. Okuji  
	Migrated to newer autotools. Also, don't install mkbimage
	because its name is too general and it does not conform to the
	GNU Coding Standards in some points.
	
	* util/Makefile.am (EXTRA_DIST): New variable.
	(sbin_SCRIPTS): Removed mkbimage.
	(noinst_SCRIPTS): Added mkbimage.
	* stage1/Makefile.am (AM_ASFLAGS): Renamed to ...
	(AM_CCASFLAGS): ... this.
	* stage2/Makefile.am (pre_stage2_exec_ASFLAGS): Renamed to ...
	(pre_stage2_exec_CCASFLAGS): ... this.
	(start_exec_ASFLAGS): Renamed to ...
	(start_exec_CCASFLAGS): ... this.
	(e2fs_stage1_5_exec_ASFLAGS): Renamed to ...
	(e2fs_stage1_5_exec_CCASFLAGS): ... this.
	(fat_stage1_5_exec_ASFLAGS): Renamed to ...
	(fat_stage1_5_exec_CCASFLAGS): ... this.
	(ffs_stage1_5_exec_ASFLAGS): Renamed to ...
	(ffs_stage1_5_exec_CCASFLAGS): ... this.
	(minix_stage1_5_exec_ASFLAGS): Renamed to ...
	(minix_stage1_5_exec_CCASFLAGS): ... this.
	(reiserfs_stage1_5_exec_ASFLAGS): Renamed to ...
	(reiserfs_stage1_5_exec_CCASFLAGS): ... this.
	(vstafs_stage1_5_exec_ASFLAGS): Renamed to ...
	(vstafs_stage1_5_exec_CCASFLAGS): ... this.
	(jfs_stage1_5_exec_ASFLAGS): Renamed to ...
	(jfs_stage1_5_exec_CCASFLAGS): ... this.
	(xfs_stage1_5_exec_ASFLAGS): Renamed to ...
	(xfs_stage1_5_exec_CCASFLAGS): ... this.
	(diskless_exec_ASFLAGS): Renamed to ...
	(diskless_exec_CCASFLAGS): ... this.
	(nbloader_exec_ASFLAGS): Renamed to ...
	(nbloader_exec_CCASFLAGS): ... this.
	(pxeloader_exec_ASFLAGS): Renamed to ...
	(pxeloader_exec_CCASFLAGS): ... this.
	* configure.in: Removed.
	* configure.ac: New file. Mostly derived from configure.in.
	
2003-10-19  Yoshinori OKUJI  
	From KB Sriram :
	* stage2/disk_io.c (set_device) [SUPPORT_NETBOOT]: Added support
	for a completion of a network device.
	(print_completions): Likewise.
2003-10-10  Robert Millan  
	* config.guess: Update from official source (CVS).
	* config.sub: Likewise.
2003-09-18  Robert Millan  
	* docs/texinfo.tex: Update from ftp.gnu.org.
2003-09-05  KB Sriram  
	* stage2/fsys_fat.c: Fix missdetection of ext2fs as fatfs.
2003-09-05  Robert Millan  
	* docs/menu.lst (GNU/Linux): Add commented initrd command, which
	is consistent with documentation.
2003-09-01  Robert Millan  
	* docs/menu.lst: Add NetBSD, OpenBSD, GNU/KFreeBSD and
	GNU/KNetBSD.
2003-08-13  Jason Thomas  
	* util/grub-install.in (resolve_symlink): New function to
	resolve symlinks.
	(find_device): Moved symlink code to new function.
	Before we convert the install_device we attempt to resolve it if
	its a symlink using the new function.
	* util/mbchk.c (check_multiboot): The sense of an error message
	was inverted.
	Reported by Timothy Baldwin .
2003-08-12  Jochen Hoenicke  
	* stage2/fsys_reiserfs.c (read_tree_node): Fixed a typo; only
	matters for very large fs when tree doesn't fit in cache.
	(IH_KEY_OFFSET): Don't check for INFO->version.  There are
	actually old version file systems that use new version items.
	(IH_KEY_ISTYPE): Likewise.
	(reiserfs_dir): Likewise.
2003-08-09  Thierry Laronde  
	* util/mkbimage: New File. `mkbimage' depends on GRUB and
	existed	elsewhere. It is now part of GRUB so that people can
	fix/contribute.
	* util/Makefile.am (sbin_SCRIPTS): Added script `mkbimage'
2003-08-01  Jason Thomas  
	* util/grub-install.in: support --no-floppy
	This allow users to specify the --no-floppy option which
	is passed onto the grub shell, so it does not probe the floppy
	drive. 
	Patch from kesha@diedas.soften.ktu.lt
2003-06-17  Jochen Hoenicke  
	* stage2/fsys_reiserfs.c (reiserfs_mount): Clear the node cache.
	This fixes a problem where files from other partitions appear at
	the wrong partition.  Problem reported by Johan Regin.
2003-05-04  Yoshinori K. Okuji  
	* docs/grub.texi (partnew): Fixed the inconsistency between the
	implementation and the documentation. The last argument is the
	length instead of the ending address.
	Reported by Daniel Farrell .
2003-03-19  Yoshinori K. Okuji  
	From Adam Lackorzynski :
	* stage2/shared.h (KEY_NPAGE): Changed to 0x5100.
	(KEY_PPAGE): Changed to 0x4900.
2003-03-19  Yoshinori K. Okuji  
	* stage2/boot.c (load_image): Check if DATA_LEN plus SECTOR_SIZE
	is less than or equal to MULTIBOOT_SEARCH, instead of if
	DATA_LEN is less than or equal to MULTIBOOT_SEARCH.
	Reported by Neelkanth Natu .
2003-03-12  Leonid Lisovskiy  
	* lib/device.c (get_drive_geometry): grub utility didn't work
	due to uninitialized 'sector_size' struct geometry member.
	* stage1/stage1.h (GRUB_NO_DRIVE): Constant moved from
	stage2/shared.h and its value rolled back to 0xFF for backward
	compatibility with original grub.
	* stage1/stage1.S (boot_drive): Use GRUB_NO_DRIVE instead of
	constant.
	* stage2/bios.c (get_diskinfo): Workaround for BIOS'es that
	has CD-ROM drive number = last harddisk + 1.
2003-03-10  Yoshinori K. Okuji  
	From Andrew Walrond :
	* stage2/fsys_reiserfs.c (struct reiserfs_journal_header):
	Remove an unnecessary ``long''.
2003-03-10  Yoshinori K. Okuji  
	From Tilmann Bubeck:
	* stage2/builtins.c [SUPPORT_SERIAL] (terminfo_func): Unescape
	arguments before copying them, and escape sequences before
	printing them.
	* stage2/terminfo.h (TERMINFO_LEN): Changed to 40.
2003-02-20  Yoshinori K. Okuji  
	* util/grub-install.in (find_device): Fix the sed script.
2003-02-17  Yoshinori K. Okuji  
	* lib/device.c (check_device): If DEVICE is empty, just return
	1.
	(get_scsi_disk_name) [__QNXNTO__]: Make NAME empty, because SCSI
	disks are detected as IDE disks on QNX RTP.
	From Taketo Kabe :
	* lib/device.c (get_ide_disk_name) [__QNXNTO__]: Set NAME to
	"/dev/hdX".
	(get_floppy_disk_name) [__QNXNTO__]: Set NAME to "/dev/fdX".
	* stage2/mb_info.h (struct AddrRangeDesc): Specified with the
	attribute packed.
	* stage2/shared.h (struct mmar_desc): Likewise.
2003-01-29  Yoshinori K. Okuji  
	From Ilguiz Latypov:
	* configure.in: Fix a syntax error in a sed script.
	* stage2/bios.c (get_diskinfo): PhoenixBIOS 4.0 Revision 6.0 
	for ZF Micro might understand the greater buffer size for the
	"get drive parameters" int 0x13 call in its own way.  
	Supposedly the BIOS assumes even bigger space is available and
	thus corrupts the stack.  This is why we specify the exactly 
	necessary size of 0x42 bytes.
2003-01-28  Leonid Lisovskiy  
	ISO9660 support is added.
	* stage2/fsys_iso9660.c: New file - a lot of code stolen from
	GRUB/98 0.5.
	* stage2/iso9660.h: Likewise.
	* stage2/start_torito.S: New file - El Torito boot sector.
	* stage2/Makefile.am (noinst_HEADERS): iso9660.h added.
	(libgrub_a_SOURCES): fsys_iso9660.c added.
	(pkgdata_DATA): iso9660_stage1_5 added.
	(noinst_PROGRAMS): iso9660_stage1_5.exec added.
	* configure.in (--disable-iso9660): New option.
	* stage2/builtins.c (setup_func): Add item for ISO9660 into
	STAGE1_5_MAP.
	* stage2/disk_io.c (rawread): Ability to read devices with
	sector size other than 512 added.
	(fsys_table): Added entry for ISO9660.
	(check_and_print_mount): Don't print error when probing
	partition.
	(real_open_partition): Cleanup globals after probing.
	* stage2/filesys.h [FSYS_ISO9660]: Add entries for ISO9660
	functions.
	(NUM_FSYS): Added FSYS_ISO9660_NUM.
	* stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
	(GRUB_NO_DRIVE): New constant.
	(struct geometry): New member 'sector_size'.
	* stage2/bios.c (get_diskinfo): Request 1.xx version of
	int13 extensions only since higher version request can
	destroy El Torito emulation on some BIOS'es.
	(get_cdinfo): New function - get El Torito emulation parameters.
	* stage2/asm.S (biosdisk_int13_extensions): pass AX, instead
	of AH for universality, save EBX,ECX,EDX registers content to
	avoid data corruption in caller functions.
	(get_diskinfo_int13_extensions): Removed.
2003-01-25  Yoshinori K. Okuji  
	From Steven Dick :
	* stage2/pc_slice.h (PC_SLICE_TYPE_DELL_UTIL): New macro.
	(IS_PC_SLICE_TYPE_FAT): Recognize PC_SLIDE_TYPE_DELL_UTIL as
	well.
2003-01-25  Yoshinori K. Okuji  
	From Karsten Scheibler :
	* stage2/terminfo.c (term): Don't use a C99-style initializer.
2003-01-16  Yoshinori K. Okuji  
	From H.J. Lu :
	* stage2/disk_io.c (part_start): Use unsigned long to support
	large disks.
	(part_length): Likewise.
	* stage2/shared.h (part_start): Likewise.
	(part_length): Likewise.
2003-01-05  Yoshinori K. Okuji  
	* configure.in (CFLAGS): When the default CFLAGS is used,
	eliminate -O2 and -g from CFLAGS, because Autoconf may
	automatically set CFLAGS to them.
2003-01-02  Yoshinori K. Okuji  
	From Jeremy Katz:
	* configure.in: Support building on x86_64 with gcc -m32.
2003-01-02  Yoshinori K. Okuji  
	From Jeremy Katz:
	* stage2/fsys_ext2fs.c (ext2fs_dir): Initialize STR_CHK to shut
	up GCC.
	* stage2/fsys_minix.c (minix_dir): Likewise.
2002-12-21  Yoshinori K. Okuji  
	* stage2/asm.S (gateA20): First, try a BIOS call (INT 15H,
	AX=2400/2401). Use the keyboard controller, only if that failed.
2002-12-11  Yoshinori K. Okuji  
	Add a workaround for buggy BIOSes which don't pass boot drive
	correctly. The idea is that GRUB forces the fixed disk flag
	when booted from a hard disk. When BIOS loads GRUB directly,
	the boot drive must be either of 0x00 and 0x80, so this should
	work, if those BIOSes always pass zero to %dl. AFAIK, this
	assumption is always correct.
	* stage2/builtins.c (install_func): Store the fixed disk flag of
	the destination drive in BOOT_DRIVE_MASK in Stage 1.
	* stage1/stage1.h (STAGE1_BOOT_DRIVE_MASK): New macro.
	* stage1/stage1.S (boot_drive_mask): New variable. It is or'ed
	to %dl.
2002-12-09  Yoshinori K. Okuji  
	* stage2/char_io.c (init_page): Change the software name from
	"GRUB" to "GNU GRUB". This was inaccurate. Reported by Ciaran
	O'Riordan .
2002-12-04  Yoshinori K. Okuji  
	* stage2/builtins.c (embed_func): When checking if the disk can
	store Stage 1.5, check every partition, if it isn't empty.
2002-12-04  Yoshinori K. Okuji  
	* stage2/stage2.c (print_entry): Put a right arrow, if the entry
	is longer than 71 characters. Reported by Pavel Roskin.
2002-12-04  Yoshinori K. Okuji  
	* stage2/disk_io.c (set_device): If '(n' is given, add 'd' into
	DEVICE. Reported by Pavel Roskin.
2002-12-03  Yoshinori K. Okuji  
	Change the terminal structure a bit, to turn the cursor state
	explicitly. Suggested by Pavel Roskin.
	
	* stage2/term.h (struct term_entry): Remove the member
	`nocursor' and add `setcursor'.
	[!STAGE1_5] (console_setcursor): New prototype.
	[SUPPORT_HERCULES] (hercules_setcursor): Likewise.
	[!STAGE1_5] (console_nocursor): Removed.
	[SUPPORT_HERCULES] (hercules_nocursor): Likewise.
	* stage2/stage2.c (run_menu): Call setcursor instead of
	nocursor.
	Call setcursor with 1 before starting a boot entry.
	* stage2/shared.h (nocursor): Removed.
	(setcursor): New prototype.
	* stage2/hercules.c (herc_cursor_state): New variable.
	(herc_turn_cursor): Removed.
	(hercules_nocursor): Likewise.
	(hercules_setcursor): New function.
	* stage2/char_io.c (get_cmdline): Turn on the cursor at the
	beginning, and restore it before returning.
	(nocursor): Removed.
	(setcursor): New function.
	* stage2/asm.S (console_cursor_state): New variable.
	(console_cursor_shape): Likewise.
	(console_setcursor): New function.
	(console_nocursor): Removed.
	* grub/asmstub.c (console_setcursor): New function.
	(hercules_setcursor): Likewise.
	(console_nocursor): Removed.
	(hercules_nocursor): Likewise.
2002-12-03  Yoshinori K. Okuji  
	* docs/grub.texi (terminfo): Fix a misleading English sentence.
	Reported by Pavel Roskin.
	* stage2/builtins.c (builtin_terminfo): Likewise.
2002-12-01  Yoshinori K. Okuji  
	From Alexander Langer :
	* stage2/freebsd.h (RB_GDB): New macro.
	(RB_MUTE): Likewise.
	(RB_MULTIPLE): Likewise.
	* stage2/boot.c (bsd_boot): Set the bits of RB_MULTIPLE, RB_GDB
	and RB_MUTE when "-D", "-g" and "-m" are specified,
	respectively.
2002-12-01  Yoshinori K. Okuji  
	* docs/grub.texi (Reporting bugs): Specify the project page of
	the BTS instead of the BTS itself.
2002-11-30  Yoshinori K. Okuji  
	* docs/Makefile.am (man_MANS): Added grub-terminfo.8.
	($(srcdir)/grub_terminfo.8): New target.
	* utils/grub-terminfo.in: New file.
	* util/Makefile.am (sbin_SCRIPTS): Added grub-terminfo.
	* configure.in (AC_OUTPUT): Added util/grub-terminfo.
	* docs/grub.texi (terminfo): New subsection.
	(Invoking grub-terminfo): New chapter.
	From Tilmann Bubeck :
	* stage2/Makefile.am (noinst_HEADERS): Added terminfo.h and
	tparm.h.
	(libgrub_a_SOURCES): Added terminfo.c and tparm.c.
	(pre_stage2_exe_SOURCES): Likewise.
	* stage2/terminfo.c: New file.
	* stage2/terminfo.h: Likewise.
	* stage2/tparm.c: Likewise.
	* stage2/tparm.h: Likewise.
	* stage2/stage2.c (get_line_from_config): Fix handling of
	backslashes.
	* stage2/char_io.c (grub_putstr): New function.
	(grub_printf): Use grub_putstr.
	(substring): Add const into both arguments.
	* stage2/builtins.c [SUPPORT_SERIAL]: Include terminfo.h.
	[SUPPORT_SERIAL] (terminfo_func): New function.
	[SUPPORT_SERIAL] (builtin_terminfo): New variable.
	 (builtin_table) [SUPPORT_SERIAL]: Added a pointer to
	BUILTIN_TERMINFO.
	* stage2/serial.c (serial_gotoxy): Use ti_cursor_address.
	(serial_cls): Use ti_clear_screen.
	(serial_highlight): use ti_enter_standout_mode and
	ti_exit_standout_mode.
2002-11-30  Yoshinori K. Okuji  
	* stage2/disk_io.c (rawread): Make sure that SECTOR is valid.
	If not, set ERRNUM to ERR_GEOM and return zero. This check is
	critical when a partition table is corrupted.
2002-11-28  Yoshinori K. Okuji  
	* stage2/asm.S (console_cls): Write spaces to the entire screen
	instead of getting/setting the video mode, because this flickers
	the screen and is quite annoying, if using a LCD.
2002-11-15  Yoshinori K. Okuji  
	* docs/grub.texi (QNX): New subsection. Reported by
	Marian-Nicolae V. ION .
2002-10-28  Yoshinori K. Okuji  
	* grub/asmstub.c (console_translate_key): Deal with KEY_PPAGE
	and KEY_NPAGE.
	* stage2/serial.c (serial_translate_key_sequence): Added two new
	codes for Page Up and Page Down.
	* stage2/asm.S (translation_table): Added entries for KEY_PPAGE
	and KEY_NPAGE.
	* stage2/stage2.c (run_menu): Deal with Page Up and Page Down.
	Also recognize the right key for the selection of a boot entry.
	Suggested by Adam Lackorzynski .
2002-10-10  Jason Thomas  
	* stage2/builtins.c (setup_func): Added missing space to --force-lba
	option. Reported by Kenneth Crudup 
2002-10-06  Yoshinori K. Okuji  
	* stage2/asm.S (gateA20): Output a dummy command (0xff), as a
	workaround for USB keyboard hanging problem. Suggested by
	Hidetoshi Nishimaki .
2002-10-06  Yoshinori K. Okuji  
	* configure.in (falign_loop_flag): New variable. Set to if GCC
	supports `-falign-*'. If true, use `-falign-jumps',
	`-falign-loops' and `-falign-functions' instead of
	`-malign-jumps', `-malign-loops' and `-malign-functions',
	because `-malign-*' are obsolete in GCC 3.x. Reported by Jeremy
	Katz.
2002-09-13  Yoshinori K. Okuji  
	* stage2/serial.c (fill_input_buf): Take a new argument NOWAIT.
	If NOWAIT is true, don't loop.
	All callers are changed.
2002-09-08  Yoshinori K. Okuji  
	* configure.in (--disable-serial): Fix a typo in the
	description.
2002-08-20  Jason Thomas 
	Changed highlight state code for hercules, console and serial.
	The state was 0 - normal or 1 - highlight.
	The state is now defined using an enum called color_state.
	* stage2/term.h (color_state): New enum.
	(COLOR_STATE_STANDARD): Standard color to use when not using
	user defined.
	(COLOR_STATE_NORMAL): User defined normal color.
	(COLOR_STATE_HIGHLIGHT): User defined highlight color.
	(console_highlight): Renamed to console_setcolorstate.
	(serial_highlight): Renamed to serial_setcolorstate.
	(hercules_highlight): Renamed to hercules_setcolorstate.
	* stage2/hercules.c (herc_highlight_state): Removed.
	(herc_standard_color): New variable.
	(herc_color_state): Likewise.
	(herc_highlight): Renamed to herc_setcolorstate.
	(herc_setcolorstate): Added switch to handle new states.
	* stage2/console.c (console_highlight_state): Removed.
	(console_standard_color): New variable.
	(console_color_state): Likewise.
	(console_highlight): Renamed to console_setcolorstate.
	(console_setcolorstate): Added switch to handle new states.
	* stage2/serial.c (serial_highlight): Renamed to
	serial_setcolorstate.
	(serial_setcolorstate): Adjusted 'if' to suit new states.
	* grub/asmstub.c (console_highlight): Renamed to
	console_setcolorstate.
	(console_setcolorstate): Adjusted 'if' to suit new states.
	* stage2/stage2.c (print_entry): Set color states using new
	states.
	(print_border): Likewise.
	* stage2/stage2.c (run_menu): Reverse if (!) to if () for
	uniformitty.
2002-07-12  Yoshinori K. Okuji  
	* stage2/boot.c (load_image): Rewrite the Linux booting support
	radically. Now it should work even on a machine having, say,
	only 128KB, theoretically. Of course, GRUB itself doesn't work
	on such a system, though.
	(load_initrd): Initialize LH based on CUR_ADDR, because the
	location becomes dynamic.
	* stage2/shared.h (LINUX_MAX_SETUP_SECTS): Set to 64.
	(LINUX_HEAP_END_OFFSET): Set to (0x9000 - 0x200).
	(LINUX_STAGING_AREA): Removed.
	(LINUX_SETUP): Likewise.
	(LINUX_KERNEL): Likewise.
	(LINUX_KERNEL_MAXLEN): Likewise.
	(LINUX_SETUP_SEG): Likewise.
	(LINUX_INIT_SEG): Likewise.
	(LINUX_SETUP_STACK): Set to 0x9000.
	(LINUX_BZIMAGE_ADDR): New macro.
	(LINUX_ZIMAGE_ADDR): Likewise.
	(LINUX_OLD_REAL_MODE_ADDR): Likewise.
	(CL_MY_LOCATION): Removed.
	(CL_MY_END_ADDR): Likewise.
	(CL_BASE_ADDR): Likewise.
	(CL_MAGIC): Renamed to ...
	(LINUX_CL_MAGIC): ... this.
	(LINUX_CL_OFFSET): New macro.
	(LINUX_CL_END_OFFSET): Likewise.
	(LINUX_SETUP_MOVE_SIZE): Likewise.
	(struct linux_kernel_header): Change the type of the member
	"cmd_line_ptr" to char *.
	(linux_data_tmp_addr): Declared.
	(linux_data_real_addr): Likewise.
	* stage2/asm.S [!STAGE1_5] (linux_data_tmp_addr): New variable.
	[!STAGE1_5] (linux_data_real_addr): Likewise.
	[!STAGE1_5] (big_linux_boot): Copy the real mode part from
	LINUX_DATA_TMP_ADDR to LINUX_DATA_REAL_ADDR.
	* grub/asmstub.c (linux_data_tmp_addr): New variable.
	(linux_data_real_addr): Likewise.
2002-07-09  Yoshinori K. Okuji  
	
	From Mark Kettenis :
	* stage2/boot.c (load_image): Recognize newer FreeBSD kernels.
	* stage2/i386-elf.h (EI_OSABI): New macro.
	(EI_ABIVERSION): Likewise.
	(ELFOSABI_FREEBSD): Likewise.
	(EI_PAD): Set to 9.
2002-07-06  Yoshinori K. Okuji  
	* stage2/shared.h (boot_part_offset): Removed.
	
	* stage2/disk_io.c (set_bootdev): Copy the partition information
	here. Now this function can call rawread, so it can fail.
	(boot_part_offset): Removed.
	* stage2/builtins.c (boot_func): Don't copy the partition
	information here.
	(real_root_func): Check ERRNUM after calling set_bootdev.
2002-07-04  Yoshinori K. Okuji  
	* docs/grub.texi (Reporting bugs): Use the group name (i.e.
	grub) instead of the group id (i.e. 68) for the URL of the BTS.
2002-07-03  Yoshinori K. Okuji  
	* stage2/serial.c [!GRUB_UTIL] (inb): Added a delay into this
	function itself.
	[!GRUB_UTIL] (outb): Likewise.
	[!GRUB_UTIL] (serial_hw_put): Increase the timeout value, and
	don't call serial_hw_delay explicitly any longer.
	(fill_input_buf): Increase the maximum number of retries, reset
	the counter to zero after getting a valid character, and don't
	call serial_hw_delay explicitly any longer.
2002-07-03  Yoshinori K. Okuji  
	* stage2/serial.c [!GRUB_UTIL] (serial_hw_fetch): Fixed a typo.
	Reported by Ilguiz Latypov.
2002-07-01  Yoshinori K. Okuji 
	* Makefile.am (AUTOMAKE_OPTIONS): New variable. Specify the
	required Automake version explicitly.
	
2002-06-30  Yoshinori K. Okuji 
	* stage2/builtins.c [SUPPORT_SERIAL || SUPPORT_HERCULES]
	(terminal_func): Set CURRENT_TERM to each of selected terminals
	before calling grub_printf, and restore CURRENT_TERM after it.
	Reported by Ilguiz Latypov.
	Prepend a carriage return to the prompting message, because it
	is ugly that the same messages fulfill the whole screen.
2002-06-30  Yoshinori K. Okuji  
	* stage2/serial.c [!GRUB_UTIL] (serial_hw_fetch): Fixed the
	conditional statement. Reported by Ilguiz Latypov.
	
2002-06-24  Yoshinori K. Okuji  
	* MAINTENANCE: New file.
	
2002-06-15  Yoshinori K. Okuji  
	* stage2/disk_io.c [SUPPORT_NETBOOT] (GRUB): Defined.
	[SUPPORT_NETBOOT]: Include etherboot.h.
	[!STAGE1_5] (print_completions) [SUPPORT_NETBOOT]: When
	completing a disk name, if NETWORK_READY is true, add "nd" as a
	completion.
	
2002-06-15  Yoshinori K. Okuji  
	* stage2/fsys_xfs.c (le32): Don't use bswap, but use xchgb and
	roll, because 386 doesn't have bswap. Reported by Frode Vatvedt
	Fjeld .
	
2002-06-12  Yoshinori K. Okuji  
	* netboot/main.c (ifconfig): If GW is specified, clear out the
	ARP entry for the gateway. If SVR is specified, clear out the
	ARP entry for the server. Reported by Uwe Dannowski
	.
	
2002-06-12  Yoshinori K. Okuji  
	* util/grub-md5-crypt.in: Prompt to retype a password, and check
	if the passwords matches. Suggested by Matt Perry
	.
	Also, don't use Perl any longer, because *BSD's sh and GNU
	support ``read -r'', and GRUB doesn't support any other
	operating system anyway.
	
2002-06-12  Yoshinori K. Okuji  
	The terminal handling code is rewritten radically.
	
	* stage2/console.c: New file.
	* stage2/term.h: Likewise.
	
	* stage2/Makefile.am (noinst_HEADERS): Added term.h.
	(libgrub_a_SOURCES): Added serial.c.
	(pre_stage2_exec_SOURCES): Added console.c.
	* stage2/asm.S (console_putchar): Rewritten from scratch.
	[!STAGE1_5] (translation_table): New variable.
	[!STAGE1_5] (translate_keycode): New function.
	[!STAGE1_5] (console_getkey): Call translate_keycode.
	[!STAGE1_5] (console_checkkey): Likewise.
	[!STAGE1_5] (nocursor): Renamed to ...
	[!STAGE1_5] (console_nocursor): ... this.
	[!STAGE1_5] (console_set_attrib): Removed.
	* stage2/builtins.c: Include term.h.
	(terminal): Removed.
	(normal_color): Likewise.
	(highlight_color): Likewise.
	(cat_func): Display a question mark when a non-printable
	character was read.
	(terminal_func): Rewritten almost from scratch.
	* stage2/char_io.c: Include term.h.
	[!STAGE1_5] (auto_fill): Removed.
	[!STAGE1_5] (term_table): New variable.
	[!STAGE1_5] (current_term): Likewise.
	[!STAGE1_5] (real_get_cmdline): New function. The code was
	stolen from the previous version of get_cmdline.
	[!STAGE1_5] (get_cmdline): Rewritten from scratch.
	[!STAGE1_5] (translate_keycode): Removed.
	[!STAGE1_5] (getkey): Rewritten from scratch.
	[!STAGE1_5] (checkkey): Likewise.
	(grub_putchar): Likewise.
	[!STAGE1_5] (gotoxy): Likewise.
	[!STAGE1_5] (getxy): Likewise.
	[!STAGE1_5] (cls): Likewise.
	[!STAGE1_5] (nocursor): New function.
	[SUPPORT_SERIAL] (serial_getxy): Removed.
	[SUPPORT_SERIAL] (serial_gotoxy): Likewise.
	[SUPPORT_SERIAL] (serial_cls): Likewise.
	[SUPPORT_SERIAL] (serial_getxy): Likewise.
	[!STAGE1_5] (set_attrib): Likewise.
	* stage2/cmdline.c (init_cmdline): Set COUNT_LINES to -1.
	* stage2/common.c [!STAGE1_5] (err_list): Removed
	ERR_NEED_SERIAL and added ERR_DEV_NEED_INIT.
	* stage2/hercules.c: Rewritten almost from scratch.
	* stage2/hercules.h (herc_putchar): Removed.
	(herc_cls): Likewise.
	(herc_getxy): Likewise.
	(herc_gotoxy): Likewise.
	(herc_set_attrib): Likewise.
	* stage2/serial.c: Rewritten almost from scratch.
	* stage2/serial.h: Likewise.
	* stage2/shared.h [GRUB_UTIL] (DISP_UL): Set to the same value
	as VGA's.
	[GRUB_UTIL] (DISP_UR): Likewise.
	[GRUB_UTIL] (DISP_LL): Likewise.
	[GRUB_UTIL] (DISP_LR): Likewise.
	[GRUB_UTIL] (DISP_HORIZ): Likewise.
	[GRUB_UTIL] (DISP_VERT): Likewise.
	[GRUB_UTIL] (DISP_LEFT): Likewise.
	[GRUB_UTIL] (DISP_RIGHT): Likewise.
	[GRUB_UTIL] (DISP_UP): Likewise.
	[GRUB_UTIL] (DISP_DOWN): Likewise.
	(grub_error_t): Removed ERR_NEED_SERIAL.
	Added ERR_DEV_NEED_INIT.
	(normal_color): Removed.
	(highlight_color): Likewise.
	(console_cls): Removed, because this is declared in term.h.
	(console_getxy): Likewise.
	(console_gotoxy): Likewise.
	(console_putchar): Likewise.
	(console_getkey): Likewise.
	(console_checkkey): Likewise.
	(console_set_attrib): Removed.
	(set_attrib): Likewise.
	[GRUB_UTIL] (nocursor): Declared.
	(auto_fill): Removed.
	(terminal): Likewise.
	(TERMINAL_CONSOLE): Likewise.
	(TERMINAL_SERIAL): Likewise.
	(TERMINAL_HERCULES): Likewise.
	(TERMINAL_DUMB): Likewise.
	(translate_keycode): Likewise.
	* stage2/stage2.c: Include term.h.
	(print_entry): Rewritten from scratch.
	(print_entries): Likewise.
	(print_border): Likewise.
	(set_line): Removed.
	(set_line_normal): Likewise.
	(set_line_highlight): Likewise.
	
	* grub/Makefile.am (AM_CFLAGS): Added -DSUPPORT_HERCULES=1.
	
	* grub/asmstub.c: Don't include hercules.h. Include term.h.
	(console_current_color): New variable.
	(console_translate_key): New function.
	(console_checkkey): Rewritten from scratch.
	(console_getkey): Likewise.
	(console_putchar): Likewise.
	(console_set_attrib): Removed.
	(console_highlight): New function.
	(console_setcolor): Likewise.
	(console_nocursor): Likewise.
	(serial_getkey): Removed.
	(serial_checkkey): Likewise.
	(serial_putchar): Likewise.
	(serial_exists): Likewise.
	(serial_get_port): Likewise.
	(serial_init): Likewise.
	(serial_hw_fetch): New function.
	(serial_hw_put): Likewise.
	(serial_hw_delay): Likewise.
	(serial_hw_get_port): Likewise.
	(serial_hw_init): Likewise.
	(set_serial_device): Renamed to ...
	(serial_set_device): ... this.
	(herc_putchar): Renamed to ...
	(hercules_putchar): ... this.
	(herc_cls): Renamed to ...
	(hercules_cls): ... this.
	(herc_getxy): Renamed to ...
	(hercules_getxy): ... this.
	(herc_gotoxy): Renamed to ...
	(hercules_gotoxy): ... this.
	(hercules_highlight): New function.
	(hercules_setcolor): Likewise.
	(hercules_nocursor): Likewise.
	(herc_set_attrib): Removed.
	* grub/main.c: Include term.h.
	(main): If USE_CURSES is false, set CURRENT_TERM->FLAGS to
	TERM_NO_EDIT | TERM_DUMB. TERMINAL is not used any longer.
	
2002-06-01  Yoshinori K. Okuji  
	* docs/grub.texi (FAQ): Removed. See the GNU GRUB FAQ on the web
	instead.
	
2002-05-31  Yoshinori K. Okuji  
	* docs/grub.texi (Reporting bugs): Recommend using the BTS on
	Savannah rather than the list bug-grub.
	
2002-05-25  Yoshinori K. Okuji  
	* stage2/builtins.c (boot_func): Load the boot partition
	information, only if the address of the boot partition entry is
	set appropriately.
	(real_root_func): If ATTEMPT_MOUNT is false, call open_partition
	and if successful, call set_bootdev, to set the offset of the
	boot partition and the address of the boot paetition entry.
	IF ATTEMPT_MOUNT is false, don't set BOOTDEV. The BSD evil hack
	is useless with the command "rootnoverify" anyway.
	* stage2/disk_io.c (boot_part_addr): Initialized with zero
	explicitly, to emphasize that it is invalid.
	
2002-05-24  Yoshinori K. Okuji  
	* stage2/builtins.c (real_root_func): New function.
	(root_func): Just call real_root_func.
	(rootnoverify_func): Likewise.
	
2002-05-23  Yoshinori K. Okuji  
	* configure.in (AM_INIT_AUTOMAKE): Changed the version number to
	0.93.
	
2002-05-23  Yoshinori K. Okuji  
	Define the behavior of the boot loader when the load end address
	and the bss end address are zero in the Multiboot Specification,
	and add the support into GRUB. I've modified a patch from Yuri
	Zaporogets .
	
	* stage2/boot.c (load_image): In the case of Multiboot a.out
	kludge, set the load end address to the load address plus the
	size of the OS image file, if it is zero. Similarly, set the bss
	end address to the load end address, if it is zero.
	
	* util/mbchk.c (check_multiboot): Don't check if the load
	address is greater than or equal to the load end address, if the
	load end address is zero. Don't check if the load end address is
	greater than the bss end address, if the bss end address is
	zero. And, don't check if the load end address is less than or
	equal to the entry address, if the load end address is zero.
	
	* docs/multiboot.texi (The address fields of Multiboot header):
	Added descriptions about the behavior of the boot loader when
	LOAD_END_ADDR is zero and BSS_END_ADDR is zero.
	
2002-05-22  Yoshinori K. Okuji  
	* stage2/builtins.c (boot_func): If DEBUG is true, print
	BOOT_DRIVE and BOOT_PART_OFFSET.
	Don't set ERRNUM after rawread failed, because rawread should
	set ERRNUM itself.
	
2002-05-20  Yoshinori K. Okuji  
	* lib/device.c (read_device_map): Show an error message and exit
	abnormally, if MAP[DRIVE] has already been filled.
	* util/grub-install.in: If there is any dulicated entry, print
	an error message and exit abnormally.
	
2002-05-20  Yoshinori K. Okuji  
	* lib/device.c: Don't include linux/hdreg.h, linux/major.h,
	or linux/kdev_t.h.
	[__linux__] (HDIO_GETGEO): Defined.
	[__linux__] (hd_geometry): Likewise.
	[__linux__] (FLOPPY_MAJOR): Likewise.
	[__linux__] (MINORBITS): Likewise.
	[__linux__] (MAJOR): Likewise.
	
2002-05-08  Yoshinori K. Okuji  
	* netboot/fsys_tftp.c (tftp_read): Don't call buf_fill unless
	SIZE is positive.
	
2002-05-08  Yoshinori K. Okuji  
	* netboot/etherboot.h (ETH_MAX_MTU): Because some DHCP/BOOTP
	servers don't treat the maximum length the same as Etherboot,
	subtract the size of an IP header and that of an UDP header.
	
2002-04-30  Yoshinori K. Okuji  
	From Jean-Jacques Michel :
	* stage2/boot.c (load_image): For Linux, check if DATA_LEN is
	greater than MULTIBOOT_SEARCH. If that's true, read the rest
	after copying data already read in BUFFER.
	
2002-04-30  Yoshinori K. Okuji  
	* stage2/boot.c (load_image): For Linux, don't check if the
	length of protected mode code is greater than or equal to the
	expected length minus 16. Instead, just check if no error
	occurred. That was problematic, because memdisk has no protected
	mode code. Also, I don't see what the magic number 16 was for.
	
2002-04-29  Yoshinori K. Okuji  
	* stage2/builtins.c [SUPPORT_SERIAL] (terminal_func): Added a
	new option ``--silent''. This suppresses messages, if specified.
	
2002-04-29  Yoshinori K. Okuji  
	* config.guess: New upstream version.
	* config.sub: Likewise.
	
2002-04-20  Yoshinori K. Okuji  
	* netboot/config.c (PCI_NIC) [INCLUDE_DAVICOM]: Fix typos.
	Reported by Julien Perrot .
	
2002-04-17  Yoshinori K. Okuji  
	* stage2/builtins.c [SUPPORT_SERIAL] (terminal_func): Set
	COUNT_LINES to -1, to disable the pager.
	
2002-04-16  Yoshinori K. Okuji  
	* docs/grub.texi (Obtaining and Building GRUB): Update the link
	to the binutils site.
2002-04-06  Pavel Roskin  
	* util/grub-install.in: Fix hardcoded /dev/hda1.
2002-04-06  Yoshinori K. Okuji  
	* stage2/builtins.c [GRUB_UTIL] (dump_func): New function.
	[GRUB_UTIL] (builtin_dump): New variable.
	(builtin_table) [GRUB_UTIL]: Added a pointer to BUILTIN_DUMP.
	* util/grub-install.in: Make sure that GRUB reads the same
	images as the host operating system by comparing the result of
	running the command "dump" with the contents of the OS file.
	
2002-04-04  Yoshinori K. Okuji  
	* stage2/builtins.c (setup_func): Don't embed a drive number, if
	unnecessary.
	
2002-03-29  Yoshinori K. Okuji  
	* docs/grub.texi (General commands): Added ``pager'' into the
	menu.
	(pager): New subsection.
	(terminal): Added a description about the option
	``--lines=LINES''.
	* configure.in (AC_INIT_AUTOMAKE): Set the version number to
	0.92.
	
2002-03-26  Yoshinori K. Okuji  
	* netboot/eepro100.c (eepro100_probe): Increase the delay at the
	initialization.
	
2002-03-26  Yoshinori K. Okuji  
	* stage2/boot.c (linux_mem_size): New variable.
	(load_image): Check a mem= option and set LINUX_MEM_SIZE to the
	specified memory size, if any. Otherwise, to zero. When an
	overflow is detected, use LINUX_INITRD_MAX_ADDRESS instead.
	(load_initrd): If LINUX_MEM_SIZE is non-zero, use it instead of
	the actual memory size.
	* stage2/char_io.c (safe_parse_maxint): Use ERR_NUMBER_OVERFLOW
	instead of ERR_NUMBER_PARSING, when an overflow occurs.
	* stage2/common.c [!STAGE1_5] (err_list): Added
	ERR_NUMBER_OVERFLOW.
	* stage2/shared.h (ERR_NUMBER_OVERFLOW): New constant.
	
2002-03-24  Yoshinori K. Okuji  
	* stage2/stage2.c (run_menu): Call cls outside the loop to run
	scripts.
	* stage2/cmdline.c (run_script): Prompt a user's intervention,
	only when FALLBACK_ENTRY is negative.
	
2002-02-11  Pavel Roskin  
	* util/grub-install.in (find_device): New function - find block
	device for given file or directory.  Resolve symlinks to fix
	problem on Linux with devfs and old device names in /etc/fstab.
	Use find_device() for root_device, bootdir_device and
	grubdir_device.
2002-02-08  Yoshinori K. Okuji  
	* grub/main.c (OPT_NO_PAGER): New macro.
	(longopts): Added an entry for "--no-pager".
	(usage): Added a description about "--no-pager".
	(main): In case of OPT_NO_PAGER, set USE_PAGER to zero. The same
	thing is done with OPT_BATCH, because the pager is just harmful
	in batch mode.
	
2002-02-08  Yoshinori K. Okuji  
	* stage2/builtins.c (help_func): Show all the commands runnable
	with the command-line interface, if "--all" is specified.
	
2002-02-08  Yoshinori K. Okuji  
	An internal pager is implemented.
	
	* stage2/builtins.c (pager_func): New function.
	(builtin_pager): New variable.
	(terminal_func): New option, "--lines=LINES" is added. If this
	option is specified, set MAX_LINES to the value. Otherwise, set
	MAX_LINES to 24.
	(vbeprobe_func): Remove the pager code specific to this
	function.
	(builtin_table): Added a pointer to BUILTIN_PAGER.
	* stage2/char_io.c (max_lines) [!STAGE1_5]: New variable.
	(count_lines) [!STAGE1_5]: Likewise.
	(use_pager) [!STAGE1_5]: Likewise.
	(grub_putchar) [!STAGE1_5]: if C is a newline and COUNT_LINES is
	not -1, count up the number of lines. If it exceeds the maximum
	number of lines minus 2, show a message and wait for input of
	return key. "minus 2" is to reserve space for the message
	printed by this internal pager.
	* stage2/cmdline.c (enter_cmdline): If USE_PAGER is true, set
	COUNT_LINES to zero, before running a command, and reset
	COUNT_LINES to -1 after that.
	* stage2/shared.h (max_lines) [!STAGE1_5]: Declared.
	(count_lines) [!STAGE1_5]: Likewise.
	(use_pager) [!STAGE1_5]: Likewise.
	
2002-02-08  Yoshinori K. Okuji  
	* stage2/fsys_jfs.c (jfs_read) [STAGE1_5]: Set and reset
	DISK_READ_FUNC even in Stage 1.5.
	* stage2/fsys_xfs.c (xfs_read) [STAGE1_5]: Likewise.
	* stage2/stage1_5.c (saved_sector): Initialized with -1.
	(cmain): Check if SAVED_SECTOR was set appropriately after
	reading the second sector of Stage 2. If SAVED_SECTOR is not
	set (i.e. it is equal to -1), print an error and stop.
	
2002-02-05  Yoshinori K. Okuji  
	* stage2/builtins.c (setup_func): Add a VSTa fs entry into
	STAGE1_5_MAP.
	
2002-02-05  Yoshinori K. Okuji  
	* stage2/shared.h (BUILTIN_HELP_LIST): New macro. Used for
	commands whose help messages are listed when no argument is
	specified to the command "help".
	* stage2/builtins.c (builtin_blocklist): Added the attribute
	BUILTIN_HELP_LIST.
	(builtin_boot): Likewise.
	(builtin_bootp): Likewise.
	(builtin_cat): Likewise.
	(builtin_chainloader): Likewise.
	(builtin_color): Likewise.
	(builtin_configfile): Likewise.
	(builtin_device): Likewise.
	(builtin_dhcp): Likewise.
	(builtin_displayapm): Likewise.
	(builtin_displaymem): Likewise.
	(builtin_find): Likewise.
	(builtin_geometry): Likewise.
	(builtin_halt): Likewise.
	(builtin_help): Likewise.
	(builtin_hide): Likewise.
	(builtin_ifconfig): Likewise.
	(builtin_initrd): Likewise.
	(builtin_kernel): Likewise.
	(builtin_makeactive): Likewise.
	(builtin_map): Likewise.
	(builtin_md5crypt): Likewise.
	(builtin_module): Likewise.
	(builtin_modulenounzip): Likewise.
	(builtin_partnew): Likewise.
	(builtin_parttype): Likewise.
	(builtin_quit): Likewise.
	(builtin_rarp): Likewise.
	(builtin_reboot): Likewise.
	(builtin_root): Likewise.
	(builtin_rootnoverify): Likewise.
	(builtin_serial): Likewise.
	(builtin_setkey): Likewise.
	(builtin_setup): Likewise.
	(builtin_terminal): Likewise.
	(builtin_testvbe): Likewise.
	(builtin_tftpserver): Likewise.
	(builtin_unhide): Likewise.
	(builtin_uppermem): Likewise.
	(builtin_vbeprobe): Likewise.
	(help_func): When no argument is specified, if the last entry
	was at the left column, print an extra newline.
	
2002-02-05  Yoshinori K. Okuji  
	* stage2/shared.h (BUILTIN_HIDDEN): Renamed to ...
	(BUILTIN_NO_ECHO): ... this. The old name was too difficult to
	see _what_ was hidden.
	
2002-02-05  Yoshinori K. Okuji  
	* netboot/misc.c (twiddle): Go back to the bar progress, copied
	from etherboot-5.0.5/src/misc.c. Execute the code only if DEBUG
	is true.
	
2002-02-05  Yoshinori K. Okuji  
	* stage2/builtins.c (displaymem_func): Use hex digits to display
	for consistency.
	
2002-02-04  Jason Thomas  
	From Denis Kitzman  :
	* stage2/Makefile.am (libgrub_a_CFLAGS): Fixed a typo.
	FSYS_XFS, USE_MD5_PASSWORDS, SUPPORT_SERIAL, and
	SUPPORT_HERCULES did not get defined.
2002-01-20  Yoshinori K. Okuji  
	* util/grub-image.in: Check stage2 instead of stage2.c to
	determine where the script is invoked, because srcdir may not
	be used for the compilation.
	
2002-01-20  Yoshinori K. Okuji  
	* grub/asmstub.c (console_putchar): When not using curses,
	ignore a carriage return, because a newline in Unix is only a
	line feed.
	
2002-01-18  Klaus Reichl  
	* stage2/fsys_minix.c (minix_dir): Fixed bug getting filenames
	with MAXNAMELEN right.
	* stage2/char_io.c (get_cmdline, cl_refresh): If TERMINAL_DUMB
	section is always 0.
	Line is only cleared if !TERMINAL_DUMB.
	* grub/main.c (use_curses): Initialize to 0 if !HAVE_LIBCURSES
	(main): Check for curses use and set terminal to dumb if we
	don't use it (helps for --batch and variants of non-curses
	setup).
2002-01-15  Yoshinori K. Okuji  
	* configure.in (AM_INIT_AUTOMAKE): The version number is
	upgraded to 0.91.
	
2002-01-15  Yoshinori K. Okuji  
	* docs/grub.texi (Preset Menu): New chapter.
	
2002-01-15  Yoshinori K. Okuji  
	* docs/grub.texi: Added some text about JFS and XFS.
	
2002-01-08  Yoshinori K. Okuji  
	* grub/main.c (use_preset_menu): New variable.
	(OPT_PRESET_MENU): New macro.
	(longopts): Added an entry for "--preset-menu".
	(usage): Added a description for "--preset-menu". Also, change
	the first character of the description for "--device-map" to
	lower case for consistency.
	(main): Set USE_PRESET_MENU to 1 in the case of OPT_PRESET_MENU.
	* stage2/shared.h (use_preset_menu): Declared.
	* stage2/stage2.c [PRESET_MENU_STRING || SUPPORT_DISKLESS]
	(open_preset_menu) [GRUB_UTIL]: If USE_PRESET_MENU is false,
	return zero immediately.
2002-01-08  Yoshinori K. Okuji  
	* stage2/common.c [SUPPORT_DISKLESS]
	(setup_diskless_environment): Removed. The feature is moved to
	the preset menu.
	* stage2/stage2.c [SUPPORT_DISKLESS] (preset_menu): Set to the
	string "bootp\n".
	[SUPPORT_DISKLESS] (preset_menu_offset): Defined, as if
	PRESET_MENU_STRING is defined.
	[SUPPORT_DISKLESS] (open_preset_menu): Likewise.
	[SUPPORT_DISKLESS] (read_from_preset_menu): Likewise.
	[SUPPORT_DISKLESS] (close_preset_menu): Likewise.
	
2002-01-06  Yoshinori K. Okuji  
	The preset menu has a priority over the configuration file.
	Suggested by Christoph Plattner.
	
	* stage2/stage2.c [PRESET_MENU_STRING] (open_preset_menu):
	Check if PRESET_MENU is not NULL.
	[PRESET_MENU_STRING] (close_preset_menu): Set PRESET_MENU to
	NULL.
	(cmain): New internal function, reset. This function resets
	AUTO_FILL, CONFIG_LEN, MENU_LEN, NUM_ENTRIES, CONFIG_ENTRIES,
	MENU_ENTRIES and call init_config.
	Try to open the preset menu first, and try to open the
	configuration file, only if that failed.
	Even if the preset menu was read, try to open the configuration
	file. This time, opening the preset menu never succeed, because
	close_preset_menu ensures that the preset menu is available at
	most once.
	
2002-01-06  Yoshinori K. Okuji  
	* netboot/misc.c (inet_aton): Don't check if *P is an asterisk,
	if I is 3. Reported by Rick (his real name and address are
	unknown).
	
2002-01-03  Yoshinori K. Okuji  
	Update the netboot stuff to Etherboot-5.0.5.
	
	* configure.in (--enable-3c590): Removed. This was a mistake.
	(--enable-davicom): New option.
	(--enable-eepro): Likewise.
	(--enable-natsemi): Likewise.
	(--enable-ni5010): Likewise.
	(--enable-sis900): Likewise.
	(--enable-w89c840): Likewise.
	(--enable-3c509-hack): Removed.
	(--enable-ns8390-force-16bit): Likewise.
	* netboot/Makefile.am (libdrivers_a_SOURCES): Added timer.c and
	timer.h.
	(EXTRA_libdrivers_a_SOURCES): Added davicom.c, eepro.c, fa311.c,
	natsemi.c, ni5010.c, sis900.c, sis900.h, tlan.c and w89c840.c.
	(EXTRA_DIST): Added sis900.txt.
	(3c595_drivers): Remove 3c590.o from this.
	(davicom_drivers): New variable.
	(eepro_drivers): Likewise.
	(natsemi_drivers): Likewise.
	(ni5010_drivers): Likewise.
	(sis900_drivers): Likewise.
	(w89c840_drivers): Likewise.
	(3c590_o_CFLAGS): Removed.
	(davicom_o_CFLAGS): New variable.
	(eepro_o_CFLAGS): Likewise.
	(natsemi_o_CFLAGS): Likewise.
	(ni5010_o_CFLAGS): Likewise.
	(sis900_o_CFLAGS): Likewise.
	(w89c840_o_CFLAGS): Likewise.
	* netboot/davicom.c: New file, from Etherboot-5.0.5.
	* netboot/eepro.c: Likewise.
	* netboot/natsemi.c: Likewise.
	* netboot/ni5010.c: Likewise.
	* netboot/sis900.c: Likewise.
	* netboot/sis900.h: Likewise.
	* netboot/sis900.txt: Likewise.
	* netboot/timer.c: Likewise.
	* netboot/timer.h: Likewise.
	* netboot/w89c840.c: Likewise.
	* netboot/fa311.c: Likewise.
	* netboot/tlan.c: Likewise.
	
	* netboot/3c509.c: Copied from Etherboot-5.0.5.
	* netboot/3c509.h: Likewise.
	* netboot/3c595.c: Likewise.
	* netboot/3c90x.c: Likewise.
	* netboot/3c90x.txt: Likewise.
	* netboot/cards.h: Likewise.
	* netboot/cs89x0.c: Likewise.
	* netboot/depca.c: Likewise.
	* netboot/eepro100.c: Likewise.
	* netboot/epic100.c: Likewise.
	* netboot/i82586.c: Likewise.
	* netboot/lance.c: Likewise.
	* netboot/linux-asm-string.h: Likewise.
	* netboot/nic.h: Likewise.
	* netboot/ns8390.c: Likewise.
	* netboot/ns8390.h: Likewise.
	* netboot/otulip.c: Likewise.
	* netboot/pci.h: Likewise.
	* netboot/rtl8139.c: Likewise.
	* netboot/sk_g16.c: Likewise.
	* netboot/smc9000.c: Likewise.
	* netboot/tiara.c: Likewise.
	* netboot/tulip.c: Likewise.
	* netboot/via-rhine.c: Likewise.
	
	* netboot/config.c: Applied a diff between Etherboot-4.6.4 and
	Etherboot-5.0.5 manually.
	* netboot/main.c: Likewise.
	* netboot/pci.c: Likewise.
	* netboot/etherboot.h: Rewritten mostly from scratch, based on
	the same file in Etherboot-5.0.5.
	* netboot/misc.c: Likewise.
	* netboot/osdep.h: Likewise.
	* netboot/fsys_tftp.c (GRUB): Defined.
	(buf_fill): Use rfc2131_sleep_interval instead of rfc951_sleep.
	* stage2/builtins.c [SUPPORT_NETBOOT] (GRUB): Defined.
	(boot_func) [SUPPORT_NETBOOT]: Call cleanup_net.
	* stage2/cmdline.c [SUPPORT_DISKLESS] (GRUB): Defined.
	* stage2/common.c [SUPPORT_DISKLESS] (GRUB): Likewise.
	
2002-01-02  Jeremy Katz  
	
	* util/grub-install.in: Support using mktemp as well as tempfile
	for secure temporary file creation.
2002-01-02  Jeremy Katz  
	
	* stage2/md5.c (md5_password): Ensure the password exists before
	trying to check against the md5 crypted version.
2001-12-30  Yoshinori K. Okuji  
	* stage1/stage1.S: Don't call INT 13, AH=48H, because it is
	difficult to call this function with the workaround implemented
	in the previous change due to the size limit of Stage 1.
	
	(lba_mode) [NO_BUGGY_BIOS_IN_THE_WORLD]: Don't check the
	geometry explicitly. This shouldn't be harmful, as INT 13,
	AH=42H should take care of it, and if you cannot read Stage 2
	even with LBA because of a geometry problem, you can never read
	it.
	* stage2/start.S (lba_mode) [NO_BUGGY_BIOS_IN_THE_WORLD]:
	Likewise.
	
2001-12-30  Yoshinori K. Okuji  
	* stage2/bios.c (get_diskinfo): Clear out the structure DRP
	before calling get_diskinfo_int13_extensions, because the Ralf
	Brown's Interrupt List says that Dell machines using PhoenixBIOS
	4.0 Release 6.0 fail, if DRP.FLAGS is not zero. Setting the
	entire structure to zero may be overkill, but it should be safe.
	
	* stage2/char_io.c [STAGE1_5] (grub_memset): Defined.
	
2001-12-30  Yoshinori K. Okuji  
	From John Goerzen :
	* util/grub-install.in (convert): Added NetBSD support.
	
2001-12-30  Yoshinori K. Okuji  
	* util/grub-install.in: Set GRUB_PREFIX and BOOTDIR to "/grub"
	and "${rootdir}" respectively in NetBSD.
	
2001-12-30  Yoshinori K. Okuji  
	* stage2/builtins.c (builtin_geometry): Add extra space
	characters into the long description.
	(builtin_kernel): Likewise.
	(builtin_vbeprobe): Likewise.
	
2001-12-19  Yoshinori K. Okuji  
	From Michael Sullivan :
	* stage1/stage1.S (real_start): Added a workaround for AST BIOS,
	because it clobbers %dl with INT 13, AH=41H.
2001-12-19  Yoshinori K. Okuji  
	* stage2/fsys_fat.c (fat_read): Fix the contradictory comment.
	Reported by Filip Van Raemdonck .
	
2001-12-11  Yoshinori K. Okuji  
	* stage2/builtins.c (displayapm_func): Don't use multi-line
	string literals but string concatenation instead, to suppress
	warnings from gcc-3.0.x.
	* stage2/cmdline.c (print_cmdline_message): Likewise.
	* util/mbchk.c (usage): Likewise.
	
	* stage2/smp-imps.c (imps_read_config_table): Add a break
	statement after the label ``default''.
	
	* util/mbchk.c: Include  for the prototype of exit.
	* stage2/serial.c (serial_port): Initialize with 0 instead of
	-1, as an invalid value, because SERIAL_PORT is unsigned. This
	change shouldn't affect anything.
	(serial_exists): For the above change, check SERIAL_PORT with 0
	instead of -1.
	
2001-12-10  Yoshinori K. Okuji  
	* stage2/shared.h (ERR_NO_DISK_SPACE): New constant.
	* stage2/common.c (err_list): Added an entry for
	ERR_NO_DISK_SPACE.
	* docs/grub.texi (Stage2 errors): Added the description.
	* stage2/builtins.c (embed_func): Use ERR_NO_DISK_SPACE instead
	of ERR_DEV_VALUES when the spare space is too small. Suggested
	by Eric Mumpower .
	
2001-12-10  Yoshinori K. Okuji  
	* grub/asmstub.c: Include .
	(grub_stage2) [HAVE_LIBCURSES]: If USE_CURSES is true, ignore
	the signal SIGWINCH. Reported by Christian Hudon
	.
2001-11-29  Yoshinori K. Okuji  
	From Jason Thomas:
	* stage2/disk_io.c (set_partition_hidden_flag): Complete rewrite
	of this function which now supports logical partitions.
	
2001-11-12  Yoshinori K. Okuji  
	* docs/grub.texi: The copyright of this file is only held by
	Free Software Foundation, Inc., as Erich Boleyn has assigned his
	copyright to the FSF.
	* stage1/stage1.S: Likewise.
	* stage2/asm.S: Likewise.
	* stage2/boot.c: Likewise.
	* stage2/builtins.c: Likewise.
	* stage2/char_io.c: Likewise.
	* stage2/cmdline.c: Likewise.
	* stage2/common.c: Likewise.
	* stage2/disk_io.c: Likewise.
	* stage2/fat.h: Likewise.
	* stage2/filesys.h: Likewise.
	* stage2/freebsd.h: Likewise.
	* stage2/fsys_ext2fs.c: Likewise.
	* stage2/fsys_fat.c: Likewise.
	* stage2/fsys_ffs.c: Likewise.
	* stage2/gunzip.c: Likewise.
	* stage2/i386-elf.h: Likewise.
	* stage2/mb_header.h: Likewise.
	* stage2/mb_info.h: Likewise.
	* stage2/pc_slice.h: Likewise.
	* stage2/shared.h: Likewise.
	* stage2/stage1_5.c: Likewise.
	* stage2/stage2.c: Likewise.
	* stage2/start.S: Likewise.
	
2001-11-07  Yoshinori K. Okuji  
	* stage2/builtins.c (terminal_func) [!SUPPORT_SERIAL]: Disable
	the wait code, as it is usable only when serial support is on.
	Reported by Karl Hammar .
	
2001-10-27  Yoshinori K. Okuji  
	JFS and XFS support is added.
	
	From Serguei Tzukanov :
	* configure.in (--disable-jfs): New option.
	(--disable-xfs): Likewise.
	* stage2/Makefile.am (noinst_HEADERS): Added jfs.h and xfs.h.
	(libgrub_a_SOURCES): Added fsys_jfs.c and fsys_xfs.c.
	(libgrub_a_CFLAGS): Added -DFSYS_JFS=1 and -DFSYS_XFS=1.
	(pkgdata_DATA): Added jfs_stage1_5 and xfs_stage1_5.
	(noinst_PROGRAMS): Added jfs_stage1_5.exec and
	xfs_stage1_5.exec.
	(pre_stage2_exec_SOURCES): Added fsys_jfs.c and fsys_xfs.c.
	(jfs_stage1_5_exec_SOURCES): New variable.
	(jfs_stage1_5_exec_CFLAGS): Likewise.
	(jfs_stage1_5_exec_ASFLAGS): Likewise.
	(jfs_stage1_5_exec_LDFLAGS): Likewise.
	(xfs_stage1_5_exec_SOURCES): Likewise.
	(xfs_stage1_5_exec_CFLAGS): Likewise.
	(xfs_stage1_5_exec_ASFLAGS): Likewise.
	(xfs_stage1_5_exec_LDFLAGS): Likewise.
	* stage2/builtins.c (setup_func): Add items for JFS and XFS into
	STAGE1_5_MAP.
	* stage2/disk_io.c (fsys_table): Added entries for JFS and XFS.
	* stage2/filesys.h [FSYS_JFS] (FSYS_JFS_NUM): Set to 1.
	[FSYS_JFS] (jfs_mount): Declared.
	[FSYS_JFS] (jfs_read): Likewise.
	[FSYS_JFS] (jfs_dir): Likewise.
	[FSYS_JFS] (jfs_embed): Likewise.
	[!FSYS_JFS] (FSYS_JFS_NUM): Set to 0.
	[FSYS_XFS] (FSYS_XFS_NUM): Set to 1.
	[FSYS_XFS] (xfs_mount): Declared.
	[FSYS_XFS] (xfs_read): Likewise.
	[FSYS_XFS] (xfs_dir): Likewise.
	(NUM_FSYS): Added FSYS_JFS_NUM and FSYS_XFS_NUM.
	* stage2/shared.h (STAGE2_ID_JFS_STAGE1_5): New macro.
	(STAGE2_ID_XFS_STAGE1_5): Likewise.
	[FSYS_JFS] (STAGE2_ID): Set to STAGE2_ID_JFS_STAGE1_5.
	[FSYS_XFS] (STAGE2_ID): Set to STAGE2_ID_XFS_STAGE1_5.
	* stage2/fsys_jfs.c: New file.
	* stage2/fsys_xfs.c: Likewise.
	* stage2/jfs.h: Likewise.
	* stage2/xfs.h: Likewise.
2001-10-27  Yoshinori K. Okuji  
	* stage2/apm.S: Always disconnect from APM. Written by Erich
	Stefan Boleyn.
	* util/Makefile.am (noinst_DATA): Removed.
	(EXTRA_DIST): Likewise.
	
2001-10-14  Gordon Matzigkeit  
	* configure.in: Explicitly call _AM_DEPENDENCIES(CC) for the
	benefit of older Autoconfs.
2001-10-13  Yoshinori K. Okuji  
	* netboot/fsys_tftp.c (tftp_read): Move the unused data
	forwards, only if AMT is more than zero. If AMT is not positive,
	subtract BUF_READ from SAVED_FILEPOS and set BUF_READ to zero,
	to skip the whole buffer. Reported by Frank Mehnert.
	
2001-10-13  Yoshinori K. Okuji  
	Don't use get_diskinfo_floppy. Reported by Ben Liblit
	.
	
	* stage2/asm.S (get_diskinfo_floppy): Removed (by cpp).
	* stage2/bios.c (get_diskinfo_floppy): Removed.
	(get_diskinfo): Don't call get_diskinfo_floppy any longer.
	
2001-10-13  Yoshinori K. Okuji  
	Based on a patch from Jeremy Katz :
	* docs/grub.texi (Stage2 errors): Added documentation on the
	error number 33 (Serial device not configured).
	* grub/asmstub.c (serial_exists): New function.
	* stage2/serial.c (serial_exists): Likewise.
	* stage2/serial.h (serial_exists): New prototype.
	* stage2/shared.h (grub_error_t): ERR_NEED_SERIAL is added.
	* stage2/builtins.c (terminal_func) [SUPPORT_SERIAL]: If a
	serial device is not configured yet, restore the terminal and
	set ERRNUM to ERR_NEED_SERIAL.
	* stage2/common.c (err_list): Added an item for ERR_NEED_SERIAL.
	
2001-10-13  Yoshinori K. Okuji  
	From Jason Thomas :
	* util/grub-install.in (convert): Add support for DAC960.
	From Adrian Phillips :
	* lib/device.c (get_dac960_disk_name): New function.
	(init_device_map) [__linux__]: Add support for DAC960.
	
2001-10-11  Jochen Hoenicke  
	* stage2/fsys_reiserfs.c (reiserfs_super_block): Updated
	to better match recent reiserfs versions.
	(reiserfs_mount): Handle cases where journal can't be found,
	e.g. journal on another disk or unexpected journal parameters.
	In that case the journal isn't used.
	
2001-10-10  Jochen Hoenicke  
	* stage2/fsys_reiserfs.c (reiserfs_mount):  Don't look at
	the superblock field s_journal_block_count anymore.  It used
	to contain 0, it never contained a valid value, and now I
	have a report that it can contain an invalid value.
	Bug reported by Jim Caley