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).

2000-07-03    <tytso@snap.thunk.org>

	* ct_c.awk: Work around a bug in gawk 3.05

	* mk_cmds.sh.in: Allow the build system to override the standard
		location for finding the ct_c.* files by setting the
		_SS_DIR_OVERRIDE environment variable.

	* Makefile.in: Use _SS_DIR_OVERRIDE to make sure we get the
		version in the source tree.

2000-05-25    <tytso@snap.thunk.org>

	* Makefile: Add hack dependency rule so that parallel makes work
		correctly. 

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

	* execute_cmd.c (ss_execute_line): Fix memory leak; we weren't
		freeing the argv array.

	* 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-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

Mon Jan  4 00:05:14 1999  Theodore Y. Ts'o  <tytso@mit.edu>

	* mk_cmds.sh.in (TMP): Fixed portability bug in shell script; we
		were depending on a bash'ism.

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

	* Release of E2fsprogs 1.13

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

	* mk_cmds.sh.in: Fix error message so that it says mk_cmds's
		template files instead of compile_et's template files.

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

	* Release of E2fsprogs 1.12

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

	* Makefile.in: Install the ct_c.awk and ct_c.sed files in
		$(datadir)/ss (i.e., /usr/share/ss) directory.  Change
		to use new installation directory variables
		convention.  Fix uninstall rules to take $(DESTDIR)
		into account.

	* mk_cmds.sh.in: Look in $(datadir)/ss for ct_c.awk and
		ct_c.sed; if not found, look in the build directory.  Add
		error checking for non-existent input file.

Thu Aug 14 08:17:22 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (install): Fix rm command to use $(DESTDIR)
		appropriately.

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

	* Release of E2fsprogs 1.11

Wed Jun  4 15:04:03 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (install): Install the ss_err.h header file out of
		the build directory instead of the source directory (since
		it is a constructed file).

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

Wed Mar 12 21:54:32 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* help.c, pager.c, ss.h: Don't use "extern int errno", but use
		#include <errno.h> instead.

Thu Jan  2 00:16:03 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* parse.c: Put in an include of string.h

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

Fri Aug 30 22:36:48 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* invocation.c (ss_create_invocation): Change function prototype
 		of invocation so that the first two arguments are const
 		char *, and that the info_ptr is a void *, not a char *.

	* ss.h: Added declaration of ss_execute_line()

Sat Aug 10 00:17:14 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* listen.c (ss_listen): Fix -Wall flames.

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

	* Release of E2fsprogs version 1.04

Thu May 16 10:04:09 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (INSTALL_HFILES): Install the correct header files
		so that /usr/include/ss/ss.h is actually usable!

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

Wed Oct 25 11:58:20 1995    <tytso@rsts-11.mit.edu>

	* ss_internal.h: Removed malloc, realloc, free definitions, and
		#include <stdlib.h> instead.

Mon Sep  4 21:46:00 1995  Remy Card  <card@bbj>

	* Makefile.in: Added support for BSD shared libraries.
		(distclean): Use the -f option when removing files.

Fri Aug 18 15:15:09 1995  Theodore Y. Ts'o  <tytso@dcl>

	* Makefile.in (mk_cmds): Remove usage of $<, since it's not
		portable. 

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

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

Thu Aug 10 14:23:31 1995  Remy Card  <card@bbj>

	* Makefile.in (distclean): Remove mk_cmds.sh.

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

	* mk_cmds.sh.in: Remove the old .c file before moving the new file
		into place.

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

	* Makefile.in (clean): Don't remove mk_cmds.sh, since it's built
		from the configure script.

Tue Jul 11 20:47:46 1995    <tytso@rsx-11.mit.edu>

	* help.c (ss_help): Use malloc instead of alloca for maximal
		portability.  Check return value of malloc before using
		buffer.  Allocate memory when printing usage message.

Thu Jun 15 23:46:16 1995  Remy Card  <card@bbj>

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

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

	* mk_cmds.sh.in: Use SS_DIR instead of srcdir to determine the
		location of the ss directory.

Thu Jun  8 13:18:48 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* help.c (ss_help): Use alloca to allocate space for filenames
	instead of fixed buffers.
	* error.c (ss_error, & includes): Change the selection of
	varargs/stdarg to work with configure.
	* pager.c: Include <errno.h> if possible.
	* parse.c: Ditto.
	* request_tbl.c: Ditto.

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

Sat Mar 11 18:14:52 1995  Theodore Y. Ts'o  <tytso@localhost>

	* Makefile.in (DLL_INSTALL_DIR): Install libss in /lib, since it's
		needed by debugfs (which is installed in /sbin).


