2005-07-07  Release Manager

	* GCC 4.0.1 released.

2005-04-20  Release Manager

	* GCC 4.0.0 released.

2004-12-02  Richard Sandiford  <rsandifo@redhat.com>

	* configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
	* configure, aclocal.m4, Makefile.in: Regenerate.

2004-11-15  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am: Remove -no-dependencies.
	* Makefile.in: Regenerate.

2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am: Define ACLOCAL_AMFLAGS.
	* acinclude.m4: Remove unnecessary sinclude.
	* aclocal.m4, Makefile.in, configure: Regenerate (autoreconf 1.9.3).

2004-09-23  Tom Tromey  <tromey@redhat.com>

	* jartool.c (extract_jar): Unconditionally read extra data in the
	entry header; don't read it after the file contents.

2004-08-11  Kelley Cook  <kcook@gcc.gnu.org>

	PR bootstrap/16164
	* Makefile.am: Force fastjar.info to be built in build directory.
	* Makefile.in: Regenerate.

2004-07-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am: Rename jar binary to fastjar.
	* Makefile.in: Regenerate.
	* fastjar.texi: Rename references to jar binary with fastjar.

2004-07-19  Bryce McKinlay  <mckinlay@redhat.com>

	* jartool.c (main): Ensure that only one of ftruncate and _chsize
	is used.

2004-07-11  Bryce McKinlay  <mckinlay@redhat.com>

	PR 16472
	* configure.ac: Check for ftruncate() and _chsize().
	* jartool.c (main): Use _chsize if ftruncate not available.
	* configure, config.h.in: Rebuilt.

2004-07-09  Richard Sandiford  <rsandifo@redhat.com>

	* jartool.c (find_entry, looks_like_dir): Remove inline spec.

2004-07-07  Matthias Klose  <doko@debian.org>

	* Makefile.am (jar_CPPFLAGS): Add AM_CPPFLAGS.
	* Makefile.in: Regenerate.

2004-07-06  Matthias Klose  <doko@debian.org>

	* Makefile.in: Regenerate.
	* fastjar.texi: Update for '-u'.
	
2004-07-06  Casey Marshall <csm@gnu.org>

	PR 7854
	* Makefile.am
	(jar_SOURCES): added shift.c, shift.h.
        (jar_CPPFLAGS): define WITH_SHIFT_DOWN.

        * compress.c
        Added FSF copyright.
        (write_data): new function.
        (compress_file): call write_data.

        * jartool.c
        Updated copyright year.
        (progname): new variable.
        (end_of_entries): new variable.
        (main): open and read file when updating.
        (find_entry): new function.
        (looks_like_dir): new function.
        (read_entries): new function.
        (make_manifest): added parameter `updating'.
        Call `add_file_to_jar' with `updating'.
        (add_to_jar_with_dir): added parameter `updating'.
        Call `add_to_jar' with `updating'.
        (add_to_jar): added parameter `updating'.
        Call `add_file_to_jar' with `updating'.
        Don't add directories if they already exist.
        (add_file_to_jar): added parameter `updating'.
        Update entries if they already exist.

        * jartool.h
        Added #ifndef __FASTJAR_JARTOOL_H__.
        (struct zipentry): added `flags'.

        * shift.c: new file.

        * shift.h: new file.

        * zipfile.h
        (CEN_FLAGS): new constant.

2004-07-05  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am: Silence two automake warnings.
	* Makefile.in: Regenerate.

2004-06-25  Kelley Cook  <kcook@gcc.gnu.org>

	PR other/15194
	* configure.ac: Add check for long long.
	* jartool.h: Check for long long before using it.
	* configure: Regenerate
	* config.h.in: Regenerate.

2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* acinclude.m4: Quote first argument of AC_DEFUNs.
	* aclocal.m4: Regenerate with automake 1.8.
	* Makefile.in: Likewise.
	* configure: Regenerate.
	* .cvsignore: New file.

2004-04-12  Kelley Cook  <kcook@gcc.gnu.org>

	PR bootstrap/14905
	* configure.ac: Parse --enable-generated-files-in-srcdir.
	* Makefile.am: Copy man and info files to srcdir if requested.
	* configure: Regenerate.
	* Makefile.in Regenerate.

2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac: Bump AC_PREREQ to 2.59.
	* configure: Regenerate.

2004-03-09  Hans-Peter Nilsson  <hp@axis.com>

	* configure: Regenerate for config/accross.m4 correction.

2004-01-09  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.in: Rename file to ...
	* configure.ac: ... this.  Add in AC_PREREQ(2.57)
	* config.h.in: Regenerate.
	* aclocal.m4: Regenerate.
	* Makefile.in: Regenerate.

2004-01-07  Andreas Tobler  <a.tobler@schweiz.ch>

	* jartool.c (make_manifest): Fix off-by-one bug when creating
	an empty MANIFEST.MF.

2003-12-01  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am: Define AM_MAKINFOFLAGS.  Remove Automake 1.4 hack.
	* Makefile.in: Regenerate with automake 1.7.6 & autoconf 2.57 tools.
	* aclocal.m4, config.h.in, configure: Likewise.
	* install-sh, missing, mkinstalldirs, stamp-h.in: Remove.

2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>

	* .cvsignore: Delete.

2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am (my_make_i_flags): Add $(srcdir) and update comment
	to match.
	(fastjar.info): Update target to write to build directory.
	(%.1): New implicit rule from a .pod file.
	(jar.1): Delete.
	(grepjar.1): Delete.
	(jar.pod): New intermediate rule.
	(grepjar.pod): Likewise.
	* Makefile.in: Regenerate.

2003-08-13  Matthias Klose  <doko@debian.org>

	* fastjar.texi: License manual under the GPL.
	* Makefile.am: Remove reference to fdl.texi
	* Makefile.in: Regenerate

2003-07-29  Nathanael Nerode  <neroden@gcc.gnu.org>

	* mkinstalldirs: Import autoconf 2.57 / automake 1.7 version.

2003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* README: Note that FastJar is not part of GCC.

2003-07-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR java/9532
	* jartool.c (add_to_jar): Return 1 on failure to open file.
	Split out -C case to:
	* jartool.c (add_to_jar_with_dir): New function.

2003-06-15  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR java/9532
	* jartool.c (main) Give proper error messages with -C, and
	check for missing arguments properly.  Send error messages
	to stderr.
	* jartool.c (add_to_jar): Make getcwd() call portable,
	and check for error return.

2003-03-30  Joseph S. Myers  <jsm@polyomino.org.uk>

	* fastjar.texi: Remove @ at start of file.

2003-03-10  Mohan Embar  <gnustuff@thisiscool.com>

	* dostime.c: add #include <stddef.h> for definition of NULL

2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>

	* fastjar.texi: Update to GFDL 1.2.

2003-01-31  Daiki Ueno  <ueno@unixuser.org>

	* jartool.c (extract_jar): Don't lseek to skip extra fields.
	(consume): If the stream is seekable, do lseek.

2003-01-28  Ranjit Mathew  <rmathew@hotmail.com>

	* jargrep.c: Include xregex.h from libiberty instead of
	system regex.h for better portability.

2003-01-21  Ranjit Mathew  <rmathew@hotmail.com>

	* jartool.c (list_jar): Terminate the 'ascii_date' buffer
	with a '\0' to guard against the case where the formatted
	time string is more than the size allowed by the buffer.

2003-01-14  Tom Tromey  <tromey@redhat.com>

	* config.h.in: Rebuilt.

2002-12-30  DJ Delorie  <dj@redhat.com>

	* Makefile.am (jar.1, grepjar.1): Protect against
	texi2pod/pod2man failing.
	* Makefile.in: Regenerated.

2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>

	* fastjar.texi: Include Cover Texts in man page.

2002-12-04  Jakub Jelinek  <jakub@redhat.com>

	* fastjar.texi (jar @direntry, grepjar @direntry): Add (fastjar).

2002-11-23  H.J. Lu <hjl@gnu.org>

	* acinclude.m4: Include ../config/accross.m4.
	(gcc_AC_COMPILE_CHECK_SIZEOF): Removed.
	(gcc_AC_EXAMINE_OBJECT): Removed.
	(gcc_AC_C_COMPILE_ENDIAN): Removed.
	* aclocal.m4; Rebuild.

	* configure.in: Replace AC_C_BIGENDIAN with AC_C_BIGENDIAN_CROSS.
	Replace AC_CHECK_SIZEOF with AC_COMPILE_CHECK_SIZEOF.
	* configure: Likewise.

2002-11-21  Ranjit Mathew <rmathew@hotmail.com>

	* jartool.c (extract_jar): Use "open" with O_BINARY instead of
	"creat" to create extracted files.

2002-11-11  Tom Tromey  <tromey@redhat.com>

	* dostime.c (dos2unixtime): Mask for seconds is 0x1f.  Correctly
	compute month.
	(unix2dostime): Handle years before 1980.  Correctly compute month
	and day of month.

2002-11-10  Jakub Jelinek  <jakub@redhat.com>

	* jartool.c (add_to_jar): Only compare file to jarfile if jarfile is
	non-NULL.

	* configure.in (AC_CHECK_HEADERS): Add limits.h.
	* configure, config.h.in: Rebuilt.

2002-11-07  Tom Tromey  <tromey@redhat.com>

	* dostime.c: Rewrote from scratch.
	* dostime.h (dostime): Removed.

2002-10-20  Tom Tromey  <tromey@redhat.com>

	* jartool.c: Use mode 0666 when opening new file.

2002-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* jargrep.c (chk_wrd): Remove unused variable(s).
	* jartool.c (main, create_central_header, list_jar): Likewise.

2002-10-15  Ranjit Mathew  <rmathew@hotmail.com>

	* configure, config.h.in: Rebuilt.
	* configure.in: Call gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG.

2002-09-11  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (TEXINFO_TEX): New macro.
	(info_TEXINFOS): Likewise.
	(fastjar_TEXINFOS): Likewise.
	(man_MANS): Likewise.
	(EXTRA_DIST): Likewise.
	(my_makei_flags): Likewise.
	(fastjar.info): New rule.
	(fastjar_TEXINFOS): Don't mention `$(srcdir)'.
	(TEXINFO_TEX): Likewise.
	(AUTOMAKE_OPTIONS): Added `cygnus'.

2002-09-11  Matthias Klose  <doko@debian.org>

	* Makefile.am: Revert the previous patch.
	* Makefile.in: Regenerated.

2002-09-10  Matthias Klose  <doko@debian.org>

	* fastjar.texi: New.
	* Makefile.am: Support building info docs and manpages.
	* Makefile.in: Regenerated.
	* configure.in: Set gcc_version.
	* configure: Regenerated.
	* jargrep.c: Update usage and help strings.

2002-09-09  Tom Tromey  <tromey@redhat.com>

	* jartool.c (mkdir): Define.
	* config.h.in: Rebuilt.
	* aclocal.m4, configure: Rebuilt.
	* acinclude.m4: New file.  Copied gcc_AC_COMPILE_CHECK_SIZEOF,
	gcc_AC_EXAMINE_OBJECT, and fastjar_AC_COMPILE_C_BIGENDIAN from
	aclocal.m4.

2002-09-04  Tom Tromey  <tromey@redhat.com>

	From greenrd@hotmail.com:
	* jartool.c (list_jar): Correctly determine when new `filename'
	buffer must be allocated.  Fixes PR java/7830.

2002-06-03  Geoffrey Keating  <geoffk@redhat.com>

	* configure.in: Support cross-compiling.
	* configure: Regenerate.
	* aclocal.m4 (gcc_AC_COMPILE_CHECK_SIZEOF): New.
	(gcc_AC_EXAMINE_OBJECT): New.
	(fastjar_AC_COMPILE_C_BIGENDIAN): New.

2002-03-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* jartool.c (expand_options): Handle tar-style argument list with a
	leading "-".

2002-02-23  Anthony Green  <green@redhat.com>

	* jartool.c (main): Fix handling of -C.

2002-01-30  Tom Tromey  <tromey@redhat.com>

	* jartool.c (main): NULL-terminate new_argv.  Pass 0 as argument
	to init_args.

2002-01-11  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (AUTOMAKE_OPTIONS): New macro.

2002-01-09  Tom Tromey  <tromey@redhat.com>

	For PR libgcj/5303:
	* jargrep.h: Removed RCS keywords.
	(GVERSION): Removed.
	* configure, Makefile.in, config.h.in: Rebuilt.
	* configure.in: Added AM_MAINTAINER_MODE.
	Don't look for getopt.h.  Use `fastjar' as package name.
	* Makefile.am (INCLUDES): Look in ../include.
	(LIBIBERTY): New macro.
	(jar_LDADD): Use it.
	(jar_DEPENDENCIES): Likewise.
	(grepjar_LDADD): Likewise.
	(grepjar_DEPENDENCIES): Likewise.
	* jargrep.c: Removed RCS keywords.  Always include getopt.h.
	(LONG_OPT): New macro.
	(OPT_HELP): Likewise.
	(main): Use getopt_long.  Let getopt print invalid argument
	message.  Handle --help.  Use version().
	(version): New function.
	(optarg, optind): Don't declare.
	(option_vec): New global.
	(help): New function.
	(Usage): Updated to GNU standards.
	* jartool.c: Removed RCS keywords.  Include getopt.h.
	(LONG_OPT): New macro.
	(OPT_HELP): Likewise.
	(options): New global.
	(help): New function.
	(usage): Print a single line.
	(version): New function.
	(expand_options): New function.
	(main): Use getopt_long and expand_options.  Fail if `-u'
	specified.  Changed handling of -f, -m, -V options.
	(OPTION_STRING): New macro.
	(version_string): Removed.

2001-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR bootstrap/5117
	* configure.in (AC_CHECK_HEADERS): Check for stdlib.h.
	* Makefile.am: Move grepjar to bin_PROGRAMS.
	* config.h.in: Regenerated.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.
	* stamp-h.in: Regenerated.
	* jargrep.c: Eliminate some signed/unsigned and default
	uninitialized warnings. Use HAVE_STDLIB_H instead of
	STDC_HEADERS macro.
	* jartool.c: Likewise.
	* compress.c: Likewise.

2001-09-17  Tom Tromey  <tromey@redhat.com>

	For PR java/4295:
	* aclocal.m4, configure, Makefile.in: Rebuilt.
	* configure.in: Added AC_EXEEXT.

2001-10-12  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* jatool.c (extract_jar): Account for null termination when determining
	whether to expand "filename".

2001-08-28  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* jartool.c (add_to_jar): Return 1 if `stat' initialy failed.
	Fixes PR java/3949.

2001-08-27  Tom Tromey  <tromey@redhat.com>

	* jartool.c (jarfile): Remove length limitation.
	(main): Use jt_strdup when initializing jarfile.

2001-07-04  Tom Tromey  <tromey@redhat.com>

	Modified from patch by Julian Hall <jules@acris.co.uk>:
	* jartool.c (errno): Conditionally declare.
	(O_BINARY): Conditionally define.
	(main): Use open, not creat.  Use O_BINARY everywhere.
	(make_manifest): Use O_BINARY.
	(add_to_jar): Likewise.

2001-06-28  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.in: Accept --with-system-zlib.  Fixes PR java/3441.

2001-05-15  Per Bothner  <per@bothner.com>

	* Makefile.am (bin_PROGRAMS):  Renamed from "fastjar" to "jar".

2001-05-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* jartool.c (jt_strdup): New function.
	(get_next_arg): Use jt_strdup instead of strdup.

2001-01-21  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (bin_PROGRAMS): Remove grepjar.
	(EXTRA_PROGRAMS): New macro.

2000-12-28  Robert Lipe <robertl@sco.com>

	* jartool.c (MAXPATHLEN): Provide if not defined.

2000-12-15  Tom Tromey  <tromey@redhat.com>
	    Kelley Cook <kelleycook@home.com>

	* jargrep.c: Include getopt.h if it exists.
	(optind): Declare.
	* configure, config.h: Rebuilt.
	* configure.in: Check for getopt.h.

2000-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in (fastjar_warn_cflags): Set when using gcc.

	* Makefile.am (AM_CFLAGS): Set to @fastjar_warn_cflags@.

2000-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* compress.c: Include stdlib.h and compress.h.
	(rcsid): Delete.
	(report_str_error): Make static.
	(ez_inflate_str): Delete unused variable.  Add parens in if-stmt.
	(hrd_inflate_str): Likewise.

	* compress.h (init_compression, end_compression, init_inflation,
	end_inflation): Prototype void arguments.

	* dostime.c (rcsid): Delete.

	* jargrep.c: Include ctype.h, stdlib.h, zlib.h and compress.h.
	Make functions static.  Cast ctype function argument to `unsigned
	char'.  Add parens in if-stmts.  Constify.
	(Usage): Change into a macro.
	(jargrep): Remove unused parameter.

	* jartool.c: Constify.  Add parens in if-stmts.  Align
	signed/unsigned char pointers in functions calls using casts.
	(rcsid): Delete.
	(list_jar): Fix printf format specifier.
	(usage): Chop long string into bits.  Reformat.

	* pushback.c (rcsid): Delete.

2000-12-13  Tom Tromey  <tromey@redhat.com>

	* jartool.c (extract_jar): Use strchr, not index.

2000-12-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* install-defs.sh: Removed.

2000-12-10  Robert Lipe <robertlipe@usa.net>

	* jargrep.c (jargrep): Added null statement after case.

2000-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile: Removed.
	* Makefile.in: Rebuilt with `-i' and `--enable-foreign'.

Tue Nov 16 15:11:36 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile.am: New file.
	* Makefile.in: Rebuilt.
	* aclocal.m4: Likewise.
	* stamp-h.in: Likewise.
	* config.h.in: Likewise.
	* configure.in (AM_INIT_AUTOMAKE): Added.
	(AM_CONFIG_HEADER): Likewise.
	(AC_CHECK_HEADERS): Check for sys/param.h
	(AC_CHECK_LIB): Don't check for system's zlib.
	(AC_CHECK_FUNC): Removed system's zlib function checks.
	(ZDEPS. ZLIBS, ZINCS): Added.
	* configure: Rebuilt.
	* jartool.c (sys/param.h): Conditionally included or define MAXPATHLEN.
	(init_args, get_next_arg): New function.
	(use_explicit_list_only, read_names_from_stdin): New global
	(main): Parse new non standard options 'E' and '@', check and
	report their usage if necessary. Use init_args and get_next_arg.
	Fixed indentation.
	(add_to_jar): Don't read directory content if `use_explicit_list_only'.
	(usage): Added `-E' and `-@'.
	* jartool.h (VERSION): Macro removed.

Tue Nov 14 15:10:44 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* fastjar imported from sourceforge.net/projects/fastjar with
	Bryan Burns' permission. Check `CHANGES' for post import changes.
	* ChangeLog: Created.
	* NEWS: Likewise.
	* mkinstalldirs: Likewise.
	* COPYING: Likewise.
	* AUTHORS: Likewise.
