2017-01-02  Marcel Schaible <marcel.schaible@studium.fernuni-hagen.de>
	
	* gperf-3.1 released.

2016-12-29  Bruno Haible  <bruno@clisp.org>

	Make autogen.sh more user-friendly.
	* autogen.sh: Emit a message at the end, if everything succeeded.

2016-12-03  Bruno Haible  <bruno@clisp.org>

	Make Makefile.devel more useful for the users of the released tarball.
	* Makefile.devel (totally-clean): New target.
	* autogen.sh: Invoke it and 'all'.

2016-11-27  Bruno Haible  <bruno@clisp.org>

	Fix build with mingw.
	* README.windows: Augment PATH for mingw, so that it finds libstdc++.

2016-11-27  Bruno Haible  <bruno@clisp.org>

	Assume the available C compiler supports ANSI C. Remove K&R C cruft.
	* lib/getopt.h: Assume 'const' is defined. Use ANSI C prototypes.
	* lib/getopt.c: Assume 'const' is defined. Use ANSI C prototypes.
	Include <stddef.h>. Declare strcmp and strlen.
	* lib/getopt1.c: Assume 'const' and NULL are defined. Use ANSI C
	prototypes.
	* lib/getopt.h.patch: Remove file.
	* lib/getopt.c.patch: Remove file.
	* lib/Makefile.in (SOURCE_FILES): Remove them.
	* tests/jstest*.gperf: Assume 'const' is defined.
	* tests/test.c: Use ANSI C prototypes.
	(in_word_set): Fix prototype.
	* tests/test2.c: Use ANSI C prototypes.
	(in_word_set): Fix prototype.
	Reported by Erik Johansson at <https://savannah.gnu.org/patch/?7382>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Drop the inline specifiers from the generated lookup function.
	It's not adequate because
	- this lookup function is quite large in fact, not worth inlining,
	- with gcc -O0, it leads to link errors, see
	  <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41194#c2>
	- the hash function is 'static', the lookup function is non-static,
	  but references from non-static inline functions to static functions
	  and variables are forbidden, see ISO C 99 section 6.7.4.(3).
	* src/output.cc (Output::output_lookup_function): Don't emit an inline
	specifier.
	* tests/*.exp: Update.
	Reported by Sebastian Freundt and Sergii Strelkovskyi
	at <https://savannah.gnu.org/bugs/?37071>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Change mailing list address to <bug-gperf@gnu.org>.
	* src/output.cc (Output::output): Change bug report address to
	<bug-gperf@gnu.org>.
	* src/options.cc (Options::long_usage): Likewise.
	* README: Likewise.
	* doc/gperf.texi (Contributors): Likewise.
	* tests/*.{c,exp,out}: Update.
	Reported by Eric Blake <eblake@redhat.com>
	at <http://lists.gnu.org/archive/html/bug-gperf/2014-10/msg00000.html>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Change the 'len' parameter type to 'size_t'.
	* src/output.cc (output_upperlower_strncmp, output_upperlower_memcmp,
	Output::output_hash_function, Output::output_lookup_function,
	Output::output): Emit declarations with 'size_t len' instead of
	'unsigned int len'.
	* tests/*.exp: Update.
	* doc/gperf.texi (Output Format): Change declarations of 'hash' and
	'in_word_set'.
	* NEWS: Mention the change.
	Reported by Pedro Giffuni <pfg@FreeBSD.org>
	at <http://lists.gnu.org/archive/html/bug-gperf/2014-08/msg00000.html>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Use proper 'ar' program when cross-compiling or when AR is specified.
	* lib/configure.ac (AR): Determine through AC_CHECK_TOOL.
	* lib/Makefile.in (AR): Use value determined by 'configure'.
	Reported by György Andrasek <jurily@gmail.com>
	at <http://lists.gnu.org/archive/html/bug-gperf/2014-04/msg00000.html>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Avoid 'warning: cast from pointer to integer of different size'
	in output code on 64-bit native Windows platforms.
	* src/output.cc (output_keyword_entry): Cast pointer to 'size_t',
	not to 'long', before casting it further to 'int'.
	* tests/*.exp: Update.
	Reported at <https://savannah.gnu.org/bugs/?45330>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Don't use 'register' storage-class specifier in C++ output code.
	* src/output.cc (register_scs): New variable.
	(Output::Output): Initialize it.
	(output_upperlower_strcmp, output_upperlower_strncmp,
	output_upperlower_memcmp, Output::output_hash_function,
	Output::output_lookup_function_body, Output::output_lookup_function):
	Use it.
	Reported at <https://savannah.gnu.org/bugs/?44887>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Avoid 'warning: use of old-style cast' in output code.
	* src/output.h (Output::output_asso_values_index): New method
	declaration.
	* src/output.cc (Output::output_asso_values_index): New method,
	extracted from Output::output_asso_values_ref.
	(Output::output_asso_values_ref): Use it. In C++ mode, emit C++ style
	cast syntax.
	Reported at <https://savannah.gnu.org/bugs/?44887>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Avoid 'warning: implicit conversion changes signedness' in output code.
	* src/output.cc (Output::output_lookup_function_body): Emit declaration
	of 'key' as 'unsigned int', not 'int'. Optimize comparison accordingly.
	* tests/*.exp: Update.
	Reported at <https://savannah.gnu.org/bugs/?44887>.

2016-11-26  Bruno Haible  <bruno@clisp.org>

	Avoid 'warning: implicit conversion changes signedness' in output code.
	* src/output.cc (Output::output_hash_function): Emit declaration of
	'hval' as 'unsigned int', not 'int'.
	* tests/*.exp: Update.
	Reported at <https://savannah.gnu.org/bugs/?44887>.

2016-11-25  Bruno Haible  <bruno@clisp.org>

	Fix g++ -Wall warnings.
	* src/search.cc (Search::prepare, Search::find_positions,
	Search::optimize): Add braces in 'if (...) for (...)', to pacify
	g++ 4.6.3 warnings "suggest explicit braces to avoid ambiguous 'else'"
	(although there is no 'else'!).

2016-11-25  Bruno Haible  <bruno@clisp.org>

	Fix typo in autogen.sh, introduced on 2012-07-01.
	* autogen.sh: Fix typo.

2016-11-25  Bruno Haible  <bruno@clisp.org>

	Fix "make check" error on Mac OS X.
	* tests/Makefile.in (POSTPROCESS_FOR_MINGW): Run 'sed' in the C locale.
	This fixes an error "sed: RE error: illegal byte sequence" on Mac OS X
	when producing languages.out.
	Reported at <https://savannah.gnu.org/bugs/?45329>.

2016-11-23  Bruno Haible  <bruno@clisp.org>

	Update installation instructions for Windows.
	* README.windows: Assume a 64-bit Windows. Explain both 32-bit and
	64-bit builds. Revamp instructions for the MS Visual C/C++ tool chain
	and for Cygwin.

2016-11-23  Bruno Haible  <bruno@clisp.org>

	Drop the nickname "woe32".
	* README.windows: Renamed from README.woe32.
	* Makefile.in (SOURCE_FILES): Update.

2016-11-19  Bruno Haible  <bruno@clisp.org>

	doc: Prepare for possible use of GNU texi2any.
	* doc/Makefile.in (TEXI2ANY): New variable.
	(gperf_0.html): New rule.

2016-11-19  Bruno Haible  <bruno@clisp.org>

	doc: Don't generate Postscript-formatted doc by default.
	* doc/Makefile.in (all): Don't depend on 'ps'.

2014-10-15  Eric Blake  <eblake@redhat.com>

	doc: fix invalid use of @itemx
	* doc/gperf.texi (Output Details): Use correct macro.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Fix "make clean" with MSVC.
	With MSVC 9, a program is created together with a .manifest file.
	* src/Makefile.in (clean): Remove also the .manifest file.
	* tests/Makefile.in (clean): Remove also the .manifest files.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Update expected test results.
	* tests/test-6.exp: Expect to see --constants-prefix option.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Fix compilation error with MSVC.
	* src/output.cc: Include config.h.
	(DYNAMIC_ARRAY, FREE_DYNAMIC_ARRAY): New macros, copied from
	src/search.cc.
	(output_constant): Use them.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Remove old infrastructure for building with MSVC.
	* autogen.sh: Don't remove src/config.h.msvc.
	* Makefile.devel (src/config.h.msvc): Remove rule.
	(all): Don't depend on it.
	* src/Makefile.in (GENERATED_FILES): Remove config.h.msvc.
	* src/.gitignore: Remove config.h.msvc.
	* Makefile.msvc: Remove file.
	* Makefile.in (SOURCE_FILES): Remove Makefile.msvc.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Support for building with MSVC much like for Unix.
	* autogen.sh: Fetch also 'compile' and 'ar-lib'.
	* Makefile.in (IMPORTED_FILES): Add build-aux/compile, build-aux/ar-lib.
	* build-aux/.gitignore: Ignore also 'compile' and 'ar-lib'.
	* lib/Makefile.in: Use $(OBJEXT) where suitable.
	* README.woe32: Change instructions for compiling with MSVC.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Move build infrastructure files to build-aux/.
	* autogen.sh: Copy install-sh and mkinstalldirst into build-aux/.
	* configure.ac: Invoke AC_CONFIG_AUX_DIR.
	* Makefile.in (IMPORTED_FILES): Update.
	(distdir): Create subdirectories as needed.
	* doc/Makefile.in (MKINSTALLDIRS): Update.
	* src/Makefile.in (MKINSTALLDIRS): Update.
	* .gitgnore: Remove install-sh, mkinstalldirs.
	* build-aux/.gitignore: New file.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Distribute install-sh.
	* autogen.sh: Fetch also install-sh.
	* Makefile.in (IMPORTED_FILES): Add install-sh.
	* configure.ac: Remove hack with AC_CONFIG_AUX_DIR_DEFAULT.
	* .gitignore: Add install-sh.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Remove files distributed via gnulib from version control.
	* autogen.sh: Fetch mkinstalldirs from the gnulib repository.
	* mkinstalldirs: Remove file.
	* .gitignore: Add mkinstalldirs.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Remove autotools generated files from version control.
	* autogen.sh: New file.
	* configure: Remove file.
	* lib/configure: Remove file.
	* src/configure: Remove file.
	* tests/configure: Remove file.
	* doc/configure: Remove file.
	* src/config.h.in: Remove file.
	* src/config.h.msvc: Remove file.
	* src/config.h_vms: Remove file.
	* .gitignore: Ignore configure.
	* lib/.gitignore: New file.
	* src/.gitignore: New file.
	* tests/.gitignore: New file.
	* doc/.gitignore: Ignore configure.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Turn doc/gperf.1 into a distributed built file.
	* doc/gperf.1: Remove file.
	* Makefile.devel (doc/gperf.1): Remove rule.
	(all): Don't depend on it.
	* doc/Makefile.in (man, gperf.1, gperf.1-update): New rules.
	(all): Depend on man.
	(distdir): Depend on gperf.1-update.
	(GENERATED_FILES): Remove gperf.1.
	(DISTRIBUTED_BUILT_FILES): Add gperf.1.
	* doc/.gitignore: Add gperf.1.
	* configure (AC_INIT): Rely on doc/gperf.texi, not doc/gperf.1.
	* doc/configure (AC_INIT): Rely on gperf.texi, not gperf.1.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Remove distributed built files from version control.
	* doc/.gitignore: New file.
	* doc/gperf.info: Remove file.
	* doc/gperf.dvi: Remove file.
	* doc/gperf.ps: Remove file.
	* doc/gperf.pdf: Remove file.
	* doc/gperf.html: Remove file.
	* doc/gperf_toc.html, doc/gperf_[0-9].html, doc/gperf_[0-9][0-9].html:
	Remove files.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Allow editor backup files in git checkouts.
	* .gitignore: New file.

2012-07-01  Bruno Haible  <bruno@clisp.org>

	Create tarballs through an Automake-like "make dist" command.
	* Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New rule.
	(PACKAGE, VERSION, TAR, GZIP): New macros.
	(dist): New rule.
	* doc/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New rule.
	* lib/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New rule.
	* src/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New rule.
	* tests/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New rule.

2012-04-28  Bruno Haible  <bruno@clisp.org>

	* configure: Regenerated with autoconf-2.69.
	* doc/configure: Likewise.
	* lib/configure: Likewise.
	* src/configure: Likewise.
	* tests/configure: Likewise.

2011-01-16  Bruno Haible  <bruno@clisp.org>

	* src/options.cc (Options::parse_options): Bump copyright year.

	New option --constants-prefix.
	* src/options.h (Options): Add member functions get_constants_prefix,
	set_constants_prefix. Add member _constants_prefix.
	* src/options.icc (Options::get_constants_prefix): New functions.
	* src/options.cc (DEFAULT_CONSTANTS_PREFIX): New constant.
	(Options::long_usage): Document --constants-prefix option.
	(Options::Options): Initialize _constants_prefix member.
	(Options::set_constants_prefix): New function.
	(long_options): Add --constants-prefix option.
	(Options::parse_options): Handle --constants-prefix option.
	* src/input.cc (Input::read_input): Handle %define constants-prefix
	declaration.
	* src/output.cc (output_constant): New function.
	(Output::output_constants): Invoke it.
	(Output::output_lookup_function_body): Prefix each reference to a
	constant with the constants prefix.
	* doc/gperf.texi: Bump copyright year.
	(Gperf Declarations): Document %define constants-prefix.
	(Controlling Identifiers): New section.
	(Output Details): Document --constants-prefix option.
	* NEWS: Mention the changes.
	Reported by Julian Zubek <zubekj@gmail.com>.

2011-01-16  Bruno Haible  <bruno@clisp.org>

	* configure: Regenerated with autoconf-2.68.
	* doc/configure: Likewise.
	* lib/configure: Likewise.
	* src/configure: Likewise.
	* tests/configure: Likewise.

2010-07-31  Bruno Haible  <bruno@clisp.org>

	* configure: Regenerated with autoconf-2.67.
	* doc/configure: Likewise.
	* lib/configure: Likewise.
	* src/configure: Likewise.
	* tests/configure: Likewise.

2010-07-04  Bruno Haible  <bruno@clisp.org>

	* configure: Regenerated with autoconf-2.66.
	* doc/configure: Likewise.
	* lib/configure: Likewise.
	* src/configure: Likewise.
	* tests/configure: Likewise.
	* src/config.h.in: Likewise.
	* src/config.h.msvc: Likewise.
	* src/config.h_vms: Likewise.

2010-03-30  Bruno Haible  <bruno@clisp.org>

	Modernize README.woe32.
	* README.woe32: Mention the mingw and Cygwin environments.

2009-12-22  Eric Blake  <ebb9@byu.net>  (tiny change)

	Avoid gcc warnings on Cygwin.
	* lib/getopt.c (_getopt_internal): Add braces. Fix indentation.
	* tests/smtp.gperf: Cast arguments of <ctype.h> functions.
	* tests/test2.c: Include <io.h>.

2009-12-22  Bruno Haible  <bruno@clisp.org>

	Avoid g++ warnings.
	* src/options.cc (Options::print_options): Add parentheses.
	* src/output.cc (Output::output_lookup_array): Cast fprintf argument.

2009-12-22  Bruno Haible  <bruno@clisp.org>

	Support CPPFLAGS as mandated by GNU standards.
	* lib/Makefile.in (CPPFLAGS): Use autoconf determined value.
	* src/Makefile.in (CPPFLAGS): Likewise.
	* tests/Makefile.in (CPPFLAGS): Likewise.
	(check-c, check-ada, check-modula3, check-pascal, check-lang-utf8,
	test.$(OBJEXT), check-lang-ucs2, test2.$(OBJEXT), check-smtp): Use
	CPPFLAGS when compiling a .c file.
	(VALIDATE): Pass also CPPFLAGS.
	* tests/validate: Use CPPFLAGS when compiling a C or C++ file.

2009-12-20  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.info: Regenerated.
	* doc/gperf*.html: Likewise.
	* doc/gperf.dvi: Likewise.
	* doc/gperf.ps: Likewise.
	* doc/gperf.pdf: Likewise.
	* tests/*.exp: Update.

	Change the default language to ANSI-C.
	* src/options.cc (Options::long_usage): Mention new default language.
	(Options::Options): Change default of _option_word.
	(Options::set_language): Change fallback.
	* doc/gperf.texi (Gperf Declarations, Output Language): Mention new
	default language.
	* NEWS: Mention the change.
	Reported by Albert Cahalan <acahalan@gmail.com>.

	* src/version.cc (version_string): Bump to 3.1.
	* doc/gperf.texi: Bump version.

2009-12-20  Bruno Haible  <bruno@clisp.org>

	Allow processing the tests with parallel make.
	* tests/Makefile.in (check-link-c, check-link-c++): Remove rules.
	(test.$(OBJEXT), test2.$(OBJEXT)): New rules.
	(check-c): Add commands for building cout. Depend on test.$(OBJEXT).
	(check-ada, check-modula3, check-pascal, check-lang-utf8): Depend on
	test.$(OBJEXT).
	(check-lang-ucs2): Depend on test2.$(OBJEXT).
	Reported by Bryan Østergaard <kloeri@exherbo.org>.

2009-02-01  Brendan Kehoe  <brendan@zen.org>

	* gperf-3.0.4 released.
	* src/version.cc: Bump to 3.0.4.
	* tests/*.exp: Bump to 3.0.4 in header.
	* doc/gperf.1: Regenerate with gperf 3.0.4.
	* doc/gperf.texi: Adjust version.

	* doc/texinfo.tex: Update to copy from texinfo-4.13.

2009-02-01  Bruno Haible  <bruno@clisp.org>

	* tests/Makefile.in (LDFLAGS, OBJEXT, EXEEXT): New variables.
	(check-link-c, check-ada, check-modula3, check-pascal, check-lang-utf8,
	check-lang-ucs2): Use OBJEXT and LDFLAGS.
	(check-smtp): Use LDFLAGS.
	(clean): Use EXEEXT as suffix of programs to be removed.

	* aclocal.m4 (CL_PROG_INSTALL): Fix detection of broken AIX installbsd
	program.

	* tests/Makefile.in (clean): Remove *.dSYM directories left over by gcc
	on MacOS X 10.5.

	* src/options.cc (Options::parse_options): Bump copyright year.

2009-01-19  Bruno Haible  <bruno@clisp.org>

	Don't include the length in the hash function if all keywords have the
	same length.
	* src/search.h (Search): Add _hash_includes_len field.
	* src/search.cc (Search::prepare): Initialize it.
	(Search::count_duplicates_tuple, Search::count_duplicates_multiset,
	Search::prepare_asso_values, Search::find_asso_values,
	Search::compute_hash): Use it instead of !option[NOLENGTH].
	* src/output.h (Output): New field _hash_includes_len. Add it as
	constructor argument.
	* src/output.cc (Output::Output): Add hash_includes_len argument.
	(Output::output_hash_function): Use _hash_includes_len instead of
	!option[NOLENGTH].
	* src/main.cc (main): Pass _hash_includes_len from Search to Output.
	* tests/permut2.exp: Updated expected test result.
	* tests/permut3.exp: Likewise.
	* tests/permutc2.exp: Likewise.
	Reported by Behdad Esfahbod <behdad@behdad.org>.

2009-01-14  Bruno Haible  <bruno@clisp.org>

	* configure.ac: More consistent m4 quoting.
	* src/configure.ac: Likewise.
	* lib/configure.ac: Likewise.
	* tests/configure.ac: Likewise.
	* doc/configure.ac: Likewise.

2009-01-01  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.texi (Gperf Declarations): Mention the C99 standard.

2008-08-23  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.texi (Output Copyright): Reword more carefully.
	Suggested by Paul Jarc <prj@po.cwru.edu>.

2008-08-23  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.texi (Output Copyright): Adjust for GPLv3.

2008-08-23  Bruno Haible  <bruno@clisp.org>

	All source files are now under GPLv3+.
	* COPYING: Replace with GPLv3.
	* **/configure.ac, **/Makefile.*, **/*.h, **/*.c, **/*.cc, **/*.icc:
	Change copyright notice to GPLv3+.
	* src/options.cc (Options::parse_options): Update --version output
	accordingly.
	* doc/gperf.texi: Reference the GPLv3.
	* doc/gpl-3.0.texi: New file, copied from the gnulib git repository.
	* doc/gpl.texinfo: Remove file.
	* doc/Makefile.in: Update.

2008-05-06  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.texi: Set @firstparagraphindent.
	(Bibliography): Don't indent the entries.

2008-05-06  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.texi (Output Copyright): New section.
	Reported by Mike Ingrassia <michael.ingrassia@motorola.com> and
	Karice McIntyre <Karice_McIntyre@ca.ibm.com>.

2008-04-06  Bruno Haible  <bruno@clisp.org>

	* tests/Makefile.in: Use "LC_ALL=C tr" instead of "tr".

2007-09-08  Bruno Haible  <bruno@clisp.org>

	Change generated code to avoid a warning by GCC 4.2 that the meaning
	of __inline will be changed (!).
	* src/output.cc (Output::output_lookup_function): Emit the inline
	marker also for gcc-4.2 in c99 mode.
	* tests/c-parse.exp, tests/charsets.exp, tests/chill.exp,
	tests/cplusplus.exp, tests/gpc.exp, tests/incomplete.exp,
	tests/java.exp, tests/languages.exp, tests/modula2.exp,
	tests/objc.exp, tests/permut2.exp, tests/permut3.exp,
	tests/permutc2.exp, tests/test-4.exp: Update.
	Reported by Jim Meyering <jim@meyering.net>.

2007-09-08  Bruno Haible  <bruno@clisp.org>

	Allow creating the HTML documentation with texi2html or makeinfo.
	* doc/texi2html: New file, from GNU gettext.
	* doc/Makefile.in (TEXI2HTML): Invoke it.
	(gperf.html, gperf_toc.html): Don't pass option -expandinfo.
	* doc/gperf.texi (makeinfo): New variable.
	(dircategory, direntry): Enclose in @ifinfo.
	(Table of Contents): Move to the beginning except in TeX mode.

2007-04-30  Brendan Kehoe  <brendan@zen.org>

	* gperf-3.0.3 released.
	* src/version.cc: Bump to 3.0.3.
	* tests/*.exp: Bump to 3.0.3 in header.
	* doc/gperf.1: Regenerate with gperf 3.0.3.

2007-04-06  Bruno Haible  <bruno@clisp.org>

	Improve support for mingw.
	* tests/Makefile.in (check-c, check-ada, check-modula3, check-pascal,
	check-lang-utf8, check-lang-ucs2): Remove '\r' from output before diff.
	(POSTPROCESS_FOR_MINGW): New variable.
	(check-test): Use it to postprocess output before diff.

2007-04-04  Bruno Haible  <bruno@clisp.org>

	Support for newer GNU standards.
	* doc/configure.ac (mandir): Remove assignment.
	* doc/Makefile.in (datarootdir): New variable.
	(docdir, dvidir, psdir, pdfdir, htmldir): Use value determined by
	autoconf.
	* configure.ac: Require autoconf >= 2.60.
	* doc/configure.ac: Likewise.
	* lib/configure.ac: Likewise.
	* src/configure.ac: Likewise.
	* tests/configure.ac: Likewise.
	* configure: Regenerated with autoconf-2.61.
	* doc/configure: Likewise.
	* lib/configure: Likewise.
	* src/configure: Likewise.
	* tests/configure: Likewise.
	* src/config.h.in: Likewise.
	* src/config.h.msvc: Likewise.
	* src/config.h_vms: Likewise.

2007-04-04  Bruno Haible  <bruno@clisp.org>

	* doc/Makefile.in (MAKEINFO): Disable also the LC_MESSAGES and LC_ALL
	environment variables.

2007-04-04  Bruno Haible  <bruno@clisp.org>

	* configure.ac: Renamed from configure.in.
	* doc/configure.ac: Renamed from doc/configure.in.
	* lib/configure.ac: Renamed from lib/configure.in.
	* src/configure.ac: Renamed from src/configure.in.
	* tests/configure.ac: Renamed from tests/configure.in.
	* Makefile.devel: Update.
	* INSTALL: Update.

2007-03-31  Bruno Haible  <bruno@clisp.org>

	* tests/test.c (in_word_set): New declaration.
	* tests/test2.c (in_word_set): Likewise.

2007-03-31  Bruno Haible  <bruno@clisp.org>

	* src/options.cc (Options::parse_options): Bump copyright year.

2007-03-31  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.texi: Fix typo.

2007-03-31  Bruno Haible  <bruno@clisp.org>

	Change generated code after the meaning of __inline is changed in
	GCC 4.3.
	* src/output.cc (Output::output_lookup_function): Emit an inline
	marker that also works with gcc-4.3 in c99 or gnu99 mode.
	* tests/c-parse.exp, tests/charsets.exp, tests/chill.exp,
	tests/cplusplus.exp, tests/gpc.exp, tests/incomplete.exp,
	tests/java.exp, tests/languages.exp, tests/modula2.exp,
	tests/objc.exp, tests/permut2.exp, tests/permut3.exp,
	tests/permutc2.exp, tests/test-4.exp: Update.
	Reported by Bruce Korb <Bruce.Korb@gmail.com>.

2006-06-29  Brendan Kehoe  <brendan@zen.org>

	* gperf-3.0.2 released.

	* doc/Makefile.in (all): No longer depend on dvi.

2006-01-22  Brendan Kehoe  <brendan@zen.org>

	* doc/gperf.texi: Update copyright to be 1989-2006.
	(UPDATED): Change to 22 January 2006.
	* doc/gperf.1 (TH): Fix date.
	* configure.in: Update copyright years.
	* configure: Regenerate.
	* src/Makefile.in: Update copyright years.

	* doc/gperf.{dvi,ps,pdf}: Regenerated by manually invoking tex
	instead of trying to use texi2dvi, whose run of etex ends up
	actually always running pdfetex, thus always recreating gperf.pdf.

2006-01-13  Brendan Kehoe  <brendan@zen.org>

	* NEWS: Add note about #line directive fix.
	* doc/gperf.1: Regenerate with Makefile.devel.

	* doc/gperf.texi (UPDATED): Correct to be today.
	* doc: Regenerated by doing make in a configured tree.
	Requires makeinfo, texi2dvi, texi2pdf, and texi2html.

	* configure.in: Add AC_OBJEXT and AC_EXEEXT.
	* lib/Makefile.in (OBJEXT): Define for subst.
	(OBJECTS): Use $(OBJEXT) instead of '.o'.
	* src/Makefile.in: Make dependencies use $(OBJEXT).
	(OBJEXT, EXEEXT): Define for subst.
	(TARGETPROG): Add $(EXEEXT).
	(OBJECTS): Use $(OBJEXT) instead of '.o'.
	(clean): Remove *.$(OBJEXT) instead of *.o.

2006-01-13  Bruno Haible  <bruno@clisp.org>

	Fix #line directives for filenames containing backslashes.
	* src/output.cc (output_line_directive): New function.
	(output_keyword_entry, Output::output): Use it.
	Reported by Alexander <alexander.me@gmail.com>.

	* src/options.cc (Options::parse_options): Update years in --version
	output.

2005-08-29  Brendan Kehoe  <brendan@zen.org>

	* src/keyword.cc: Tweak comment to avoid nesting.

2005-08-27  Bruno Haible  <bruno@clisp.org>

	Fix missing ranlib detection when cross-compiling.
	* aclocal.m4 (CL_PROG_RANLIB): Remove macro.
	* lib/configure.in: Use AC_PROG_RANLIB instead of CL_PROG_RANLIB.

2005-07-30  Bruno Haible  <bruno@clisp.org>

	* src/version.cc: Bump version number to 3.0.2.
	* doc/gperf.texi: Likewise.
	* tests/c-parse.exp, tests/charsets.exp, tests/chill.exp,
	tests/cplusplus.exp, tests/gpc.exp, tests/incomplete.exp,
	tests/java.exp, tests/languages.exp, tests/modula2.exp,
	tests/objc.exp, tests/permut2.exp, tests/permut3.exp,
	tests/permutc2.exp, tests/test-4.exp: Update.

2005-07-30  Bruno Haible  <bruno@clisp.org>

	* src/positions.h: Add forward declarations of friend classes.
	Needed for compilation with g++ 4.0.

2004-08-22  Bruno Haible  <bruno@clisp.org>

	* tests/Makefile.in (check-lang-syntax): Add test for the
	--length-table-name option.
	* tests/test-6.exp: Update.

2004-08-21  Bruce Lilly <blilly@erols.com>

	* src/input.cc (Input::read_input): Accept length-table-name
	declaration.
	* src/options.h (Options::get_lengthtable_name,
	Options::set_lengthtable_name): New declarations.
	(Options): Add field _lengthtable_name.
	* src/options.icc (Options::get_lengthtable_name): New inline method.
	* src/options.cc (DEFAULT_LENGTHTABLE_NAME): New constant.
	(Options::long_usage): Document --length-table-name option.
	(Options::Options): Initialize _lengthtable_name field.
	(Options::~Options): Update.
	(Options::set_lengthtable_name): New method.
	(long_options): Add option --length-table-name.
	(Options::parse_options): Implement --length-table-name option.
	* src/output.cc (Output::output_keylength_table, output_switch_case,
	Output::output_lookup_function_body): Use option.get_lengthtable_name.
	* doc/gperf.texi (Gperf Declarations): Document %define
	length-table-name.
	(Output Details): Document --length-table-name option.

2003-06-12  Bruno Haible  <bruno@clisp.org>

	* gperf-3.0.1 released.

	* src/version.cc: Bump version number to 3.0.1.
	* doc/gperf.texi: Likewise.
	* tests/c-parse.exp, tests/charsets.exp, tests/chill.exp,
	tests/cplusplus.exp, tests/gpc.exp, tests/incomplete.exp,
	tests/java.exp, tests/languages.exp, tests/modula2.exp,
	tests/objc.exp, tests/permut2.exp, tests/permut3.exp,
	tests/permutc2.exp, tests/test-4.exp: Update.

2003-05-31  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.texi (User-supplied Struct): Mention the possibility of an
	abbreviated struct declaration.
	* src/input.cc (Input::read_input): Support struct declarations of the
	form "struct foo;".
	* tests/incomplete.gperf: New file.
	* tests/incomplete.exp: New file.
	* tests/Makefile.in (check-test): Check incomplete.gperf too.
	Reported by Rob Leslie <rob@mars.org>.

2003-05-20  Bruno Haible  <bruno@clisp.org>

	* doc/Makefile.in (gperf.ps): Don't use $< in a target rule.

2003-05-27  Bruno Haible  <bruno@clisp.org>

	* Makefile.vms (CC): Correct value.
	(getopt.obj, getopt1.obj, getline.obj, hash.obj): Don't set
	HAVE_CONFIG_H.

2003-05-17  Bruno Haible  <bruno@clisp.org>

	* Makefile.msvc (DEBUGFLAGS): New variable.
	(gperf.exe): Use it, and MFLAGS too.

2003-05-08  Bruno Haible  <bruno@clisp.org>

	* gperf-3.0 released.

2003-05-07  Bruno Haible  <bruno@clisp.org>

	* src/version.cc: Bump version number to 3.0.
	* doc/gperf.texi: Likewise.
	* tests/c-parse.exp, tests/charsets.exp, tests/chill.exp,
	tests/cplusplus.exp, tests/gpc.exp, tests/java.exp,
	tests/languages.exp, tests/modula2.exp, tests/objc.exp,
	tests/permut2.exp, tests/permut3.exp, tests/permutc2.exp,
	tests/test-4.exp: Update.

	* src/configure.in: Fix AC_INIT argument.

	* Makefile.devel (configure, lib/configure, src/configure,
	tests/configure, doc/configure): Use the newest autoconf.
	(src/config.h.in): Use the newest autoheader.

2003-05-03  Bruno Haible  <bruno@clisp.org>

	* doc/gperf.texi: Use two spaces as sentence separator, as recommended
	by the texinfo manual.

2003-04-12  Bruno Haible  <bruno@clisp.org>

	* doc/configure.in (mandir): Change default value.
	* doc/Makefile.in (docdir): Use datadir instead of prefix.
	* Makefile.msvc (datadir): New variable.
	(mandir, docdir): Use it instead of prefix.
	(install, installdirs): Update.
	* Makefile.vms (datadir): New variable.
	(mandir, docdir): Use it instead of prefix.
	(install, installdirs): Update.

2003-04-12  Bruno Haible  <bruno@clisp.org>

	* README.vms: New file.
	* Makefile.vms: New file.
	* Makefile.devel (src/config.h_vms): New rule.
	(all): Depend on it.

2003-03-19  Bruno Haible  <bruno@clisp.org>

	* src/input.cc (Input::read_input): Ignore comments at the beginning
	of the declarations section.
	* doc/gperf.texi (Controls for GNU indent): New section.
	Reported by Bruce Lilly <blilly@erols.com>.

2003-03-19  Bruno Haible  <bruno@clisp.org>

	* src/output.cc (Output::output_hash_function): Avoid lint warning if
	not all arguments of the hash function are used. Avoid lint warning
	for fallthrough in switch.
	* tests/c-parse.exp, tests/charsets.exp, tests/chill.exp,
	tests/cplusplus.exp, tests/java.exp, tests/languages.exp,
	tests/modula2.exp, tests/objc.exp: All /*FALLTHROUGH*/ to expected
	output.
	Reported by Bruce Lilly <blilly@erols.com>.

2003-03-01  Bruno Haible  <bruno@clisp.org>

	* src/options.h (Options::set_initializer_suffix): New declaration.
	* src/options.cc (Options::set_initializer_suffix): New method.
	* src/input.cc (Input::read_input): Recognize %define
	initializer-suffix.
	* doc/gperf.texi (Gperf Declarations): Document %define
	initializer-suffix.
	* NEWS: Update.

2003-02-26  Bruno Haible  <bruno@clisp.org>

	* Makefile.msvc: New file.
	* README.woe32: New file.
	* Makefile.devel (all): Depend on src/config.h.msvc.
	(src/config.h.msvc): New rule.

2003-01-07  Bruno Haible  <bruno@clisp.org>

	* src/input.h (Input::_charset_dependent): New field.
	* src/input.cc (Input::read_input): Also set _charset_dependent.
	* src/main.cc (main): Pass _charset_dependent from Input to Output.
	* src/output.h (Output::Output): Add charset_dependent argument.
	(Output::_charset_dependent): New field.
	* src/output.cc (Output::Output): Add charset_dependent argument.
	(Output::output): Provoke a compilation error if the execution
	character set doesn't match the expectations.
	* tests/c-parse.exp, tests/charsets.exp, tests/chill.exp,
	tests/cplusplus.exp, tests/gpc.exp, tests/java.exp,
	tests/languages.exp, tests/modula2.exp, tests/objc.exp,
	tests/permut2.exp, tests/permut3.exp, tests/permutc2.exp,
	tests/test-4.exp: Update.

	* src/options.cc (Options::long_usage): Change bug report address to
	<bug-gnu-gperf@gnu.org>.
	* tests/test-6.exp: Update.

	* src/output.cc (USE_DOWNCASE_TABLE): New macro.
	(output_upperlower_table): New function.
	(output_upperlower_strcmp, output_upperlower_strncmp,
	output_upperlower_memcmp): Emit gperf_downcase array accesses.
	(Output::output): Call output_upperlower_table.
	* tests/permutc2.exp: Update.

	* src/keyword-list.icc (KeywordExt_List::rest): Use a portable cast.
	(Only in GCC a cast of an lvalue is an lvalue.)

2003-01-01  Bruno Haible  <bruno@clisp.org>

	* src/options.cc (Options::parse_options): Update copyright year.

	* doc/gperf.texi (@author): Add me.

	* src/options.h (NULLSTRINGS): New enum value.
	(Options::get_stringpool_name, Options::set_stringpool_name): New
	method declarations.
	(Options::_stringpool_name): New field.
	* src/options.icc (Options::get_stringpool_name): New method.
	* src/options.cc (DEFAULT_STRINGPOOL_NAME): New variable.
	(Options::long_usage): Document -Q and --null-strings.
	(Options::Options): Initialize _stringpool_name.
	(Options::~Options): Output _stringpool_name, NULLSTRINGS values too.
	(Options::set_stringpool_name): New method.
	(long_options): Add options --string-pool-name, --null-strings.
	(Options::parse_options): Implement options -P, -Q and --null-strings.
	* src/input.cc (Input::read_input): Recognize declarations %pic,
	%define string-pool-name, %null-strings.
	* src/output.h (Output::output_string_pool,
	Output::output_lookup_pools): New method declarations.
	(Output::_wordlist_eltype): New field.
	* src/output.cc (Output::output_keylength_table): Trivial
	simplification.
	(Output::output_string_pool): New method.
	(output_keyword_entry): Add stringpool_index argument. For SHAREDLIB,
	use struct offsets.
	(output_keyword_blank_entries): For SHAREDLIB, use -1 instead of "".
	(Output::output_keyword_table): Use _wordlist_eltype instead of
	_struct_tag. Compute stringpool_index for output_keyword_entry.
	(Output::output_lookup_pools): New method.
	(Output::output_lookup_function_body): Use _wordlist_eltype instead of
	_struct_tag. For SHAREDLIB, use "+ stringpool" to convert offsets to
	strings. Use "o >= 0" to test for nonempty table entry.
	(Output::output_lookup_function): Call output_lookup_pools.
	(Output::output): Initialize _wordlist_eltype. Call
	output_lookup_pools.
	* tests/jstest4.gperf: New file.
	* tests/test-6.exp: Update.
	* tests/Makefile.in (check-lang-syntax): Drop test of -p. Add tests of
	-P and -Q.
	* doc/gperf.texi (User-supplied Struct): Mention that first field has
	to be of type 'int' if -P is given.
	(Gperf Declarations): Document %pic, %define string-pool-name,
	%null-strings.
	(Output Details): Update description of option -P. Document options -Q
	and --null-strings.

	* tests/Makefile.in (check-link-c, check-ada, check-pascal,
	check-test): Omit option -p.
	* tests/c-parse.exp: Regenerated.
	* tests/chill.exp: Regenerated.
	* tests/cplusplus.exp: Regenerated.
	* tests/gpc.exp: Regenerated.
	* tests/java.exp: Regenerated.
	* tests/objc.exp: Regenerated.
	* tests/test-4.exp: Regenerated.

	* src/output.cc (Output::output_lookup_function_body): Omit the
	multicompare code section and its variables when it is not used.
	* tests/chill.exp: Regenerated.

	* src/output.c (Output_Compare::output_firstchar_comparison): New
	method.
	(Output_Compare_Strcmp::output_comparison,
	Output_Compare_Strncmp::output_comparison,
	Output_Compare_Memcmp::output_comparison): Use it.
	* tests/permutc2.exp: Update.

	* tests/smtp.gperf: New file, based on a contribution by Bruce Lilly.
	* tests/Makefile.in (check-smtp): New rule.
	(check): Depend on it.
	(clean): Update.

2002-12-12  Bruno Haible  <bruno@clisp.org>

	* src/search.h (Search::init_selchars_tuple,
	Search::count_duplicates_tuple): Add alpha_unify argument.
	(Search::count_duplicates_tuple): New method declaration.
	* src/search.cc (Search::init_selchars_tuple,
	Search::count_duplicates_tuple): Add alpha_unify argument.
	(Search::find_positions): Update.
	(Search::count_duplicates_tuple): New method.
	(Search::count_duplicates_multiset): Free temp alpha_unify vector.
	(Search::find_alpha_inc): Call count_duplicates_tuple.

	* src/configure.in: Add test for stack-allocated variable-size arrays.
	* src/config.h.in: Regenerated.
	* src/search.cc: Include config.h.
	(DYNAMIC_ARRAY, FREE_DYNAMIC_ARRAY): New macros.
	(Search::find_alpha_inc, Search::count_possible_collisions,
	Search::find_asso_values): Use them.
	* src/Makefile.in (search.o): Depend on config.h.

	* src/search.h (Search::keyword_list_length, Search::max_key_length,
	Search::get_max_keysig_size, Search::prepare): Remove declarations.
	(Search::prepare): Renamed from Search::preprepare.
	(Search::_max_selchars_length): New field.
	* src/search.cc (Search::prepare): Renamed from Search::preprepare.
	(Search::prepare_asso_values): Merged with old Search::prepare.
	Initialize _max_selchars_length.
	(Search::keyword_list_length): Remove function. Use _list_len instead.
	(Search::max_key_length): Remove function. Use _max_key_len instead.
	(Search::get_max_keysig_size): Remove function. Use
	_max_selchars_length instead.
	(Search::count_possible_collisions, Search::find_asso_values): Update.
	(Search::find_good_asso_values): Call just prepare_asso_values.
	(Search::~Search): Update.

	* src/output.h (Output::output_asso_values_ref): New declaration.
	* src/output.cc (char_to_index): Remove variable.
	(Output::output_asso_values_ref): New function.
