2025-04-05  Bruno Haible  <bruno@clisp.org>

	Release gperf-3.2.
	* src/options.cc (Options::parse_options): Bump copyright year.
	* NEWS: Mention a few more changes.

2025-04-05  Bruno Haible  <bruno@clisp.org>

	Remove all occurrences of reinterpret_cast<>.
	* src/keyword-list.h (Keyword_List): Add template parameter list <KT>.
	(KeywordExt_List): Define as a typedef, not as a subclass.
	(copy_list, delete_list, mergesort_list): Templatize accordingly.
	* src/keyword-list.icc (Keyword_List): Add template parameter list <KT>.
	(KeywordExt_List): Remove method definitions.
	* src/keyword-list.cc (Keyword_List): Add template parameter list <KT>.
	(copy_list, mergesort_list): Remove definitions on subclass.
	Add explicit template instantiation.
	* src/keyword.h (Keyword_Factory): Add template parameter list <KT>.
	* src/keyword.cc (Keyword_Factory): Likewise.
	Add explicit template instantiation.
	* src/input.h (Input): Add template parameter list <KT>.
	* src/input.cc (Input): Likewise. Add explicit template instantiation.
	* src/main.cc (KeywordExt_Factory): Define as a typedef, not as a
	subclass.
	(main): Update.

2025-04-05  Bruno Haible  <bruno@clisp.org>

	Make output on Windows identical to output on Unix.
	* src/options.cc (Options::print_options): Drop a ".exe" suffix from the
	program name before printing it.

2024-11-16  Bruno Haible  <bruno@clisp.org>

	Avoid "-Wzero-as-null-pointer-constant" warnings on the generated code.
	Reported in
	<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00123.html>.
	* src/output.cc (Output::output_lookup_function_body): To denote a null
	pointer, emit a cast expression instead of plain "0".
	* 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.

2024-10-28  Bruno Haible  <bruno@clisp.org>

	doc: Improve text rendering in PDF output.
	Suggested by Collin Funk <collin.funk1@gmail.com> in
	<https://lists.gnu.org/archive/html/bug-gperf/2024-10/msg00000.html>.
	* doc/texinfo.tex: Update from the texinfo-7.1 release.
	* doc/gperf.texi: Override the colour for interactive links. Bump date.

2024-09-01  Bruno Haible  <bruno@clisp.org>

	Replace FSF snail-mail addresses with URLs.
	* tests/java.gperf: Update GPL license notice.
	* tests/java.exp: Likewise.

2024-07-22  Bruno Haible  <bruno@clisp.org>

	build: Simplify last change.
	* Makefile.in (doc/gperf.1): Simplify rule.

2024-07-21  Bruno Haible  <bruno@clisp.org>

	build: Fix failure of "./configure; make dist".
	* Makefile.in (srcdir, VPATH): New variables.
	(VERSION): Refer to src/version.cc in $(srcdir).
	(dist): Depend on doc/gperf.1.
	(doc/gperf.1): New rule.
	* doc/Makefile.in (DISTRIBUTED_BUILT_FILES): Remove wildcard patterns.
	(DISTRIBUTED_BUILT_FILES_EXTRA_PATTERNS): New variable.
	(distdir): Handle the files from DISTRIBUTED_BUILT_FILES_EXTRA_PATTERNS.

2024-07-21  Bruno Haible  <bruno@clisp.org>

	build: Don't leave an empty gperf.1 on disk if help2man fails.
	* doc/Makefile.in (gperf.1): Use a temporary file.
	(clean): Remove this temporary file.

2024-07-21  Bruno Haible  <bruno@clisp.org>

	build: Fix VPATH builds.
	* doc/Makefile.in (TEXINFO): Look up texi2html in the current directory.
	(gperf.1): Look up help2man in the source directory. Generate gperf.1 in
	the source directory.

2024-07-21  Bruno Haible  <bruno@clisp.org>

	build: Fix use of perl on Guix, FreeBSD, NetBSD.
	* doc/help2man: Search for perl in $PATH.

2024-07-21  Bruno Haible  <bruno@clisp.org>

	build: Fix "make maintainer-clean".
	* doc/Makefile.in (maintainer-clean): Remove also gperf.1.

2024-06-12  Collin Funk  <collin.funk1@gmail.com>

	doc: Make the detailed menu title appear as intended.
	* doc/gperf.texi (Top): Add a line break after @detailmenu.

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

	Fix build (regression 2024-04-04).
	Reported by Pádraig Brady <P@draigBrady.com> in
	<https://lists.gnu.org/archive/html/bug-gperf/2024-06/msg00000.html>.
	* doc/configure.ac: Invoke AC_CONFIG_AUX_DIR, needed for locating
	install-sh.
	* lib/configure.ac: Likewise.
	* src/configure.ac: Likewise.
	* tests/configure.ac: Likewise.

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

	Remove outdated Autoconf macro.
	* aclocal.m4 (CL_PROG_INSTALL): Remove macro.
	* doc/configure.ac: Invoke AC_PROG_INSTALL instead of CL_PROG_INSTALL.
	* lib/configure.ac: Likewise.
	* src/configure.ac: Likewise.

2023-12-30  Bruno Haible  <bruno@clisp.org>

	Mark autoconf 2.72 as supported.
	* autogen.sh: Update comment.

2023-09-07  Bruno Haible  <bruno@clisp.org>

	Fix "make extracheck" failure (regression 2016-11-27).
	* tests/validate (KR-C): Remove the test against ' const ', since the
	input files jstest*.gperf now contain 'const' keywords.

2023-09-07  Bruno Haible  <bruno@clisp.org>

	Avoid "clang -Wimplicit-fallthrough" warnings also in C mode.
	* src/output.cc (Output::output_hash_function): Enhance the fallthrough
	marker, to include clang >= 10 in C mode.
	* tests/*.exp: Update.

2023-09-05  Bruno Haible  <bruno@clisp.org>

	Avoid "gcc -Wmissing-field-initializers" warnings on the generated code.
	* src/options.h (Options::has_initializer_suffix): New declaration.
	* src/options.cc (Options::has_initializer_suffix): New function.
	* src/output.cc (Output::output_keyword_table): If option -t is
	specified and option -F is not specified, emit '#pragma GCC diagnostic'
	lines, to silence -Wmissing-field-initializers warnings from gcc or
	clang.
	* tests/charsets.exp: Update.
	* tests/gpc.exp: Likewise.
	* tests/incomplete.exp: Likewise.
	* tests/languages.exp: Likewise.
	* tests/objc.exp: Likewise.
	* tests/test-4.exp: Likewise.

2023-07-08  Bruno Haible  <bruno@clisp.org>

	Avoid "gcc -Wunused-parameter" warnings on the generated hash function.
	Reported by Vinícius dos Santos Oliveira <vini.ipsmaker@gmail.com> in
	<https://savannah.gnu.org/bugs/index.php?64393>.
	* src/output.cc (Output::output_hash_function): If str is not used, emit
	a cast from str to void. If len is not used, emit a cast from len to
	void.
	* tests/permut2.exp: Update.
	* tests/permut3.exp: Likewise.
	* tests/permutc2.exp: Likewise.

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

	doc: Tweaks.
	Reported by Laurent Lyaudet <laurent.lyaudet@gmail.com> in
	<https://lists.gnu.org/archive/html/bug-gperf/2023-06/msg00000.html>.
	* doc/gperf.texi: Update copyright year. Fix some typos.
	(Bugs): Don't use the term "recent enhancements", since that's over
	20 years ago. Don't mention RAM requirements, since the execution time
	is the bigger inconvenience nowadays.

2023-06-29  Bruno Haible  <bruno@clisp.org>

	Update the installation instructions for Windows.
	* INSTALL.windows: Add a note about MSYS2.

2023-06-22  Bruno Haible  <bruno@clisp.org>

	Ensure that makeinfo ≥ 6.8 checks the @menu structure.
	See
	<https://lists.gnu.org/archive/html/bug-texinfo/2023-06/msg00015.html>.
	* doc/Makefile.in (MAKEINFO): Add option
	"-c CHECK_NORMAL_MENU_STRUCTURE=1".

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

	Fix a warning regarding strncmp.
	Reported by Sam James in <https://savannah.gnu.org/bugs/?63031>.
	* lib/getopt.c (strncmp): Declare with a prototype.

2022-07-17  Bruno Haible  <bruno@clisp.org>

	Split autogen.sh into autopull.sh and autogen.sh.
	* autopull.sh: New file, based on autogen.sh.
	* autogen.sh: Remove code that was moved to autopull.sh.
	* Makefile.in (SOURCE_FILES): Add autogen.sh.

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

	Add support for reproducible builds.
	Suggested by Richard Purdie <richard.purdie@linuxfoundation.org> in
	<https://lists.gnu.org/archive/html/bug-gperf/2022-07/msg00000.html>.
	* autogen.sh: Import also lib/filename.h.
	* Makefile.in (IMPORTED_FILES): Add lib/filename.h.
	* src/options.cc: Include filename.h.
	(Options::print_options): Print only the base name of the program name.
	* tests/*.exp: Update.

2022-05-22  Bruno Haible  <bruno@clisp.org>

	Add GNU Project notice.
	* JOIN-GNU: New file. Inspired by a suggestion from José E. Marchesi
	on the gnu-prog-discuss mailing list.
	* README: Refer to it.
	* Makefile.in (SOURCE_FILES): Add it.

2022-02-07  Bruno Haible  <bruno@clisp.org>

	tests: Fix undefined behaviour.
	* tests/test2.c (main): Cast bytes to unsigned before shifting left.

2022-01-05  Bruno Haible  <bruno@clisp.org>

	Release gperf-3.2.
	* src/version.cc (version_string): Bump to 3.2.
	* src/options.cc (Options::parse_options): Bump copyright year.
	* tests/*.exp: Update.
	* doc/gperf.texi: Bump date.

2021-06-06  Michael Drake  <tlsa@netsurf-browser.org>  (tiny change)

	Honor --readonly-tables when outputting table for --ignore-case.
	* src/output.cc (output_upperlower_table): Add 'const' when suitable.

2021-01-30  Bruno Haible  <bruno@clisp.org>

	Mark Autoconf 2.71 as supported.
	* autogen.sh: Update comment.

2020-12-08  Bruno Haible  <bruno@clisp.org>

	Mark Autoconf 2.70 as supported.
	* autogen.sh: Update comment.

2020-10-04  Bruno Haible  <bruno@clisp.org>

	Fix warnings from Autoconf 2.69c.
	* configure.ac: Invoke AC_INIT, AC_OUTPUT without arguments.
	* doc/configure.ac: Likewise.
	* lib/configure.ac: Likewise.
	* src/configure.ac: Invoke AC_INIT, AC_OUTPUT without arguments. Use
	AC_CACHE_CHECK, AC_LANG_PUSH/AC_LANG_POP, AC_COMPILE_IFELSE
	* tests/configure.ac: Invoke AC_INIT, AC_OUTPUT without arguments. Use
	ac_cv_c_compiler_gnu instead of ac_cv_prog_gcc, and
	ac_cv_cxx_compiler_gnu instead of ac_cv_prog_gxx. Don't use 'test' with
	option '-a'.

2020-08-30  Bruno Haible  <bruno@clisp.org>

	Make the code C++17 compliant.
	* lib/getline.cc (getstr): Don't use the 'register' keyword.

2020-08-29  Bruno Haible  <bruno@clisp.org>

	Fix link error on native Windows with MSVC/clang.
	* tests/test2.c (SET_BINARY): On native Windows, use _setmode, not
	setmode.

2020-08-29  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* configure.ac (AC_PREREQ): Require Autoconf >= 2.64.
	* doc/configure.ac (AC_PREREQ): Likewise.
	* lib/configure.ac (AC_PREREQ): Likewise.
	* src/configure.ac (AC_PREREQ): Likewise.
	* tests/configure.ac (AC_PREREQ): Likewise.
	* autogen.sh: Update comment.

2020-02-10  Bruno Haible  <bruno@clisp.org>

	Rely entirely on the GNU Build System.
	* Makefile.vms: Remove file.
	* INSTALL.vms: Remove file.
	* Makefile.in (SOURCE_FILES): Remove them.
	* Makefile.devel (src/config.h_vms): Remove target.
	(totally-clean): Update.
	* src/Makefile.in (GENERATED_FILES): Remove config.h_vms.

2018-10-24  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* configure.ac (AC_PREREQ): Require Autoconf >= 2.63.
	* doc/configure.ac (AC_PREREQ): Likewise.
	* lib/configure.ac (AC_PREREQ): Likewise.
	* src/configure.ac (AC_PREREQ): Likewise.
	* tests/configure.ac (AC_PREREQ): Likewise.
	* autogen.sh: Update comment.

2018-09-16  Bruno Haible  <bruno@clisp.org>

	Fix "Unescaped left brace in regex" warnings from Perl 5.26.
	Reported and patch by Jehan <jehan@girinstud.io> <jehan@zemarmot.net> at
	<https://savannah.gnu.org/bugs/?54088>.
	* doc/texi2html: Escape braces in regular expressions.

2018-09-14  Bruno Haible  <bruno@clisp.org>

	doc: Assume texinfo 4.0 or newer.
	* doc/gperf.texi: Omit Next, Prev, Up fields from @node lines.

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

	Avoid "implicit fallthrough" warnings also from clang.
	Reported by Nico Weber <thakis@chromium.org> in
	<https://savannah.gnu.org/bugs/?53029>.
	Clang emits these warnings in C++11 mode only, see
	<https://clang.llvm.org/docs/AttributeReference.html#fallthrough>,
	and only in clang 3.9 or newer, see
	<https://releases.llvm.org/3.9.0/tools/clang/docs/ReleaseNotes.html>.
	To avoid them, either [[fallthrough]] or the (nearly equivalent) older
	[[clang::fallthrough]] can be used, see
	<https://llvm.org/viewvc/llvm-project?view=revision&revision=262881>.
	* src/output.cc (Output::output_hash_function): Enhance the fallthrough
	marker.
	* tests/*.exp: Update.

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

	Fix failure of "make check -j2".
	Reported and fix provided by Bernhard M. Wiedemann in
	<https://savannah.gnu.org/bugs/?53208>.
	* tests/Makefile.in (check-test): Depend on 'check-ada'.

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

	Don't print uninitialized hash values in debug mode.
	Reported by Frank Wojcik <frankw@touristinresidence.com> in
	<https://savannah.gnu.org/patch/?9560>.
	* src/output.cc (output_keyword_entry): Add an 'is_duplicate' argument.
	(Output::output_keyword_table): Update callers.

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

	Improve the speed of the positions search.
	Reported by Frank Wojcik <frankw@touristinresidence.com> in
	<https://savannah.gnu.org/patch/?9562>.
	* src/search.cc (Search::find_positions): Double the speed of step 4.

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

	Really prefer more efficient hash functions over less efficient ones.
	Reported by Frank Wojcik <frankw@touristinresidence.com> in
	<https://savannah.gnu.org/patch/?9561>.
	* src/search.cc (Search::find_positions): In step 4, make sure a less
	efficient hash function does not replace a more efficient one. Also,
	include i3 = -1 among the search.

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

	Correct width of columns when outputting the asso_values array.
	Patch by Frank Wojcik <frankw@touristinresidence.com>.
	* src/output.cc (Output::output_hash_function): Increase the
	field_width by 1 if _max_hash_value+1 is a power of 10.

2018-07-25  Bruno Haible  <bruno@clisp.org>

	Avoid "implicit fallthrough" warnings in the generated code.
	Reported by Phil Willoughby at
	<https://lists.gnu.org/archive/html/bug-gperf/2018-07/msg00002.html>.
	* src/output.cc (Output::output_hash_function): Emit a more elaborate
	fallthrough marker.
	* tests/*.exp: Update.

2018-04-24  Bruno Haible  <bruno@clisp.org>

	Support input files with CR/LF line terminators.
	Reported at <https://savannah.gnu.org/bugs/?53732>.
	* src/input.cc (Input::read_input): Convert CR/LF sequences to LF.

2018-01-27  Bruno Haible  <bruno@clisp.org>

	Rename some files.
	* INSTALL.windows: Renamed from README.windows.
	* INSTALL.vms: Renamed from README.vms.
	* Makefile.in (SOURCE_FILES): Update.

2018-01-23  Bruno Haible  <bruno@clisp.org>

	Don't use an undocumented Autoconf macro.
	* src/configure.ac: Use AC_CONFIG_HEADERS instead of AC_CONFIG_HEADER.

2017-07-15  Bruno Haible  <bruno@clisp.org>

	Get rid of autom4te.cache directories (left over from autoconf).
	* Makefile.devel (configure, */configure, src/config.h.in): Remove
	autom4te.cache directory after running autoconf or autoheader.

2017-04-16  Bruno Haible  <bruno@clisp.org>

	Initialize the Keyword::_lineno field through the constructor.
	* src/keyword.h (struct Keyword, struct KeywordExt): Add lineno argument
	to constructor.
	(Keyword_Factory::create_keyword): Add lineno argument.
	* src/keyword.icc (struct Keyword, struct KeywordExt): Add lineno
	argument to constructor.
	* src/main.cc (KeywordExt_Factory::create_keyword): Pass lineno argument
	to KeywordExt constructor.
	* src/input.cc (Input::read_input): Pass lineno to create_keyword.

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

	Fix doc build error with perl 5.22.
	* doc/texi2html (update_sec_num): Omit defined(...) for array.

2017-01-10  Bruno Haible  <bruno@clisp.org>

	Update some URL.
	* README: Update.

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 <https://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 <https://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 <https://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>

