2011-03-01  Eric Blake  <eblake@redhat.com>

	Release Version 1.4.16.
	* gnulib: Update to latest.
	* NEWS: Mention the release.
	* src/builtin.c (m4_defn): Silence spurious -Wstrict-overflow
	warnings from gcc 4.5.1 at -O2.

2011-02-28  Eric Blake  <eblake@redhat.com>

	index: fix typo in previous commit
	* doc/m4.texinfo (Index macro): Actually expose the bug.

2011-02-26  Eric Blake  <eblake@redhat.com>

	index: fix another regression from faulty strstr
	* gnulib: Update to latest, for strstr fix.
	* doc/m4.texinfo (Index macro): Test for the bug.
	* NEWS: Document the fix.
	* THANKS: Update.
	Reported by Mike Stump, with additional analysis from Ralf
	Wildenhues and Jim Meyering.

2011-02-07  Eric Blake  <eblake@redhat.com>

	maint: speed up configure, using latest gnulib
	* gnulib: Update to latest.
	* m4/gnulib-cache.m4: Import fclose and rename modules.
	* configure.ac (gl_ASSERT_NO_GNULIB_POSIXCHECK): Speed up normal
	configure runs (and document how to rerun GNULIB_POSIXCHECK).
	* HACKING: Document GNULIB_POSIXCHECK.

	maint: update http git cloning instructions
	* HACKING: Git http doesn't like the redirect at git.sv.gnu.org.
	* THANKS: Update.
	Reported by Mike Dupont.

2011-02-01  Eric Blake  <eblake@redhat.com>

	maint: update to latest gnulib
	* gnulib: Update to latest.
	* m4/gnulib-cache.m4: Regenerate.
	* src/builtin.c (m4_ifelse): Use STREQ.

2011-01-25  Eric Blake  <eblake@redhat.com>

	maint: reflect recent copyright assignments
	* AUTHORS: Update.

2011-01-03  Eric Blake  <eblake@redhat.com>

	maint: update copyright year
	* gnulib: Update to latest.
	* m4/gnulib-cache.m4: Regenerate.
	* all other files: Run 'make update-copyright'.

	maint: document use of copyright ranges
	* README: Copy coreutils wording for allowing copyright year
	ranges.  Also mention libsigsegv 2.9.
	* cfg.mk (UPDATE_COPYRIGHT_USE_INTERVALS): Now that GNU Coding
	Standards permit it, prefer shorthand copyright.
	* HACKING: Update libsigsegv preference.
	* NEWS: 1.4.16 will be in 2011.
	* doc/m4.texinfo (History): Likewise.

2010-12-31  Eric Blake  <eblake@redhat.com>

	main: avoid leaking string on Haiku
	* src/m4.c (main): Avoid leak when SIGBUS == SIGSEGV.
	* THANKS: Update.
	Reported by Scott McCreary.

2010-12-24  Eric Blake  <eblake@redhat.com>

	build: pull in various gnulib fixes
	* gnulib: Update to latest.
	* m4/gnulib-cache.m4: Reflect spawn-pipe module name change.
	* src/builtin.c (includes): Likewise.
	(define_user_macro): Alter comment to appease syntax-check.
	* src/input.c (pop_wrapup): Likewise.
	* src/output.c (undivert_all): Likewise.
	* cfg.mk (local-checks-to-skip): Skip new rule.

	maint: reflect recent copyright assignment
	* AUTHORS: Add Raphael Poss.

2010-10-21  Eric Blake  <eblake@redhat.com>

	build: work around glibc and libsigsegv bugs
	* gnulib: Update to latest.
	* m4/gnulib-cache.m4: Regenerate.
	* docs/m4.texinfo (Index macro): Expose strstr bug.
	* NEWS: Mention fixes.

	docs: mention more history
	* doc/m4.texinfo (History): Add upcoming 1.4.16 release.

2010-08-31  Eric Blake  <eblake@redhat.com>

	Release Version 1.4.15.
	* gnulib: Update to latest.
	* NEWS: Mention the release.

2010-08-30  Eric Blake  <eblake@redhat.com>

	Clean up compiler warnings.
	* src/builtin.c (m4_patsubst): Drop dead store.
	* src/eval.c (unary_term): Likewise.
	* src/input.c (match_input): Likewise.  Also drop useless casts to
	void.
	* src/symtab.c (symtab_debug): Drop useless casts.

	Test previous commit.
	* doc/m4.texinfo (Format): Add a test.
	* NEWS: Document the fix.
	* THANKS: Update.

2010-08-30  Carlo Teubner  <carlo.teubner@gmail.com>  (tiny change)

	Avoid a crash with bad format string.
	* src/format.c (expand_format): Fix off-by-one error.

2010-08-30  Eric Blake  <eblake@redhat.com>

	Document recent bug fixes.
	* NEWS: Add some entries.
	* gnulib: Update to latest, for more AIX fixes.

2010-07-30  Eric Blake  <eblake@redhat.com>

	Update to newer gnulib.
	* gnulib: Update to latest, for strtod fix.
	* src/Makefile.am (m4_LDADD): Update link libraries accordingly.
	* cfg.mk (local-checks-to-skip): Skip broken check.
	* doc/m4.texinfo: Drop all use of @acronym{}.
	* THANKS: Update.
	Reported by Rainer Tammer.

2010-06-04  Eric Blake  <eblake@redhat.com>

	Reflect recent copyright assignment.
	* AUTHORS: Add David Warme.

	Update to newer gnulib.
	* gnulib: Update to latest, and include C++ tests.
	* configure.ac (gl_CXX_CHOICE_DEFAULT_NO): Make default for C++
	tests be disabled...
	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): ...but run them when
	building package.
	* m4/gnulib-cache.m4: Regenerate.
	* build-aux/.cvsignore: Likewise.
	* build-aux/.gitignore: Likewise.

	Fix build on newer glibc.
	* src/m4.h (includes): Add <sys/stat.h>.
	* THANKS: Update.
	Reported by Todd Rinaldo.

2010-03-02  Giuseppe Scrivano  <gscrivano@gnu.org>  (tiny change)

	Support bootstrap --gnulib-srcdir=DIR.
	* bootstrap: Add --gnulib-srcdir option, which overrides
	GNULIB_SRCDIR, for consistency with gnulib bootstrap.

2010-02-24  Eric Blake  <eblake@redhat.com>

	Release Version 1.4.14.
	* gnulib: Update to latest.
	* README: Increase libsigsegv recommendation.
	* HACKING: Likewise.  Tweak release instructions.
	* NEWS: Mention the release.

	Improve parsing example.
	* doc/m4.texinfo (Input processing): Double-quote argument to
	translit, for robustness.
	* THANKS: Update.
	Reported by Chris Penev.

2010-01-29  Eric Blake  <ebb9@byu.net>

	Document upcoming release.
	* gnulib: Update to latest.
	* doc/m4.texinfo (History): Mention 1.4.14.

2010-01-06  Eric Blake  <ebb9@byu.net>

	Use correct license on auxiliary documentation.
	* gnulib: Update to latest.
	* AUTHORS: Use GFDL 1.3, not 1.2.
	* BACKLOG: Likewise.
	* README: Likewise.
	* THANKS: Likewise.
	* TODO: Likewise.
	* NEWS: Place under GFDL.
	* cfg.mk (old_NEWS_hash): Update.

2010-01-05  Eric Blake  <ebb9@byu.net>

	Remove more TAB characters.
	* THANKS: Use space for alignment.
	* bootstrap: Likewise.
	* checks/stackovf.test: Likewise.
	* configure.ac: Likewise.
	* src/builtin.c: Likewise.  Also update some stale comments.
	* src/debug.c: Likewise.
	* src/eval.c: Likewise.
	* src/format.c: Likewise.
	* src/freeze.c: Likewise.
	* src/input.c: Likewise.
	* src/m4.c: Likewise.
	* src/m4.h: Likewise.
	* src/macro.c: Likewise.
	* src/output.c: Likewise.
	* src/path.c: Likewise.
	* src/symtab.c: Likewise.

	Clarify minimum bootstrap requirements.
	* bootstrap: Avoid out-of-date duplicated data.

	Security fix by requiring newer automake features.
	* configure.ac (AM_INIT_AUTOMAKE): Add dist-xz, color-tests,
	parallel-tests, and silent-rules.
	(AC_PREREQ): Bump autoconf requirement to 2.62, per automake.
	* HACKING: Update minimum requirements.
	* NEWS: Document the fix.

	Drop hard-coding of GPG id.
	* gnulib: Update to latest.
	* m4/gnulib-cache.m4: Regenerate.
	* cfg.mk (gpg_key_ID): Delete, now that maint.mk provides a
	sensible default.
	(update-copyright-env): Don't let environment interfere with wrap
	column.

2010-01-01  Eric Blake  <ebb9@byu.net>

	Update copyright year.
	All files impacted, via 'make update-copyright'.  Additionally:
	* .gitignore: Ignore backup files.

2009-12-29  Eric Blake  <ebb9@byu.net>

	Document new indentation policy.
	* HACKING: Document indentation policy.
	* .x-sc_prohibit_tab_based_indentation: New file.
	* cfg.mk (sc_prohibit_tab_based_indentation): New rule.
	* Makefile.am (syntax_check_exceptions): New macro.
	(EXTRA_DIST): Distribute exception files, and .prev-version.

	Switch to indentation by space, not tab.
	* .gitmodules: Convert leading tabs to spaces.
	* TODO: Likewise.
	* bootstrap: Likewise.
	* c-boxes.el: Likewise.
	* checks/check-them: Likewise.
	* checks/get-them: Likewise.
	* checks/stackovf.test: Likewise.
	* configure.ac: Likewise.
	* src/builtin.c: Likewise.
	* src/debug.c: Likewise.
	* src/eval.c: Likewise.
	* src/format.c: Likewise.
	* src/freeze.c: Likewise.
	* src/input.c: Likewise.
	* src/m4.c: Likewise.
	* src/m4.h: Likewise.
	* src/macro.c: Likewise.
	* src/output.c: Likewise.
	* src/path.c: Likewise.
	* src/symtab.c: Likewise.

	Update to latest gnulib.
	* gnulib: Update.
	* m4/gnulib-cache.m4: Import xoset.
	* src/output.c (includes): Ensure that gnulib oset usage will
	call xalloc_die on memory failure.
	* build-aux/.cvsignore: Regenerate.
	* build-aux/.gitignore: Likewise.

2009-11-28  Eric Blake  <ebb9@byu.net>

	Work around BSD getopt bug.
	* gnulib: Update.
	* doc/m4.texinfo (Command line files): Add test.

	Use fastmap for better regex performance.
	* src/input.c (word_start): Delete.
	(pop_wrapup): Free memory on exit.
	(set_word_regexp): Compile a fastmap instead.
	(peek_token, next_token): Use the fastmap.

2009-11-26  Eric Blake  <ebb9@byu.net>

	Ignore write failures before stack overflow exit.
	* m4/gnulib-cache.m4: Import ignore-value module.
	* src/m4.c (fault_handler): Use it to avoid compiler warning.

2009-11-25  Eric Blake  <ebb9@byu.net>

	Allow use of compiler warnings.
	* m4/gnulib-cache.m4: Import manywarnings module.
	* configure.ac (WERROR_CFLAGS, WARN_CFLAGS): New variables.
	* src/Makefile.am (AM_CFLAGS): Use them.
	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Turn on warnings during
	distcheck.
	* src/m4.h (M4_GNUC_NORETURN): New macro.
	(trace_post): Delete unused parameter.
	* src/m4.c (usage): Mark as noreturn.
	(main): Remove unused parameter.
	* src/debug.c (trace_post): Likewise.
	(trace_pre): Cover all enum values.
	* src/symtab.c (lookup_symbol): Likewise.
	* src/builtin.c (define_macro, m4_dumpdef): Likewise.
	(m4_define, m4_undefine, m4_pushdef, m4_popdef, m4_sysval)
	(m4_divert, m4_undivert, m4_dnl, m4_changequote, m4_changecom)
	(m4_changeword, m4_syscmd, m4_include, m4_sinclude, m4_m4exit)
	(m4_debugmode, m4_debugfile, m4_placeholder): Mark unused
	parameters.
	(mkstemp_helper): Use parameter.
	(substitute): Avoid signed vs. unsigned comparison.
	* src/format.c (arg_int, arg_long, arg_double): Likewise.
	* src/input.c (next_token): Likewise.
	* src/output.c (freeze_diversions): Likewise.
	(m4_tmpname): Allow C++ compilation.
	* src/freeze.c (produce_frozen_state, GET_NUMBER): Use correct
	type.
	* src/macro.c (call_macro): Cover all enum values.
	(expand_macro): Update caller.
	* src/path.c (m4_fopen): Remove unused parameter.
	(m4_path_search): Update caller.

	Silence syntax-check warnings.
	* src/m4.h (STREQ): New macro.
	* src/builtin.c (find_builtin_by_name): Use it.
	* src/input.c (set_word_regexp): Likewise.
	* src/m4.c (process_file): Likewise.
	(main): Consistently spell warning, and mark output strings.
	Avoid unsafe parsing functions.
	(process_file): Mark output strings.
	* src/output.c (make_diversion): Likewise.
	* src/format.c (arg_int, arg_long, arg_double): New helpers.
	(ARG_INT, ARG_LONG, ARG_DOUBLE): Use them to detect parse errors.
	* BACKLOG: Avoid whitespace problems.
	* TODO: Likewise.
	* HACKING: Likewise.
	* examples/esyscmd.m4: Likewise.
	* examples/file.m4: Likewise.
	* examples/fstab.m4: Likewise.
	* examples/patsubst.m4: Likewise.

	Use gnulib maintainer-makefile module.
	* m4/gnulib-cache.m4: Import maintainer-makefile module.
	* cfg.mk (local-checks-to-skip): Drop changelog-check; add
	sc_cast_of_x_alloc_return_value.
	(gnulib_dir, gnu_rel_host, url_dir_list): Delete; provided by
	maint.mk.
	(config_h_header, old_NEWS_hash): New macros.
	* .prev-version: New file.
	* maint.mk: Remove from version control; use gnulib instead.
	* .gitignore: Update.
	* HACKING: Update.

	Update from gnulib.
	* gnulib: Update.
	* m4/gnulib-cache.m4: Use --makefile-name.
	* lib/Makefile.am: Wrap the gnulib-generated file.
	* tests/Makefile.am: Likewise.
	* .gitignore: Track our wrappers.
	* doc/m4.texinfo (Improved capitalize): Fix typo.

2009-10-05  Eric Blake  <ebb9@byu.net>

	Update from gnulib.
	* gnulib: Update.
	* m4/gnulib-cache.m4: Import gnu-web-doc-update module.
	* build-aux/.gitignore: Ignore new file.
	* build-aux/.cvsignore: Likewise.

2009-08-20  Eric Blake  <ebb9@byu.net>

	Update from gnulib.
	* gnulib: Update.
	* AUTHORS: Mention recent copyright assignment.

2009-08-17  Eric Blake  <ebb9@byu.net>

	Enhance test with closed descriptors.
	* doc/m4.texinfo (Command line files): Enhance test from
	2009-07-20 to actually test the bug being fixed.

	Update copyright year.
	* AUTHORS: Run UPDATE_COPYRIGHT_FORCE=1 make update-copyright.
	* BACKLOG: Likewise.
	* Makefile.am: Likewise.
	* TODO: Likewise.
	* acinclude.m4: Likewise.
	* c-boxes.el: Likewise.
	* cfg.mk: Likewise.
	* checks/Makefile.in: Likewise.
	* checks/check-them: Likewise.
	* checks/stackovf.test: Likewise.
	* doc/Makefile.am: Likewise.
	* examples/Makefile.am: Likewise.
	* src/Makefile.am: Likewise.
	* src/debug.c: Likewise.
	* src/eval.c: Likewise.
	* src/freeze.c: Likewise.
	* src/m4.h: Likewise.
	* src/macro.c: Likewise.
	* src/path.c: Likewise.
	* src/symtab.c: Likewise.

	Prepare to bulk update copyright year.
	* gnulib: Update.
	* m4/gnulib-cache.m4: Import update-copyright and vc-list-files
	modules.
	* maint.mk: Fix copyright.
	(build_aux, VC_LIST, VC_LIST_EXCEPT, update-copyright): New macros
	and rules borrowed from gnulib.
	* cfg.mk (update-copyright-env): Enforce longhand behavior.
	* .cvsignore: Reflect these changes.
	* .gitignore: Likewise.
	* .x-update-copyright: New file.

2009-08-14  Eric Blake  <ebb9@byu.net>

	Explicitly request GNU getopt extensions.
	* gnulib: Update.
	* m4/gnulib-cache.m4: Use getopt-gnu, not obsolete getopt module.

2009-07-22  Eric Blake  <ebb9@byu.net>

	Fix testsuite on Solaris.
	* doc/m4.texinfo (Command line files): Tolerate different spelling
	of EBADF.
	* src/builtin.c (m4_esyscmd): Clear errno before reaping.

2009-07-21  Eric Blake  <ebb9@byu.net>

	Fix testsuite on mingw.
	* gnulib: Update.

2009-07-20  Eric Blake  <ebb9@byu.net>

	Pick up gnulib fixes for sub-process execution.
	* gnulib: Update.
	* doc/m4.texinfo (Command line files): Add test; regression
	introduced 2009-03-05.
	* NEWS: Document the change.

	Avoid cygwin 1.7 crash with closed stdout.
	* gnulib: Update.
	* doc/m4.texinfo (Command line files): Add test; regression
	introduced 2008-07-17.
	* NEWS: Document the change.

	A status of 127 does not always imply esyscmd failure.
	* src/builtin.c (m4_esyscmd): Silence gnulib message; regression
	introduced 2009-03-05.
	* doc/m4.texinfo (Sysval): Test this.
	* NEWS: Document the change.

2009-06-25  Eric Blake  <ebb9@byu.net>

	Fix description of limits on diversions.
	* doc/m4.texinfo (Diversions): Fix grammar.  Be less pessimistic
	about limitations.
	* THANKS: Update.
	Reported by Elias Benali.

2009-06-17  Eric Blake  <ebb9@byu.net>

	Update to latest gnulib.
	* gnulib: Import fixes for Interix compilation.
	* THANKS: Update.
	Reported by Jay Krell.

2009-05-22  Eric Blake  <ebb9@byu.net>

	Update to latest gnulib.
	* gnulib: Import fixes for AIX compilation.
	* THANKS: Update.
	Reported by Jens Rehsack.

2009-04-13  Eric Blake  <ebb9@byu.net>

	Fix GFDL usage.
	* doc/m4.texinfo (copying): Complete transition to GFDL 1.3,
	started 2008-12-12.
	Reported by Santiago Vila.

2009-04-01  Eric Blake  <ebb9@byu.net>

	Release Version 1.4.13.
	* NEWS: Mention the release.

2009-03-31  Eric Blake  <ebb9@byu.net>

	Tweak submodule instructions.
	* HACKING: Improve directions.
	* gnulib: Update to latest version.

2009-03-23  Eric Blake  <ebb9@byu.net>

	Don't force file overwrites during bootstrap.
	* bootstrap: Ensure that rerunning bootstrap doesn't alter tree.

	Drop dist-lzma, now that xz replaces lzma.
	* configure.ac (AM_INIT_AUTOMAKE): Drop dist-lzma.  Until a stable
	automake release includes dist-xz, the release process will just
	manually create a .xz tarball.
	* gnulib: Update to latest gnulib.

2009-03-19  Eric Blake  <ebb9@byu.net>

	Exploit git submodule by adding appropriate symlinks.
	* bootstrap: No longer copy files from gnulib.
	* COPYING: Change to symlink pointing into gnulib.
	* INSTALL: Likewise.
	* build-aux/compile: Likewise.
	* build-aux/config.guess: Likewise.
	* build-aux/config.sub: Likewise.
	* build-aux/depcomp: Likewise.
	* build-aux/install-sh: Likewise.
	* build-aux/mdate-sh: Likewise.
	* build-aux/missing: Likewise.
	* build-aux/texinfo.tex: Likewise.
	* .cvsignore: Reflect these changes.
	* .gitignore: Likewise.
	* build-aux/.cvsignore: New file.
	* build-aux/.gitignore: Likewise.

2009-03-18  Eric Blake  <ebb9@byu.net>

	Make gnulib a git submodule.
	* .gitmodules: New file.
	* gnulib: Record which version of gnulib has been tested.
	* bootstrap: Aid in submodule usage.
	* cfg.mk (gnulib_dir): Alter default location of gnulib.
	* HACKING: Mention how to use submodule.

	Use latest compile script, even with stable automake.
	* bootstrap: Also sync build-aux/compile.

2009-03-12  Eric Blake  <ebb9@byu.net>

	Fix awk script portability.
	* checks/get-them: In gsub, properly escape {.  Close all files
	before exiting.
	Reported by Gary V. Vaughan.

2009-03-05  Eric Blake  <ebb9@byu.net>

	Allow configuration choice in syscmd shell.
	* configure.ac (SYSCMD_SHELL): New test.
	* src/builtin.c (m4_syscmd, m4_esyscmd): Use it to avoid
	hard-coding the shell location.
	* doc/m4.texinfo (Syscmd, Esyscmd): Document this.
	* README: Document new configure option.
	* NEWS: Likewise.

	Remove cruft now that gnulib modules do the work.
	* configure.ac (M4_cv_func_system_consistent): Delete.
	* src/builtin.c (M4SYSVAL_EXITBITS, M4SYSVAL_TERMSIGBITS):
	Delete.

	Use gnulib pipe module instead of popen(3).
	* m4/gnulib-cache.m4: Import pipe and wait-process modules.
	* src/builtin.c (m4_esyscmd): Rewrite with pipe module.
	Resolves a failure on AIX, reported by Gary V. Vaughan.

	Use gnulib execute module instead of system(3).
	* m4/gnulib-cache.m4: Import execute module.
	* src/builtin.c (m4_sysval): Move computation...
	(m4_esyscmd): ...into caller.
	(m4_syscmd): Rewrite with execute module.
	Resolves a failure on AIX, reported by Gary V. Vaughan.

2009-03-03  Eric Blake  <ebb9@byu.net>

	Try to tolerate spaces in directory names in testsuite.
	* doc/m4.texinfo (Diversions, Using frozen files): Provide shell
	quoting, in case __program__ contains spaces.

	Improve web-manual maintainer rule.
	* maint.mk (web-manual): Work with VPATH builds.  Factor
	package-specific detail...
	* cfg.mk (manual_title): ...to new variable.

2009-02-26  Eric Blake  <ebb9@byu.net>

	Make bootstrap easier on Solaris.
	* bootstrap: Add GNULIB_SRCDIR.  Useful when a wrapper script
	gnulib-tool exists earlier on the path to work around /bin/sh
	failure in parsing $GNULIB_SRCDIR/gnulib-tool.

2009-02-19  Eric Blake  <ebb9@byu.net>

	Fix regression in translit.
	* src/builtin.c (m4_translit): Use correct comparison.
	* doc/m4.texinfo (Translit): Enhance test.

	Speed up input engine, by searching for quotes by buffer.
	* src/input.c (struct input_block): Add end pointer to string.
	(push_string_finish, push_wrapup): Populate it.
	(next_token): For quotes, attempt a buffer search.
	* NEWS: Document this.

2009-02-18  Eric Blake  <ebb9@byu.net>

	Speed up translit when from argument is short.
	* m4/gnulib-cache.m4: Import memchr2 module.
	* src/builtin.c (m4_translit): Use memchr2 when possible.
	* doc/m4.texinfo (Translit): Add tests.
	* NEWS: Document this.

	Update copyright year.
	* THANKS: Mention 2009 in copyright year.

	Prefer buffer over byte operations.
	* src/format.c (expand_format): Use strchr for speed.
	* src/builtin.c (substitute, expand_user_macro): Likewise.

	Speed up esyscmd with buffer reads.
	* src/builtin.c (m4_esyscmd): Read blocks directly into obstack,
	rather than repeatedly reading bytes.  Detect read errors.

	Avoid risk of stack overflow.
	* src/output.c (insert_file): Avoid stack allocation of large
	buffer.
	(freeze_diversions): Avoid spurious semicolon.

2009-02-16  Eric Blake  <ebb9@byu.net>

	Avoid test failure due to different errno.
	* doc/m4.texinfo (Using frozen files): Ignore stdout, since
	hardened systems can prevent attempts to read /.
	* THANKS: Update.
	Reported by Ronny Peine, in Gentoo bug 259184.

	Avoid tests that make no sense, because m4 is single-threaded.
	* m4/gnulib-cache.m4: Avoid lock-tests and tls-tests.

2009-02-12  Eric Blake  <ebb9@byu.net>

	Avoid quadratic code when walking definition stack.
	* examples/stack_sep.m4: Use linear, not quadratic
	implementation.
	* doc/m4.texinfo (Improved copy): Fix documentation and add test,
	based on recent autoconf bug fix.

2009-01-24  Eric Blake  <ebb9@byu.net>

	Add URLs to --help output.
	* src/m4.c (usage): Use enhanced version-etc features.

2009-01-02  Eric Blake  <ebb9@byu.net>

	Use nicer email address in web manual.
	* maint.mk (web-manual): Use new option in gendocs.sh.

	Nuke xdelta diffs at release time; no one reported using them.
	* maint.mk (got-xdelta, delta-xdelta): Delete.
	* HACKING: Likewise.

2009-01-01  Eric Blake  <ebb9@byu.net>

	Update copyright year.
	* NEWS: M4 1.4.13 will occur in 2009.
	* doc/m4.texinfo (History): Likewise.

2008-12-24  Eric Blake  <ebb9@byu.net>

	Prepare for eventual release.
	* doc/m4.texinfo (History): Mention 1.4.13.

2008-12-22  Eric Blake  <ebb9@byu.net>

	Make --debugfile argument optional.
	* src/builtin.c (m4_debugfile): Make error message consistent.
	* src/m4.c (long_options): Make the argument optional, to allow
	setting debug file back to stderr.
	(main): Make --debugfile order-dependent.
	(usage): Document this.
	* doc/m4.texinfo (Debugging options): Likewise.
	* NEWS: Likewise.

	Use @var correctly.
	* doc/m4.texinfo (Operation modes, Preprocessor features)
	(Limits control, Frozen state, Debugging options): Use lower case
	names in @var.
	(Improved copy): Use @code, not @var, as appropriate.

2008-12-18  Eric Blake  <ebb9@byu.net>

	Document optimized forloop.
	* doc/m4.texinfo (Improved forloop): Mention alternate style that
	avoids define overhead.
	* examples/forloop3.m4: New file.
	* examples/Makefile.am (EXTRA_DIST): Distribute it.

	Deal with M4 1.4.x limitation on builtin tokens.
	* doc/m4.texinfo (Composition): Mention limitation on curry.
	(Improved copy): New node.
	* examples/stack_sep.m4: New file.
	* examples/Makefile.am (EXTRA_DIST): Distribute it.

	Document copy composite using stack_foreach and curry.
	* doc/m4.texinfo (Stacks): New node, to document pushdef stack
	manipulation.
	(Ifelse): Move define_blind...
	(Composition): ...to this new node.  Document currying, then use
	it to implement copy and rename.
	* examples/curry.m4: New file.
	* examples/stack.m4: Likewise.
	* examples/Makefile.am (EXTRA_DIST): Distribute them.

2008-12-17  Eric Blake  <ebb9@byu.net>

	Don't override signal handlers installed by c-stack.
	* src/m4.c (main): Reorder installation of signal handlers, so we
	don't trash a SIGBUS handler installed by c-stack.  Also provide a
	SIGSEGV fallback, for platforms where c-stack combined with
	libsigsegv uses something lower level than SIGSEGV.

2008-12-12  Eric Blake  <ebb9@byu.net>

	Double size of temp file cache.
	* src/output.c (tmp_file, tmp_file_owner): Split...
	(tmp_file1, tmp_file2, tmp_file1_owner, tmp_file2_owner): ...into
	two variables.
	(tmp_file2_recent): New variable.
	(m4_tmpopen, m4_tmpclose, m4_tmpremove, m4_tmprename)
	(output_exit): Adjust callers.

	Use fewer seeks on cached files.
	* src/output.c (m4_tmpfile): Use write, not append mode.
	(m4_tmpopen): Add parameter to decide when to skip seeks.
	(m4_tmprename, make_diversion, insert_diversion_helper)
	(freeze_diversions): Adjust callers.

	Cache most recently spilled diversion.
	* src/output.c (tmp_file, tmp_file_owner): New variables, for
	1-deep cache of spilled diversions.
	(m4_tmpfile): Open in append mode, since we might revisit
	diversion without closing it now.
	(m4_tmpopen): Check cache first.
	(m4_tmpclose): Update cache, rather than closing.  Add parameter.
	(m4_tmpremove): Close cache before removing.
	(m4_tmprename): Deal with open files when renaming.
	(output_exit): Close cache before exiting.
	(make_room_for, make_diversion, insert_diversion_helper): Adjust
	callers.
	* configure.ac (RENAME_OPEN_FILE_WORKS): New configure test.

	Correctly track size of in-memory diversions.
	* src/output.c (insert_diversion_helper): Correctly track total
	in-memory diversion size after undivert.

	Avoid quadratic behavior for some cases of divert/undivert.
	* src/output.c (struct m4_diversion): Improve comments.
	(m4_tmpname, make_diversion): Strengthen preconditions.
	(m4_tmprename): New function.
	(output_init, output_exit): Move after internal functions.
	(make_room_for): Don't bother copying uninitialized bytes.
	(insert_diversion_helper): Transfer metadata, rather than copying
	contents, when undiverting into a previously unused diversion.
	* src/m4.h (includes): Add assert.h.
	* doc/m4.texinfo (Diversions): Add test.
	(Undivert): Enhance test.
	* NEWS: Document the speedup.

2008-12-12  Eric Blake  <ebb9@byu.net>

	Upgrade to FDL 1.3, keep COPYING in repository.
	* Makefile.am (MAINTAINERCLEANFILES): Don't remove COPYING.
	* .cvsignore: Don't ignore it.
	* .gitignore: Likewise.
	* COPYING: Store in repository, per automake 1.10.2
	recommendation.
	* m4/gnulib-cache.m4: Replace fdl module with fdl-1.3.
	* doc/m4.texinfo (GNU Free Documentation License): Upgrade
	license.
	* doc/Makefile.am (m4_TEXINFOS): Likewise.
	* NEWS: Mention the documentation license change.

2008-10-10  Eric Blake  <ebb9@byu.net>

	Release Version 1.4.12.
	* NEWS: Mention the release.

2008-10-06  Eric Blake  <ebb9@byu.net>

	Work around Solaris' sed inability to process NUL.
	* checks/check-them (SED): Allow user to override.

2008-09-25  Eric Blake  <ebb9@byu.net>

	Tweak error message on command line failure.
	* src/m4.c (process_file): Match wording of include builtin.
	* src/freeze.c (produce_frozen_state): Likewise.
	* m4/gnulib-cache.m4: Regenerate.
	* doc/m4.texinfo (Command line files, Using frozen files): Update
	tests accordingly.

2008-09-24  Eric Blake  <ebb9@byu.net>

	Unify error handling for reading directories.
	* src/path.c (m4_path_search): Factor open attempts...
	(m4_fopen): ...into new function, to reject directories.
	* doc/m4.texinfo (Include): Document that directories cannot be
	input files.

	Avoid bugs on platforms that mishandle trailing /.
	* m4/gnulib-cache.m4: Import fopen module.
	* doc/m4.texinfo (Command line files, Include): Add tests.
	(Using frozen files): This test now works on mingw.
	* checks/check-them (examples): Expand xerr to allow ignoring
	error output because of differences in platform errno values.

2008-09-22  Eric Blake  <ebb9@byu.net>

	Support alternate path separator.
	* m4/gnulib-cache.m4: Import dirname and filenamecat modules.
	* src/m4.h (includes): Add headers.
	* src/path.c (m4_path_search): Avoid literal use of '/' as path
	separator and when detecting absolute paths.

2008-09-16  Eric Blake  <ebb9@byu.net>

	Fix bootstrap for Solaris /bin/sh.
	* bootstrap: Avoid shell quoting pitfall.

2008-09-01  Eric Blake  <ebb9@byu.net>

	Fix building with -DDEBUG=1.
	* src/input.c (lex_debug) [DEBUG_INPUT]: Fix compilation failure.
	* src/symtab.c (symtab_debug) [DEBUG_SYM]: Likewise.
	* src/m4.c (includes) [DEBUG_STKOVF]: Likewise.
	Reported by Tom G. Christensen.

2008-09-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	Typos in source code comments.
	* src/builtin.c: Fix typos in comments.
	* src/input.c: Likewise.

2008-08-29  Eric Blake  <ebb9@byu.net>

	Fix manual date information.
	* doc/m4.texinfo: UPDATED refers to the day the manual was built,
	not the release date of M4.
	Based on a bison patch by Akim Demaille.

2008-08-27  Eric Blake  <ebb9@byu.net>

	Fix typo.
	* doc/m4.texinfo (Invoking m4): 'm4 -d+f' is not supported in this
	branch.

2008-08-25  Eric Blake  <ebb9@byu.net>

	Update recommendation now that libsigsegv 2.6 is released.
	* NEWS: Recommend libsigsegv 2.6+.
	* README: Likewise.

2008-08-21  Eric Blake  <ebb9@byu.net>

	Fix crash with traced defn(undef), regression from 2007-08-09.
	* src/builtin.c (m4_defn): Handle traced but undefined macros.
	* doc/m4.texinfo (Trace): Test it.
	* NEWS: Document it.

2008-08-18  Eric Blake  <ebb9@byu.net>

	Fix crash with 'm4 -N9', regression from 2006-09-14.
	* src/m4.c (main): Add missing break.
	* NEWS: Document it.

2008-08-15  Eric Blake  <ebb9@byu.net>

	Documentation updates.
	* doc/m4.texinfo (History): Mention 1.4.12.
	(Builtin): Enhance regression tests.
	(Debug Levels): Mention effect of -l.  Enhance regression tests.
	(Incompatibilities): Fix typo, and mention trace output.
	(Improved capitalize): Simplify example.

	Avoid compiler warning.
	* src/builtin.c (m4_ifelse): Avoid unused variable.
	* THANKS: Update.
	Reported by Tom G. Christensen.

	Improve 'git diff' of manual source.
	* .gitattributes (*.texi*): Add diff attribute.
	* bootstrap: Tell git how to use it.
	Inspired by Jim Meyering's similar patch for coreutils.

2008-08-11  Eric Blake  <ebb9@byu.net>

	Avoid triggering OS/2 bug in testsuite.
	* doc/m4.texinfo (Mkstemp): Don't assume test(1) status is 1.
	Reported by Elbert Pol.

2008-08-03  Eric Blake  <ebb9@byu.net>

	Increase ulimit stack value to be larger than SIGSTKSZ.
	* checks/stackovf.test (tmpfile): Use 300K rather than 50K, since
	at least OpenBSD's sh died early from an undersized stack limit.

2008-07-17  Eric Blake  <ebb9@byu.net>

	Remove redundant examples/stackovf.sh.
	* examples/stackovf.sh: Delete, now that checks has better
	version.
	* examples/Makefile.am (EXTRA_DIST): Don't distribute it.

2008-07-17  Eric Blake  <ebb9@byu.net>

	Adjust to c-stack changes in gnulib.
	* src/Makefile.am (m4_LDADD): Use libsigsegv when available and
	necessary, via LIBCSTACK.
	* src/m4.c (main) [DEBUG_STACKOVF]: Make it easier to test fault
	handlers.
	* checks/stackovf.test: New file.
	* checks/Makefile.in (CHECKS): Add stackovf.test, and factor...
	(DOC_CHECKS): ...generated documentation tests into new macro.
	(DISTFILES): Distribute stackovf.test.
	* checks/check-them: Special-case stackovf.test.
	* NEWS: Enhance the NEWS item for -L improvements.
	* README: Mention the optional dependency.
	* HACKING: Mention maintenance burden added by libsigsegv.

2008-06-21  Eric Blake  <ebb9@byu.net>

	Use new sigaction module.
	* m4/gnulib-cache.m4: Import sigaction module.
	* src/m4.c (main): Drop signal() calls.

2008-06-18  Eric Blake  <ebb9@byu.net>

	Also trap SIGILL, SIGFPE, SIGBUS.
	* m4/gnulib-cache.m4: Import strsignal module.
	* src/m4.c (main): Register more handlers, and prefer sigaction
	when available.
	(SIGBUS, NSIG): Provide fallback when lacking.
	(signal_message): New variable, to keep async-safety.
	(fault_handler): Display faulting signal description.
	* configure.ac (gl_DISABLE_THREADS): Request gnulib modules to
	optimize for single-threaded operation.

2008-06-06  Eric Blake  <ebb9@byu.net>

	Inform users what to do in case of programmer error.
	* src/m4.h (EXIT_INTERNAL_ERROR): New macro.
	* configure.ac (AC_TYPE_SIGNAL): Delete, now that we assume C89.
	* src/m4.c (fault_handler): New method.
	(program_error_message): New variable, for async-safety.
	(main): Print bug reporting address rather than dump core on any
	failed assertions or detected non-stack-overflow faults.

2008-06-06  Eric Blake  <ebb9@byu.net>

	Replace stackovf with gnulib c-stack.
	* m4/gnulib.cache.m4: Import c-stack module.
	* configure.ac (AC_CHECK_HEADERS_ONCE): Remove check for
	siginfo.h, sys/wait.h.
	(AC_CHECK_TYPES): Likewise for siginfo_t.
	(AC_CHECK_MEMBERS): Likewise for sa_sigaction, ss_sp.
	(AC_CHECK_FUNCS_ONCE): Likewise for sigaction, sigaltstack,
	sigstack, sigvec, strerror.
	(M4_cv_use_stackovf): Likewise for stack overflow detection.
	* src/Makefile.am (m4_SOURCES): Don't build stackovf.c.
	* src/stackovf.c: Delete.
	* src/m4.h (setup_stackovf_trap): Delete.
	* src/m4.c (stackovf_handler): Delete.
	(main): Use c_stack_action instead of setup_stackovf_trap.  If
	stack overflow is detectable, don't limit -L artificially.
	(usage): Document unlimited default on supported systems.
	* doc/m4.texinfo (Limits control): Document new default nesting
	limit.
	* NEWS: Document this change.

2008-07-30  Eric Blake  <ebb9@byu.net>

	Avoid regressions in trace and comment output.
	* doc/m4.texinfo (Trace): Add test.
	(Comments): Likewise.

2008-07-28  Eric Blake  <ebb9@byu.net>

	Optimize iteration examples.
	* examples/forloop2.m4: Avoid excess indir, by passing current
	counter value as parameter.
	* examples/foreachq3.m4: Avoid unneeded ifelse, by injecting an
	ignored argument.
	* doc/m4.texinfo (Improved forloop, Improved foreach): Update the
	documentation to match.

2008-07-26  Eric Blake  <ebb9@byu.net>
[--snip--]
