2000-07-13    <tytso@valinux.com>

	* Release of E2fsprogs 1.19

2000-07-04  Theodore Ts'o  <tytso@valinux.com>

	* Makefile.in: Remove explicit link of -lc in the shared library.
		(It shouldn't be necessary, and is harmful in some cases).

1999-11-19    <tytso@valinux.com>

	* Makefile.in (distclean): Remove TAGS and Makefile.in.old from
		the source directory.

1999-11-10    <tytso@valinux.com>

	* Release of E2fsprogs 1.18

1999-10-26    <tytso@valinux.com>

	* Release of E2fsprogs 1.17

1999-10-22    <tytso@valinux.com>

	* Release of E2fsprogs 1.16

1999-10-22    <tytso@valinux.com>

	* com_err.3: Fix to have correct #include path for com_err.h

1999-09-07    <tytso@rsts-11.mit.edu>

	* Updated copyright statements with permission of the original
		authors.

1999-07-18  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.15

1999-01-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.14

1998-12-15  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.13

1998-07-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.12

1998-06-27  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* et_h.awk, et_c.awk: Work around libm bug on the ARM.

1998-03-30  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in: Fix bug where my_dir was set incorrectly.  Install
		the et_c.awk and et_h.awk files in $(datadir)/et (i.e.,
		/usr/share/et) directory.  Change to use new
		installation directory variables convention.  Fix
		uninstall rules to take $(DESTDIR) into account.

	* compile_et.1: Change man page to reflect the fact that
		compile_et is now a awk/sed script, not a yacc script.

	* compile_et.sh.in: Look in $(datadir)/et for et_c.awk and
		et_h.awk; if not found, look in the build directory.  Add
		error checking for non-existent input file.

Fri Oct 31 01:14:41 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* et_c.awk, et_h.awk: Remove support for non STDC compilers, since
		the workarounds caused problems with the header file.

Sun Aug 10 09:40:54 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* error_table.h:
	* et_name.c (error_table_name): 
	* error_message.c (error_message.c): Make code be 16-bit safe.

Tue Jun 17 01:33:20 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.11

Thu Apr 24 12:16:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>

	* Release of E2fsprogs version 1.10

Thu Apr 17 12:23:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.09

Fri Apr 11 18:56:26 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.08

Wed Mar 12 13:32:05 1997  Theodore Y. Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs version 1.07

Tue Oct  8 02:02:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.06

Thu Sep 12 15:23:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.05

Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.04

Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.03

Wed Jan 31 11:06:08 1996    <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.02

Mon Sep  4 21:44:47 1995  Remy Card  <card@bbj>

	* Makefile.in: Added support for BSD shared libraries.

Sat Aug 12 03:11:28 1995  Remy Card  <card@bbj>

	* Makefile.in (install): Install static libraries in $(ulibdir)
		(/usr/lib on Linux) instead of $(libdir) (/lib on Linux).

Sat Aug  5 11:44:17 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the
		installation directories correctly.

Thu Jun 15 23:39:51 1995  Remy Card  <card@bbj>

	* Makefile.in: Added support for ELF shared libraries.
		Fixed typos in the compilation rules.
		(distclean): Added compile_et.sh.

Sat Jun 10 19:56:13 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* compile_et.sh.in: Use ET_DIR instead of srcdir to determine the
		location of the et directory.

Thu Jun  8 12:45:41 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* vfprintf.c (vfprintf): Only compile this function if vfprintf
	doesn't already exist and _doprnt does.

	* compile_et.sh: Moved to compile_et.sh.in.

	* Makefile.in: Rewritten to conform to GNU coding standards and
	support separate compilation directories.
	Don't preprocess compile_et.sh, as this is now done by configure.

Mon Nov  7 21:17:48 1994  Remy Card  <card@bbj>

	* Makefile: Added a dummy install target in case shared libraries
		are not built.

Thu Sep  8 22:33:33 1994    (tytso@rsx-11)

	* com_err.c (default_com_err_proc): Reversed order of \n\r to make
		jik happy.
