Bump to m4 1.4.19
[platform/upstream/m4.git] / ChangeLog
index 09c1333..e698bce 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-2013-09-15  Gary V. Vaughan  <gary@gnu.org>
-
-       configury: specify subdir-objects for future automake releases.
-       Latest automake warns about future incompatibility if
-       subdir-objects is not specified by AM_INIT_AUTOMAKE.
-       * configure.ac (AM_INIT_AUTOMAKE): Add subdir-objects.
-
-       bootstrap: require newer texinfo release.
-       * bootstrap.conf (buildreq): Bump required makeinfo binary
-       release number to 4.13 to support --bulid-dir option.
-
-       bootstrap: don't double-specify --no-changelog to gnulib-tool.
-       * bootstrap.conf (gnulib_tool_option_extras): Rename from
-       this...
-       (gnulib_tool_options): ...this, and append options rather than
-       overwrite.
-
-       bootstrap: sync with upstream.
-       * gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
-       gl/build-aux/funclib.sh, gl/build-aux/options-parser: Update
-       from upstream to pick up recent improvements.
-       * bootstrap: Regenerate.
-
-2013-08-17  Michael Witten  <mfwitten@gmail.com>  (tiny change)
-
-       Clean up documentation
-       * doc/m4.texinfo: Note that m4 is mostly compatible with SVR4.
-
-2013-08-17  Eric Blake  <eblake@redhat.com>
-
-       maint: update to latest gnulib
-       * gnulib: Update to latest, for various fixes.
-
-2013-04-18  Eric Blake  <eblake@redhat.com>
-
-       maint: update to latest gnulib
-       * gnulib: Update to latest, for regex fixes.
-
-2013-03-15  Eric Blake  <eblake@redhat.com>
-
-       build: avoid test failure on HPUX
-       * doc/m4.texi (Command line files): Skip tests on systems where it
-       is impossible to start with stdin/out closed.
-       Reported by Gary V. Vaughan.
-
-2013-03-12  Eric Blake  <eblake@redhat.com>
-
-       maint: update to latest gnulib
-       * gnulib: Update to latest, for mingw compile fixes.
-
-2013-03-11  Eric Blake  <eblake@redhat.com>
-
-       build: fix large diversions on mingw
-       * gl/lib/clean-temp.c.diff: New file.
-       * NEWS: Mention the fix.
-
-2013-03-08  Gary V. Vaughan  <gary@gnu.org>
-
-       bootstrap: remove reintroduced CVS cruft.
-       * bootstrap.conf (m4_ignore_gnulib_ignore): Remove.
-       The code this was factored from was removed between making the
-       bootstrap branch, and merging, so this function is actually
-       obsolete.
-
-       maint: automake 1.11.5 and earlier generate insecure dist
-       rules.
-       * configure.ac (AM_INIT_AUTOMAKE): Require 1.11.5 or newer.
-
-2010-09-17  Gary V. Vaughan  <gary@gnu.org>
-
-       bootstrap: upgrade to canonical upstream version.
-       * bootstrap.conf: New file to configure gnulib bootstrap.
-       * gl: New gnulib overrides directory.
-       * gl/modules/bootstrap, gl/modules/extract-trace,
-       gl/modules/funclib.sh, gl/modules/inline-source,
-       gl/modules/options-parser: Import canonical bootstrap modules.
-       * gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
-       gl/build-aux/funclib.sh, gl/build-aix/inline-source,
-       gl/build-aux/options-parser: Import module implementations.
-       * bootstrap: Regenerate.
-       * m4/gnulib-cache.m4: Regenerate.
-
-2013-01-02  Eric Blake  <eblake@redhat.com>
-
-       maint: automake recommends *.texi now
-       * doc/m4.texinfo: Move...
-       * doc/m4.texi: ...here, for the eventual automake 1.14.
-       * HACKING: Reflect the rename.
-       * doc/Makefile.am (info_TEXINFOS): Likewise.
-       * checks/Makefile.am ($(srcdir)/stamp-checks): Likewise.
-
-2013-01-01  Eric Blake  <eblake@redhat.com>
-
-       maint: bump copyright year
-       * all files: Version control now has a commit in 2013.
-
-       maint: update to latest gnulib
-       * gnulib: Update to latest, for rational range regex, build fixes,
-       copyright update.
-       * NEWS: Document this.
-
-2012-12-22  Eric Blake  <eblake@redhat.com>
-
-       maint: enable tight_scope syntax check
-       * src/Makefile.am (m4_SOURCES): Move m4.h...
-       (noinst_HEADERS): ...into separate listing for syntax check.
-       * src/m4.h: Add 'extern' to function declarations.
-       (expansion_level): Declare extern variable here...
-       * src/debug.c: ...not here.
-
-       maint: move syntax check exemptions into cfg.mk
-       * .x-sc_prohibit_tab_based_indentation: Delete file.
-       * .x-update-copyright: Likewise.
-       * Makefile.am (syntax_check_exceptions): Delete rule.
-       * cfg.mk (exclude_file_name_regexp): Move exemptions here.
-       (local-checks-to-skip): Re-enable copyright check.
-
-       build: update to latest gnulib
-       * gnulib: Update to latest.
-
-2012-11-19  Eric Blake  <eblake@redhat.com>
-
-       build: avoid problematic gcc 4.4 warnings
-       * configure.ac (nw): Disable gcc warnings that cause build
-       failures under RHEL 6.3.
-       * gnulib: Update to latest.
-
-2012-11-14  Paul Eggert  <eggert@cs.ucla.edu>
-
-       doc: improve prehistory discussion
-       * doc/m4.texinfo (History): Describe M6 and related processors.
-       From a suggestion by Doug McIlroy in
-       <http://lists.gnu.org/archive/html/m4-discuss/2012-05/msg00004.html>.
-       Also, improve citation quality by giving URLs and so forth.
-
-2012-09-21  Eric Blake  <eblake@redhat.com>
-
-       maint: drop more CVS cruft
-       * bootstrap (Version control): Don't generate .cvsignore or
-       prepopulate m4/.gitignore.
-       * .gitignore: Allow m4/gnulib-cache.m4 manually.
-
-2012-09-06  Eric Blake  <eblake@redhat.com>
-
-       maint: enable gcc warnings during git development
-       * configure.ac (gl_gcc_warnings): Alter default based on environment.
-
-2012-09-05  Stefanno Lattarini  <stefano.lattarini@gmail.com>  (tiny change)
-
-       maint: convert the last hand-written Makefile to automake
-       * checks/Makefile.in: Rename ...
-       * checks/Makefile.am: ... like this, and simplify and adjust to
-       make it proper as Automake input.
-
-2012-09-04  Eric Blake  <eblake@redhat.com>
-
-       maint: merge gitignore files
-       * build-aux/.gitignore: Delete.
-       * checks/.gitignore: Likewise.
-       * doc/.gitignore: Likewise.
-       * examples/.gitignore: Likewise.
-       * src/.gitignore: Likewise.
-       * .gitignore: Cover rules from deleted files.
-
-       maint: drop CVS cruft
-       * .cvsignore: Remove.
-       * build-aux/.cvsignore: Likewise.
-       * checks/.cvsignore: Likewise.
-       * doc/.cvsignore: Likewise.
-       * examples/.cvsignore: Likewise.
-       * src/.cvsignore: Likewise.
-
-       build: add more compiler checking
-       * configure.ac (nw): Turn on some warnings that no longer trigger
-       a gcc warning, or where we reduce the scope of unwarned code.
-       * src/m4.h (progname): Drop redundant declaration.
-       * src/builtin.c (includes): Use header for program_name.
-
-       build: pick up latest gnulib fixes
-       * gnulib: Update to latest.
-       * m4/gnulib-cache.m4: Regenerate.
-       * missing: Break symlink in order to work around automake version
-       mismatch issue.
-       * .gitignore: Update.
-       * .cvsignore: Likewise.
-
-       build: mark several pure functions
-       * src/m4.h (M4_GNUC_PURE): New macro.
-       * src/m4.c (fault_handler): Mark pure.
-       * src/builtin.c (find_builtin_by_addr, find_builtin_by_name):
-       Likewise.
-       * src/symtab.c (hash): Likewise.
-
-2012-09-01  Eric Blake  <eblake@redhat.com>
-
-       build: silence gcc warning
-       * configure.ac (M4_cv_gcc_pragma_push_works): New test.
-       (-Wformat-nonliteral): Disable for older gcc.
-       * src/format.c (expand_format): Mark our only uses of nonliteral
-       format as being safe.
-
-       doc: fix misuse of @xref
-       * doc/m4.texinfo (Inhibiting Invocation): Reword.
-
-2012-07-21  Eric Blake  <eblake@redhat.com>
-
-       bootstrap: avoid undefined variables
-       * bootstrap (func_fatal_error, func_usage, func_help)
-       (func_version): Use constants, not undefined variables; propagate
-       any write failures.
-       (func_missing_arg): Drop duplicate declaration.  Preinitialize
-       exit_cmd.
-       Reported by Stefano Lattarini.
-
-2012-06-26  Eric Blake  <eblake@redhat.com>
-
-       build: get missing from automake, not gnulib
-       * build-aux/missing: Break link to gnulib.
-       * .gitignore: Reflect this.
-
-2012-06-25  Eric Blake  <eblake@redhat.com>
-
-       maint: update copyright year
-       * all files: Run 'make update-copyright'.
-
-       build: deal with newer glibc vs. FORTIFY_SOURCE
-       * configure.ac (FORTIFY_SOURCE): Make conditional on optimization.
-
-2011-05-02  Eric Blake  <eblake@redhat.com>
-
-       build: pick up latest gnulib fixes
-       * gnulib: Update to latest, for fclose improvements.
-
-2011-04-30  Eric Blake  <eblake@redhat.com>
-
-       build: improve SIGPIPE emulation on mingw
-       * gnulib: Update to latest.
-       * m4/gnulib-cache.m4: Import sigpipe module, drop strtol.
-
-2011-04-29  Eric Blake  <eblake@redhat.com>
-
-       m4_defn: avoid compiler warning
-       * src/builtin.c (m4_defn): Nuke redundant condition.
-
-       m4_error: fix missing va_end
-       * src/m4.c (m4_error, m4_error_at_line): Add missing va_end.
-
-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.
+2021-05-28  Eric Blake  <eblake@redhat.com>
+
+       version 1.4.19
+       * NEWS: Record release date.
+
+2021-05-28  Eric Blake  <eblake@redhat.com>
+
+       tests: Skip signal detection on Haiku
+       On Haiku, using 'kill -9' fromm /bin/shactually causes a process to
+       die with the non-standard SIGKILLTHR 15, which causes 198.sysval to
+       fail from the unexpected value.
+
+       * doc/m4.texi (Sysval): Skip test on Haiku.
+       Reported by Bruno Haible,
+       https://lists.gnu.org/archive/html/bug-m4/2021-05/msg00004.html
+
+2021-05-26  Bruno Haible  <bruno@clisp.org>
+
+       Enable more single-thread optimizations in gnulib code
+       On many systems (esp. BSD ones), building a recent m4 snapshot produces these
+       warnings:
+
+       --------------------------------------------------------------------------------
+         CC       regex.o
+       In file included from ../../lib/regex_internal.h:57:0,
+                        from ../../lib/regex.c:70:
+       ../../lib/regcomp.c: In function 'rpl_regfree':
+       ../../lib/glthread/lock.h:640:38: warning: statement with no effect [-Wunused-value]
+        # define glthread_lock_destroy(NAME) 0
+                                             ^
+       ../../lib/regex_internal.h:60:26: note: in expansion of macro 'glthread_lock_destroy'
+        # define lock_fini(lock) glthread_lock_destroy (&(lock))
+                                 ^
+       ...
+       --------------------------------------------------------------------------------
+       According to the Gnulib documentation section "Optimizations of multithreaded
+       code" several more optimizations can be enabled. This patch
+         - enables these single-threading optimizations,
+         - by doing so, gets rid of the warnings in regex.c,
+         - causes no test failures.
+
+       * configure.ac (GNULIB_REGEX_SINGLE_THREAD, GNULIB_MBRTOWC_SINGLE_THREAD,
+       GNULIB_WCHAR_SINGLE_LOCALE): Define as C macros.
+       Message-Id: <3311608.oHEOCP8NKg@omega>
+
+2021-05-26  Eric Blake  <eblake@redhat.com>
+
+       maint: Update to newer gnulib
+       Gnulib has improved stack overflow detection (the c-stack module now
+       uses gnulib's stripped-down libsigsegv on more platforms, without
+       having to install GNU libsigsegv); with this update, GNU Linux systems
+       get stack overflow protection without an external library dependency.
        * gnulib: Update to latest.
-       * README: Increase libsigsegv recommendation.
-       * HACKING: Likewise.  Tweak release instructions.
-       * NEWS: Mention the release.
+       * NEWS: Mention the impact.
 
-       Improve parsing example.
-       * doc/m4.texinfo (Input processing): Double-quote argument to
-       translit, for robustness.
-       * THANKS: Update.
-       Reported by Chris Penev.
+2021-05-12  Eric Blake  <eblake@redhat.com>
 
-2010-01-29  Eric Blake  <ebb9@byu.net>
+       maint: translation string tweak
+       * src/m4.c (usage): Tweak translation of a newline.
+       Reported by Benno Schulenberg,
+       https://lists.gnu.org/archive/html/m4-discuss/2021-05/msg00011.html
 
-       Document upcoming release.
-       * gnulib: Update to latest.
-       * doc/m4.texinfo (History): Mention 1.4.14.
+2021-05-11  Eric Blake  <eblake@redhat.com>
 
-2010-01-06  Eric Blake  <ebb9@byu.net>
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
 
-       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.
+       version 1.4.18d
+       * NEWS: Recored release date.
 
-       Clarify minimum bootstrap requirements.
-       * bootstrap: Avoid out-of-date duplicated data.
+2021-05-10  Eric Blake  <eblake@redhat.com>
 
-       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.
+       po: fix syntax-check
+       * po/POTFILES.in: Update list to match previous patch.
 
-       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.
+       m4: translate more strings
+       * src/m4.c (usage): Split large paragraphs, and mark for translation.
+       (main): Translate more strings.
        * src/builtin.c: Likewise.
-       * src/debug.c: Likewise.
-       * src/eval.c: Likewise.
-       * src/format.c: Likewise.
+       * src/eval.c (evaluate): Likewise.
+       * src/format.c (expand_format): 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.
+       Reported by Benno Schulenberg:
+       https://lists.gnu.org/archive/html/m4-discuss/2021-05/msg00005.html
 
-2009-02-19  Eric Blake  <ebb9@byu.net>
+2021-05-10  Eric Blake  <eblake@redhat.com>
 
-       Fix regression in translit.
-       * src/builtin.c (m4_translit): Use correct comparison.
-       * doc/m4.texinfo (Translit): Enhance test.
+       maint: update gnulib
+       Fix several issues reported by Bruno Haible while testing 1.4.18b:
+       https://lists.gnu.org/archive/html/bug-m4/2021-05/msg00002.html
+       https://lists.gnu.org/archive/html/bug-m4/2021-05/msg00003.html
 
-       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.
+       * gnulib: Bump to latest, for various fixes.
+       * NEWS: Mention this.
 
-2009-02-18  Eric Blake  <ebb9@byu.net>
+2021-05-10  Eric Blake  <eblake@redhat.com>
 
-       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.
+       maint: update m4-latest* symlinks during upload
+       Avoid the situation we had for several years where m4-latest.tar.xz
+       pointed to m4-1.4.17.tar.xz in spite of m4-1.4.18.tar.xz existing.
+       https://lists.gnu.org/archive/html/m4-discuss/2021-05/msg00003.html
 
-       Update copyright year.
-       * THANKS: Mention 2009 in copyright year.
+       * cfg.mk (GNUPLOADFLAGS): Update *-latest symlinks during gnupload.
 
-       Prefer buffer over byte operations.
-       * src/format.c (expand_format): Use strchr for speed.
-       * src/builtin.c (substitute, expand_user_macro): Likewise.
+2021-05-10  Eric Blake  <eblake@redhat.com>
 
-       Speed up esyscmd with buffer reads.
-       * src/builtin.c (m4_esyscmd): Read blocks directly into obstack,
-       rather than repeatedly reading bytes.  Detect read errors.
+       maint: mention ci project
+       Bruno Haible has added a continuous integration environment:
+       https://lists.gnu.org/archive/html/bug-m4/2020-03/msg00000.html
 
-       Avoid risk of stack overflow.
-       * src/output.c (insert_file): Avoid stack allocation of large
-       buffer.
-       (freeze_diversions): Avoid spurious semicolon.
+       * HACKING (Continuous Integration): New section.
 
-2009-02-16  Eric Blake  <ebb9@byu.net>
+2021-05-10  Bruno Haible  <bruno@clisp.org>
 
-       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.
+       eval: avoid undefined behaviour when parsing -2147483648
+       * src/eval.c (eval_lex): Use an unsigned variable for accumulating the
+       value.
+       https://lists.gnu.org/archive/html/bug-m4/2021-05/msg00001.html
+
+2021-05-07  Eric Blake  <eblake@redhat.com>
+
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
+
+       version 1.4.18b
+       * NEWS: Record release date.
+
+       maint: prepare for beta release
+       * all: Prefer https over http in URLs.
+       * doc/m4.texi (History): Update URLs to follow redirects.
+       * NEWS: Prepare for release.
+       * cfg.mk (old_NEWS_hash): Regenerate via 'make update-NEWS-hash'
+       * HACKING: Update URL to gnulib, drop reference to CVS.
+
+       maint: update gnulib to latest
+       * gnulib: Pick up latest in preparation for release.
+
+2021-05-07  Eric Blake  <eblake@redhat.com>
+
+       maint: update bootstrap, (re-)enable po file generation
+       In commit 4694c4e67, I disabled bootstrap pulling in po files, because
+       I got an error while attempting to get them, and remembered that while
+       the experimental 2.0 has a .pot file, branch-1.4 (and the 1.4.18
+       release) historically did not.  Basically, since the translation
+       project does not have any m4.pot corresponding to a released m4 that
+       needs it, they deleted tp/latest/m4, and with nothing to pull from,
+       rsync fails.  I did not, however, realize that commit 610290de had
+       intentionally added translation support, such that m4 1.4.19 WILL have
+       translations; so until I get that directory reinstated by releasing
+       1.4.18b, I'll just use './bootstrap --skip-po'.
+
+       Meanwhile, Gary's upstream bootstrap has had some commits
+       (https://github.com/gnulib-modules/bootstrap.git)
+       Regenerate them via:
+       for f in gl/build-aux/*; do cp ~/bootstrap/build-aux/$(basename $f) $f; done
+       gl/build-aux/inline-source gl/build-aux/bootstrap.in > bootstrap
+
+       * gl/build-aux/*: Sync from upstream.
+       * bootstrap: Regenerate.
+       * bootstrap.conf (m4_bootstrap_options_prep): Re-enable po.
+       * NEWS: Document this as intentional.
+       Fixes: 4694c4e67
 
-2009-01-01  Eric Blake  <ebb9@byu.net>
+2021-05-07  Eric Blake  <eblake@redhat.com>
 
-       Update copyright year.
-       * NEWS: M4 1.4.13 will occur in 2009.
-       * doc/m4.texinfo (History): Likewise.
+       maint: fix syntax-check issues
+       * src/Makefile.am (m4_LDADD): Rename...
+       (LDADD): ...to this, and use spelling that satisfies syntax-check.
+       * po/POTFILES.in: Update to satisfy syntax-check.
+       * cfg.mk (old_NEWS_hash): Update with 'make update-NEWS-hash'.
 
-2008-12-24  Eric Blake  <ebb9@byu.net>
+       maint: bump copyright year
+       * all: Use 'make update-copyright' to add 2021.
 
-       Prepare for eventual release.
-       * doc/m4.texinfo (History): Mention 1.4.13.
+       README: add GNU Project notice
+       * README: Add section to attract more people towards the GNU project.
+       Inspired by a suggestion from Jose E. Marchesi <jemarch@gnu.org> on
+       the gnu-prog-discuss mailing list.
 
-2008-12-22  Eric Blake  <ebb9@byu.net>
+2021-04-22  Eric Blake  <eblake@redhat.com>
 
-       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.
+       m4: change command-line -H default
+       * src/m4.h (HASHMAX): Bump to ~64k.
+       * doc/m4.texi (Limits control): Document it.
        * 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>
-
-       Give example for O(n) foreach on m4 1.4.x.
-       * examples/foreachq4.m4: New file.
-       * examples/Makefile.am (EXTRA_DIST): Distribute it.
-       * doc/m4.texinfo (Improved foreach): Document linear foreach with
-       m4 1.4.5 and greater.
-
-2008-07-17  Eric Blake  <ebb9@byu.net>
-
-       Fix missing copyright notices.
-       * acinclude.m4: Add copyright license details.
-       * c-boxes.el: Likewise.
-       * checks/get-them: Likewise.
-       * checks/check-them: Likewise.
-
-2008-07-13  Eric Blake  <ebb9@byu.net>
-
-       Add -g/--gnu command line argument.
-       * src/m4.c (usage): Mention the new option.
-       (long_options, OPTSTRING): Add new option.
-       (main): Use it.
-       * NEWS: Document this addition.
-       * doc/m4.texinfo (Limits control): Likewise.
-       (Incompatibilities): Mention future use of POSIXLY_CORRECT.
-       * THANKS: Update.
-       Reported by Joel E. Denny.
-
-2008-07-11  Eric Blake  <ebb9@byu.net>
-
-       Avoid bogus whitespace in @ovar, @dvar.
-       * doc/m4.texinfo (ovar, dvar): Add @c.
-       Based on patch by Ralf Wildenhues to Autoconf manual.
-
-2008-06-16  Eric Blake  <ebb9@byu.net>
-
-       Add missing const qualifications.
-       * src/builtin.c (builtin_tab): Declare array elements as const.
-
-2008-06-03  Eric Blake  <ebb9@byu.net>
-
-       Use progname module rather than rolling our own program_name.
-       * m4/gnulib-cache.m4: Import progname module.
-       * src/m4.c (program_name): Replace...
-       (main): ...with a call to set_program_name.
-
-2008-06-02  Eric Blake  <ebb9@byu.net>
-
-       Allow autobuild usage.
-       * m4/gnulib.cache: Import autobuild module.
-
-2008-05-23  Eric Blake  <ebb9@byu.net>
-
-       Make closing files be consistent.
-       * src/freeze.c (reload_frozen_state): Use close_stream.
-       Reported by Jean-Charles Longuet.
-
-2008-05-22  Eric Blake  <ebb9@byu.net>
-
-       Don't allow failure to freeze give exit status of 0.
-       * src/freeze.c (produce_frozen_state): Guarantee non-zero exit on
-       fopen failure.
-       * doc/m4.texinfo (Using frozen files): Test the fix.
-       * THANKS: Update.
-       Reported by Jean-Charles Longuet.
-
-2008-05-09  Eric Blake  <ebb9@byu.net>
-
-       Improve error message when frozen file is invalid.
-       * src/freeze.c (reload_frozen_state): Track current line.
-       [GET_STRING]: New helper macro.
-
-2008-05-09  Eric Blake  <ebb9@byu.net>
-
-       Detect integer overflow when loading frozen file.
-       * src/m4.h (includes): Add limits.h.
-       (_): Define as a no-op placeholder for now.
-       * src/freeze.c (reload_frozen_state) [GET_NUMBER]: Rewrite to fail
-       immediately on overflow.
-       Reported by Jim Meyering.
-
-2008-05-07  Eric Blake  <ebb9@byu.net>
-
-       Fix traceon regression introduced 2006-06-06.
-       * src/builtin.m4 (traceon): Only perform insertion if lookup
-       fails.
-       * doc/m4.texinfo (Trace): Test for the bug.
-       * NEWS: Document it.
-
-2008-05-03  Eric Blake  <ebb9@byu.net>
-
-       Document define_blind.
-       * doc/m4.texinfo (Ifelse): Add a new composite macro.
-       * THANKS: Update.
-       Suggested by Mike R.
-
-2008-04-24  Eric Blake  <ebb9@byu.net>
-
-       Add debugmode test.
-       * doc/m4.texinfo (Debug Levels): Test -di behavior.
-       (Changeword, Location): Correct examples.
-       * checks/check-them (examples): Update to account for recommended
-       location for running tests.
-       * doc/m4.texinfo (Debug Levels): Test this behavior.
-
-2008-04-21  Eric Blake  <ebb9@byu.net>
-
-       Fix spelling of attribution to Christopher Strachey.
-       * doc/m4.texinfo (History, Inhibiting Invocation): Fix typo.
-       * THANKS: Update.
-       Reported by Fernando Carrijo.
-
-2008-04-17  Eric Blake  <ebb9@byu.net>
-
-       Fix buildbot failure.
-       * doc/m4.texinfo (Diversions): Consume all of m4's output, in case
-       SIGPIPE is ignored.
-       * THANKS: Update.
-       Detected by Bob Proulx's buildbot.
-
-2008-04-17  Eric Blake  <ebb9@byu.net>
-
-       Avoid gcc shadowing warnings.
-       * src/builtin.c (m4_format): s/format/expand_format, so local
-       variables can be named format.
-       * src/format.c (format): Rename...
-       (expand_format): ...to this, and avoid the name index.
-       * src/input.c (push_file): Avoid the name close.
-       * src/m4.h (expand_format): Adjust prototype.
-       * src/output.c (threshold_diversion_CB): Avoid the name div.
-
-2008-04-15  Eric Blake  <ebb9@byu.net>
-
-       Another 'make installcheck' fix.
-       * doc/m4.texinfo (Diversions): s/m4/__program__/ in case
-       --program-prefix was active.
-
-2008-04-11  Eric Blake  <ebb9@byu.net>
-
-       Ensure --program-prefix doesn't regress.
-       * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Enforce change from
-       2008-03-10 by testing it at 'make distcheck' time.
-
-2008-04-11  Eric Blake  <ebb9@byu.net>
-
-       Improve OS/2+emx build.
-       * src/m4.h [__EMX__]: OS/2 does not have a Unix-compatible
-       system(3), no matter what other macros it pre-defined.
-       * doc/m4.texinfo (Mkstemp): Rework test to avoid globbing failure
-       on OS/2.
-       * src/builtin.c (predefined_tab): Ensure all possible system
-       identifiers are defined, not just the first; the testsuite will
-       catch if multiple identifiers mistakenly made it through.
-       * THANKS: Update.
-       Reported by Elbert Pol.
-
-2008-04-09  Eric Blake  <ebb9@byu.net>
-
-       Remove redundant configure macros.
-       * configure.ac (AC_CANONICAL_BUILD, AC_CANONICAL_HOST)
-       (AC_SYS_LARGEFILE, AC_TYPE_SIZE_T): Delete, since gnulib does
-       this.
-       (AC_CHECK_HEADERS_ONCE): Remove limits.h.
-
-2008-08-07  Bruno Haible  <bruno@clisp.org>  (tiny change)
-
-       Run m4 tests prior to gnulib unit tests.
-       * Makefile.am (SUBDIRS): Swap order of directories.
-
-2008-04-02  Eric Blake  <ebb9@byu.net>
-
-       Release Version 1.4.11.
-       * NEWS: Mention the release.
-
-       Prepare for release.
-       * maint.mk (alpha): Check for PREV_VERSION setting sooner, and
-       remove tag operation.
-       (version-check): Enhance this check.
-       (prev-tarball): Depend on version-check.
-       (this-vc-tag): Delete, and mention need to run tag...
-       * HACKING: ...here, prior to make maintainer-distcheck.
-       Update the instructions to match this particular release process.
-       * Makefile.am (.version, announcement): Allow for VPATH build.
-       * cfg.mk (gnulib_dir): Likewise.
-       * doc/Makefile.am ($(srcdir)/m4.1): Include release number in man
-       page.
-
-2008-04-01  Eric Blake  <ebb9@byu.net>
-
-       Speed up index builtin.
-       * m4/gnulib-cache: Import strstr module.
-       * NEWS: Mention the speedup.
-
-2008-03-29  Eric Blake  <ebb9@byu.net>
-
-       Fix testsuite on mingw, OpenBSD.
-       * src/format.c (ARG_DOUBLE): Use strtod, not atof.
-       * src/Makefile.am (m4_LDADD): Use POW_LIB when needed.
-       * doc/m4.texinfo (Format): Add hex-float support.
-       * NEWS: Document this.
-
-2008-03-27  Eric Blake  <ebb9@byu.net>
-
-       Pull other useful doc fixes from branch-1.6.
-       * doc/m4.texinfo (Arguments): Enable test of
-       --warn-macro-sequence.
-       (Defn): Test length of builtin token.
-       (Builtin, Ifelse, Changequote): Add more regression tests.
-
-2008-03-27  Eric Blake  <ebb9@byu.net>
-
-       Add test for divert bug on 2007-05-28, patched 2007-07-21.
-       * doc/m4.texinfo (Diversions): Add test.
-
-2008-03-24  Eric Blake  <ebb9@byu.net>
-
-       Pull GNUmakefile from gnulib.
-       * m4/gnulib-cache.m4: Import gnumakefile module.
-       * GNUmakefile: Remove from version control; supplied by gnulib
-       instead.
-       * configure.ac (AC_INIT): Track intra-release version with
-       git-version-gen.
-       (AC_CONFIG_LINKS): Let gnulib do this now.
-       * Makefile.am (distclean-local): Likewise.
-       (EXTRA_DIST): Likewise.  Also handle renamed files.
-       * (.version, dist-hook): Improve version handling.
-       * Makefile.cfg: Rename...
-       * cfg.mk: ...to this.
-       * Makefile.maint: Rename...
-       * maint.mk: ...to this.
-       (ME, makefile-check, m4-check): Use new macro instead of
-       hard-coded name.
-       * HACKING: Mention that maintainer rules should now work in VPATH
-       builds.
-
-2008-03-15  Eric Blake  <ebb9@byu.net>
-
-       Document join, in order to fix bug in m4wrap example.
-       * doc/m4.texinfo (Improved m4wrap): New node.
-       (Defn, Location): Enhance tests.
-       (Shift): Document the composite macro join.
-       (Incompatibilities): Move documentation of LIFO vs. FIFO...
-       (M4wrap): ...here, to match improved example.
-
-2008-03-10  Eric Blake  <ebb9@byu.net>
-
-       Allow 'make installcheck' with './configure --program-prefix'.
-       * checks/Makefile.in (program_transform_name): New macro.
-       (installcheck): Use it to transform name of m4 before testing.
-       * checks/check-them (m4): Add -m option, to allow testing m4 by a
-       different name.
-       * checks/get-them: Allow xout and xerr notation.
-
-2008-02-25  Eric Blake  <ebb9@byu.net>
-
-       Improve release process.
-       * configure.ac (AM_INIT_AUTOMAKE): Increase requirement, and add
-       dist-lzma.
-       * HACKING: Update for git release procedures.
-       * Makefile.cfg: New file.
-       * GNUmakefile: Use it.
-       * Makefile.maint (gzip_rsyncable, GZIP_ENV, GIT, VC, VC-tag)
-       (VERSION_REGEXP, this-vc-tag, my_distdir, null_AM_MAKEFLAGS)
-       (TMPDIR, gnulib-version): New macros, borrowed from coreutils.
-       (makefile-check, news-date-check, changelog-check, m4-check)
-       (vc-diff-check, maintainer-distcheck, vc-dist, my-distcheck)
-       (announcement, alpha, beta, major): New rules, borrowed from
-       coreutils.
-       (TEXI2HTML, cvs-release, update-timestamps, cvs-news, cvs-commit)
-       (cvs-dist): Delete.
-       * Makefile.am (EXTRA_DIST): Distribute new file.
-
-2008-02-19  Eric Blake  <ebb9@byu.net>
-
-       Clean up foreach example.
-       * doc/m4.texinfo (Foreach, Improved foreach): Document another
-       shortcoming in foreach.m4.
-
-2008-02-16  Eric Blake  <ebb9@byu.net>
-
-       Add regression test for multi-character quote recursion.
-       * examples/foreach2.m4: Use $0 rather than spelling out name.
-       * examples/foreachq2.m4: Likewise.
-       * examples/forloop2.m4: Likewise.
-       * examples/hanoi.m4: Likewise.
-       * examples/trace.m4: Likewise.
-       * doc/m4.texinfo (Improved forloop): Document advantage of $0.
-       (Improved foreach): Adjust dump from file.
-
-2008-02-13  Eric Blake  <ebb9@byu.net>
-
-       Fix texinfo grammar.
-       * doc/m4.texinfo (Incompatibilities): Use @. after capital.
-       (History): Use @: after abbreviations.
-       (M4exit): Use correct Latin abbreviation.
-
-2008-02-11  Eric Blake  <ebb9@byu.net>
-
-       Document behavior of __gnu__().
-       * doc/m4.texinfo (Platform macros): Enhance test.
-       (Macro expansion): New test.
-
-2008-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * checks/Makefile.in: Use @SET_MAKE@, and use @SHELL@ rather
-       than hard-coding /bin/sh.
-       * THANKS: Update.
-       Reported by Lawson Chan.
-
-2007-12-13  Paolo Bonzini  <bonzini@gnu.org>  (tiny change)
-
-       * doc/m4.texinfo (Inhibiting Invocation): Fix quoting of a quoting
-       example.
-       * THANKS: Update.
-       Reported by Giovanni Toffetti.
-
-2007-12-07  Eric Blake  <ebb9@byu.net>
-
-       Minor security fix: Quote output of mkstemp.
-       * src/builtin.c (mkstemp_helper): Produce quoted output.
-       * doc/m4.texinfo (Mkstemp): Update the documentation and tests.
-       * NEWS: Document this change.
-
-2007-12-04  Eric Blake  <ebb9@byu.net>
-
-       Fix builds with OpenBSD make.
-       * doc/Makefile.am (HELP2MAN): New macro.
-       (man_MANS, m4.1): Fix rules for building m4.1 into srcdir.
-       * README: Update copyright.
-       * HACKING: Mention help2man and makeinfo dependencies.
-
-2007-11-22  Eric Blake  <ebb9@byu.net>
-
-       Security fix: avoid arbitrary code execution with 'm4 -F'.
-       * src/freeze.c (produce_frozen_state): Never pass raw file name as
-       printf format.
-       * NEWS: Document this fix.
-
-2007-11-07  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Pseudo Arguments): Test more corner cases.
-
-2007-11-05  Eric Blake  <ebb9@byu.net>
-
-       Use build-aux directory.
-       * configure.ac (PACKAGE, VERSION): Delete, since Automake does
-       this now.
-       (AC_CONFIG_AUX_DIR): Add, with auxiliary files in build-aux
-       instead of the top level.
-       (AC_INIT_AUTOMAKE): Increase requirement, and add dist-lzma.
-       * Makefile.am (EXTRA_DIST): Gnulib now manages gendocs.sh.
-       * bootstrap: Adjust accordingly.
-       * m4/gnulib-cache.m4: Add --aux-dir option.
-       * doc/Makefile.am (m4.1): Rewrite rule to use build-aux/missing.
-
-2007-10-31  Eric Blake  <ebb9@byu.net>
-
-       Test more corner cases.
-       * doc/m4.texinfo (Changecom, Pseudo Arguments): Beef up tests.
-       (Improved foreach): Document alternate foreachq style.
-
-2007-10-28  Eric Blake  <ebb9@byu.net>
-
-       More test coverage for autoconf usage patterns.
-       * doc/m4.texinfo (Inhibiting Invocation, Pseudo Arguments)
-       (Builtin): Add new undocumented tests.
-       (Shift): Document cond macro, and add new test.
-
-2007-10-27  Eric Blake  <ebb9@byu.net>
-
-       Document one use of changequote(`(',`)').
-       * doc/m4.texinfo (Changequote): Add new test, based on recent
-       autoconf addition of m4_expand.
-
-2007-10-22  Eric Blake  <ebb9@byu.net>
-
-       Never let printf failures go undetected.
-       * m4/gnulib-cache.m4: Import announce-gen, git-version-gen,
-       intprops, strtod, and xprintf modules.  Remove deprecated free
-       module.  Replace vasprintf-posix and xvasprintf with
-       xvasprintf-posix.
-       * src/m4.h: Include xprintf.h.
-       * src/builtin.c (ntoa): Export.
-       (m4_errprint): Adjust all *printf callers.
-       * src/debug.c (debug_message_prefix, trace_format): Likewise.
+       maint: another gnulib update
+       * gnulib: Update to latest, to fix build on rawhide.
+
+2021-04-21  Eric Blake  <eblake@redhat.com>
+
+       symtab: use less memory in pushdef stacks
+       No need to xstrdup identical names when we can share the same name
+       across the pushdef stack.
+
+       * src/symtab.c (free_symbol): Don't free shared name.
+       (lookup_symbol): Share name across pushdef stack.
+
+2021-04-21  Eric Blake  <eblake@redhat.com>
+
+       symtab: make symtab private
+       No need for a leaky abstraction of freezing to have to duplicate how
+       our symbol hash table is organized; use the public function
+       hack_all_symbols instead.  This will make it easier to refactor the
+       symbol table (such as automatic resizing, or switching to a trie).
+
+       * src/m4.h (symtab, SYMBOL_NEXT): Make private.
+       * src/freeze.c (produce_frozen_state): Split out...
+       (freeze_symbol): ...new helper, for use by hack_all_symbols.
+       * src/symtab.c (lookup_symbol, symtab_print_list): Update to treat
+       next as internal-only code.
+
+2021-04-21  Eric Blake  <eblake@redhat.com>
+
+       symtab: sort by hash before name
+       It is faster to do an integer compare than a string compare when
+       managing hash table collisions (reserving a string compare for ties).
+       Testing with CFLAGS=-DDEBUG_SYM=1 and 'time M4=src/m4 autoconf -f',
+       the results are noticeable; on my machine, execution speeds up from
+       2.3s to 2.2s, and the debug trace that used to report:
+
+       m4: lookup mode 0 called 1243301 times, 7859589 compares, 6734330 misses, 23941043 bytes
+
+       now reports
+
+       m4: lookup mode 0 called 1243301 times, 1125259 compares, 0 misses, 12433237 bytes
+
+       * src/m4.h (struct symbol): Add hash member.
+       * src/symtab.c (lookup_symbol): Sort by hash first, then name.
+       (symtab_print_list): Add hash debug.
+
+2021-04-21  Eric Blake  <eblake@redhat.com>
+
+       maint: switch from git:// to https:// for gnulib submodule
+       https:// is nicer than git:// for a transport for avoiding
+       man-in-the-middle attacks, provided that the server is using a
+       new-enough version of git to make https:// efficient (which
+       savannah does).
+       * .gitmodules: Prefer better URL.
+
+2021-04-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: port to Solaris 10
+       Add libraries needed by current Gnulib.
+       * src/Makefile.am (m4_LDADD): Add LIB_CLOCK_GETTIME,
+       LIB_GETRANDOM, LIB_HARD_LOCALE, LIB_POSIX_SPAWN,
+       LIB_SETLOCALE_NULL, LIBUNISTRING, INTL_MACOSX_LIBS.
+       These are all needed by current Gnulib, according to gnulib-tool.
+       LIB_CLOCK_GETTIME is certainly needed for Solaris 10; otherwise
+       the m4 link fails with clock_gettime not found.
+
+       maint: port to macOS 11.2.3 (arm64)
+       * m4/gnulib-cache.m4: Add fopen-gnu, replacing cloexec and fopen.
+       Avoid getopt-posix-tests, since they are not needed for m4
+       and currently fail on macOS 11.2.3 (arm64).
+       * src/builtin.c (m4_incr, m4_decr): Avoid undefined behavior
+       on integer overflow that causes tests to fail on macOS.
+       * src/debug.c (debug_set_output):
+       * src/output.c (m4_tmpfile, m4_tmpopen):
+       * src/path.c (m4_fopen):
+       Use GNU fopen with "e" rather than set_cloexec_flag.  This is
+       simpler, and works around a Gnulib bug on macOS with fopen
+       being replaced by rpl_fopen sometimes but not other times.
+       * src/freeze.c (produce_frozen_state): Use GNU fopen with "e";
+       no need to expose the fd to subprocesses.
+
+       build: update gnulib submodule to latest
+
+2021-04-17  Eric Blake  <eblake@redhat.com>
+
+       symtab: drop redundant symbol flag
+       In writing the previous patch, I noticed that the shadow flag is only
+       ever set when a pushdef stack is present, which makes it redundant now
+       that the pushdef stack is separate from the hash collision stack.
+
+       * src/m4.h (SYMBOL_SHADOWED): Delete.
+       * src/builtin.c (dump_symbol): Simplify, now that hack_all_symbols
+       no longer visits shadowed macros.
+       * src/symtab.c (lookup_symbol, symtab_print_list): Simplify.
+
+2021-04-17  Eric Blake  <eblake@redhat.com>
+
+       symtab: better handling of macro stacks
+       I ran into a scenario where running a program took 22s with the
+       default -H509, but less than a second with -H517 [1].  The culprit?  A
+       collision between 'stack' and 'substr' in the default hash table size
+       caused lookups for substr to get progressively slower as pushdef stack
+       got deeper.  This is easy enough to fix, and may also make it easier
+       to dynamically grow the hashtable.
+
+       [1] https://lists.gnu.org/archive/html/bug-m4/2021-04/msg00000.html
+
+       * src/m4.h (struct symbol): Add stack member.
+       * src/symtab.c (lookup_symbol): Separate stack from bucket list.
+       (symtab_print_list): Update traversal to match.
        * src/freeze.c (produce_frozen_state): Likewise.
-       * src/input.c [DEBUG_INPUT]: Likewise.
-       * src/m4.c (usage): Likewise.
-       * src/m4.h (DEBUG_PRINT1, DEBUG_PRINT3, DEBUG_MESSAGE)
-       (DEBUG_MESSAGE1, DEBUG_MESSAGE2): Likewise.
-       * src/output.c (shipout_text, freeze_diversione): Likewise.
-       * src/path.c [DEBUG_INCL]: Likewise.
-       * src/stackovf.c (process_sigsegv) [DEBUG_STKOVF]: Likewise.
-       * src/symtab.c [DEBUG_SYM]: Likewise.
-
-2007-10-17  Eric Blake  <ebb9@byu.net>
-
-       Fix 'm4 -F file -t undefined'.
-       * src/freeze.c (produce_frozen_state): Avoid core dump.
-       * doc/m4.texinfo (Using frozen files): Test for the bug.
-       * NEWS: Mention the fix.
-
-2007-10-09  Eric Blake  <ebb9@byu.net>
-
-       Avoid regexp regression.
-       * doc/m4.texinfo (Regexp, Patsubst): Test \ expansion.
-
-2007-10-02  Eric Blake  <ebb9@byu.net>
-
-       Add more examples and tests.
-       * doc/m4.texinfo (Patsubst): Use the examples directory.  Also
-       document shortfall.
-       (Improved capitalize): New node.
-       (Index macro, Regexp): Test more code paths.
-       * examples/capitalize.m4: Update to match manual.
-       * examples/capitalize2.m4: New file.
-       * examples/foreachq3.m4: Likewise.
-       * examples/join.m4: Likewise.
-       * examples/loop.m4: Likewise.
-       * examples/wraplifo.m4: Likewise.
-       * examples/wraplifo2.m4: Likewise.
-       * examples/Makefile.am (EXTRA_DIST): Distribute new files.
-
-2007-09-24  Eric Blake  <ebb9@byu.net>
-
-       Create .gitignore alongside .cvsignore.
-       * bootstrap (LC_ALL): Set up front.
-       (version control) Borrow idea from head, to avoid churn in
-       m4/.*ignore files modified by gnulib-tool.
-
-2007-09-13  Eric Blake  <ebb9@byu.net>
-
-       * AUTHORS: Fix typo.
-
-2007-09-07  Eric Blake  <ebb9@byu.net>
-
-       * AUTHORS: Simplify, to match libtool and autoconf layout.
-       * THANKS: Sync with head.
-
-2007-08-10  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Compatibility): Sync with head.
-
-2007-08-10  Konrad Schwarz  <konrad.schwarz@siemens.com>  (tiny change)
-       and Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Defn): Update wording.
-
-2007-08-09  Eric Blake  <ebb9@byu.net>
-
-       POSIX requires defn(`a',`b') to concatenate definitions.
-       * src/builtin.c (m4_defn): Allow multiple arguments, but warn if
-       trying to mix a builtin with anything else.
-       * doc/m4.texinfo (Defn): Document a use for this POSIX
-       requirement.
-       (Incompatibilities): Update to match current status.
-       * NEWS: Document this change.
-       * THANKS: Update.
-       Reported by Konrad Schwarz.
-
-2007-08-04  Eric Blake  <ebb9@byu.net>
-
-       Normalize all GPL license notices.
-       * GNUmakefile: Update license wording.
-       * Makefile.am: Likewise.
-       * Makefile.maint: Likewise.
-       * bootstrap: Likewise.
-       * commit: Likewise.
-       * configure.ac: Likewise.
-       * checks/Makefile.in: Likewise.
-       * doc/Makefile.am: Likewise.
-       * examples/Makefile.am: Likewise.
-       * src/Makefile.am: 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/stackovf.c: Likewise.
-       * src/symtab.c: Likewise.
-
-2007-07-21  Eric Blake  <ebb9@byu.net>
-
-       Fix regression on NetBSD from 2007-05-28.
-       * src/output.c (m4_tmpopen): Explicitly reset append-mode stream
-       position to byte 0.
-       * NEWS: Document this fix.
-       * THANKS: Update.
-       Reported by Thomas Klausner.
-
-2007-07-20  Eric Blake  <ebb9@byu.net>
-
-       Fix 'make distcheck' issues.
-       * Makefile.am (EXTRA_DIST): No need to distribute
-       gpl-3.0.texi.diff anymore.
-       * m4/gnulib-cache.m4: Update to latest gnulib.
-
-2007-07-14  Eric Blake  <ebb9@byu.net>
-
-       Reflect upstream license .texi changes.
-       * doc/m4.texinfo (Copying): Rename node...
-       (GNU General Public License): ...to this.
-       (GNU Free Documentation License): Adjust node location.
-       * local/doc/gpl-3.0.texi.diff: Remove file.
-
-2007-07-10  Eric Blake  <ebb9@byu.net>
-
-       Start 1.4.10a.
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Start changes since 1.4.10.
-       * doc/m4.texinfo (History): Mention 1.4.11.
-       (Copying This Package, Copying This Manual): Add index entries.
-       * local/lib/version-etc.c.diff: Delete, now that gnulib has been
-       updated.
-       * Makefile.am (EXTRA_DIST): Remove dead file.
-
-2007-07-09  Eric Blake  <ebb9@byu.net>
-
-       Release Version 1.4.10.
-       * doc/Makefile.am (m4_TEXINFOS): Distribute gpl-3.0.texi.
-       * Makefile.am (EXTRA_DIST): Distribute gnulib diffs.
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.9.
-
-       * src/format.c: Missed a GPLv3 conversion.
-
-       Avoid undefined behavior of %.*c in printf.
-       * src/format.c (format): Special case %c.
-       * TODO: Document that more remains to be done.
-       * NEWS: Document the fix.
-
-2007-07-05  Eric Blake  <ebb9@byu.net>
-
-       Fix up gnulib-tool usage.
-       * m4/gnulib-cache.m4: Change local-dir to local, not `.'.
-       * version-etc.c.diff: Move to...
-       * local/lib/version-etc.c.diff: ...here.
-       * gpl-3.0.texi.diff: Move to...
-       * local/doc/gpl-3.0.texi.diff: ...here.
-
-2007-07-04  Eric Blake  <ebb9@byu.net>
-
-       Upgrade to GPL version 3 or later.
-       * bootstrap: Pick up GPLv3.
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool
-       --local-dir=. --import gpl-3.0'.
-       * doc/m4.texinfo (Copying This Package): New appendix.
-       * NEWS: Mention this change.
-       * README: Mention why some files still claim to be version 2.
-       * version-etc.c.diff: New file, to make sure --version claims
-       correct GPL version.  Temporary until gnulib makes move.
-       * gpl-3.0.texi.diff: New file, to allow inclusion of GPLv3 as
-       appendix, rather than section, of the manual.
-       * GNUmakefile: Update to new license.
-       * Makefile.am: Likewise.
-       * Makefile.maint: Likewise.
-       * commit: Likewise.
-       * configure.ac: Likewise.
-       * checks/Makefile.in: Likewise.
-       * doc/Makefile.am: Likewise.
-       * examples/Makefile.am: Likewise.
-       * src/Makefile.am: Likewise.
-       * src/builtin.c: Likewise.
-       * src/debug.c: Likewise.
-       * src/eval.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/stackovf.c: Likewise.
-       * src/symtab.c: Likewise.
-
-2007-06-26  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import assert'.
-
-2007-06-26  Karl Berry  <karl@freefriends.org>  (tiny change)
-
-       Match Free Software Directory categories.
-       * doc/m4.texinfo (dircategory): Update.
-
-2007-05-31  Eric Blake  <ebb9@byu.net>
-
-       * src/output.c (output_text): Fix regression from 2007-05-28.
-       * doc/m4.texinfo (History): Mention 1.4.10.
-       (Format): Make testsuite output easier to debug.
-
-2007-05-29  Eric Blake  <ebb9@byu.net>
-
-       Start 1.4.9c.
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Start changes since 1.4.9b, and fix typo.
-
-       Beta Release Version 1.4.9b.
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.9.
-
-       Improve format support.
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
-       vasprintf-posix'.
-       * src/format.c (format): Parse %'hhd, %a, %A.  Avoid calling
-       printf with too few arguments, as in format(%*.*d,-1,-1,1).
-       * doc/m4.texinfo (Format): Expand tests, and improve
-       documentation.
-       * NEWS: Document this change.
-
-2007-05-28  Eric Blake  <ebb9@byu.net>
-
-       Fix large diversion corner cases, including 1.4.8 regression.
-       * src/output.c (m4_tmpfile, m4_tmpopen): Simplify use of errno.
-       (make_room_for): Use NULL, not 0, for pointers.
-       (insert_diversion_helper): Avoid using rewind.
-       (freeze_diversions): Allow freezing large diversions.
-       * NEWS: Document this fix.
-
-       Also run gnulib unit tests during make check.
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool
-       --tests-base=tests --with-tests'.
-       * configure.ac (AC_CONFIG_FILES): Build gnulib testdir.
-       * Makefile.am (SUBDIRS): Run gnulib tests before ours.
-
-2007-05-25  Eric Blake  <ebb9@byu.net>
-
-       Backport prompts in examples from head.
-       * src/macro.c (expand_macro): Shorten message.
-       * doc/m4.texinfo (Manual, Command line files, Comments)
-       (Inhibiting Invocation, Macro Arguments, Macro expansion, Indir)
-       (Builtin, Shift, Forloop, Foreach, Dumpdef, Trace, Debug Levels)
-       (Debug Output, Include, Format, Syscmd, Mkstemp, Location)
-       (Using frozen files, Improved forloop, Improved foreach): Add
-       prompts to examples.
-       * checks/get-them: Ignore prompts in examples.
-
-       Fix sync line interaction with multiline comments.
-       * doc/m4.texinfo (Other Incompatibilities): Add example, and
-       document bug in --syncline/divert interaction.
-       (Preprocessor features): Augment test.
-       * src/m4.h (output_text): Export.
-       (shipout_text, next_token): Add parameter.
-       * src/freeze.c (reload_frozen_state): Don't interfere with
-       synclines when reloading state.
-       * src/output.c (output_text): Export.
-       (shipout_text): Take new parameter for start line of token.
-       Output at most one syncline per token.
-       * src/input.c (next_token): Report line where multiline tokens
-       start.
-       * src/macro.c (expand_input, expand_token, expand_argument):
-       Adjust callers so that line is passed from input to output.
-       * NEWS: Document this fix.
-       Reported by Sergey Poznyakoff.
-
-       Test -s in testsuite.
-       * doc/m4.texinfo (Preprocessor features): Add a test.
-       * checks/get-them: Support extra options in testsuite.
-       * checks/check-them (examples): Use extra options.
-       * THANKS: Update.
-       Reported by Sergey Poznyakoff.
-
-2007-05-24  Eric Blake  <ebb9@byu.net>
-
-       Support POSIX flush semantics on all platforms.
-       * m4/gnulib-cache.m4: Remove closeout, and augment with
-       'gnulib-tool --import closein fflush'.
-       * src/m4.h (includes): Use closein, not closeout.
-       * src/m4.c (main): Ensure stdin is flushed when not all input is
-       consumed.
-       (process_file): No return needed.
-       * src/debug.c (debug_flush_files): Rely on gnulib module, rather
-       than excluding mingw.
-       * NEWS: Document this change.
-
-       Work around cygwin and mingw fseeko bugs.
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import fseeko'.
-       * src/debug.c (debug_flush_files): Prefer fseeko over fseek.
-
-2007-04-25  Eric Blake  <ebb9@byu.net>
-
-       Fix negative division within eval, regression of 2007-01-06.
-       * doc/m4.texinfo (Eval): Catch this bug.
-       * src/eval.c (mult_term): Fix it.
-       * NEWS: Document this.
-       * THANKS: Update.
-       Reported by Cesar Strauss.
-
-2007-04-23  Eric Blake  <ebb9@byu.net>
-
-       Start 1.4.9a.
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Start changes since 1.4.9.
-
-2007-03-23  Eric Blake  <ebb9@byu.net>
-
-       Release 1.4.9:
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.8b.
-
-2007-03-16  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Mkstemp): Tweak wording.
-       * src/output.c (output_init): Adjust to latest gnulib.
-
-2007-03-15  Eric Blake  <ebb9@byu.net>
-
-       Avoid Tandem/NSK's broken long long (without a symmetric unsigned
-       long long, it confuses gnulib).
-       * configure.ac (AC_TYPE_LONG_LONG_INT): Declare long long broken
-       if unsigned long long doesn't work.
-       * THANKS: Update.
-       Reported by Matthew Woehlke.
-
-2007-03-07  Eric Blake  <ebb9@byu.net>
-
-       * AUTHORS: Update.
-       * doc/m4.texinfo: Minor tweaks, avoid makeinfo warning.
-
-2007-03-01  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Pick up more index entries from head.  Follow
-       more texinfo recommendations.
-       (Sysval): Improve tests.
-
-       Avoid overfull \vbox warning from texinfo, due to indices that
-       weren't quite big enough to split across page boundaries.
-       * doc/m4.texinfo: Add lots of concept index entries.
-       (Concept Index): Move to be last, as recommended by texinfo
-       manual.
-       (Define, Arguments, Pseudo Arguments): Add more function entries.
-
-2007-02-28  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Eval): Clean up wording to reflext POSIX XCU ERN
-       137.
-       (Pseudo Arguments): Add useful example.
-
-       * doc/m4.texinfo (Pushdef, Incompatibilities): Clean up wording to
-       reflect POSIX XCU ERN 118.
-
-       * src/m4.h (DEFAULT_MACRO_SEQUENCE): Factor out from...
-       * src/m4.c (usage): ...here,...
-       * src/builtin.c (set_macro_sequence): ...and here.
-       (define_user_macro): Fix typo.
-       * doc/m4.texinfo (Preprocessor features, Arguments): Fix minor
-       inaccuracies.
-       (Shift): Document composite macro argn for portably getting at
-       positional parameters beyond 9.
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Start changes of 1.4.8c.
-
-2007-02-24  Eric Blake  <ebb9@byu.net>
-
-       Beta Release 1.4.8b:
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.8.
-
-       Reserve all uses of raw ${} in macro definitions, not just
-       ${<digit>}.
-       * src/builtin.c (set_macro_sequence): Change default macro
-       sequence.
-       * doc/m4.texinfo (Operation modes): Update to match.
-       * src/m4.c (usage): Likewise.
-       * NEWS: Likewise.
-
-2007-02-23  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.h (includes): Update to latest gnulib.
-
-2007-02-08  Eric Blake  <ebb9@byu.net>
-
-       Rename --warn-syntax to --warn-macro-sequence[=regex], to make it
-       more flexible, and so that autoconf can use it.
-       * src/m4.h (set_macro_sequence, free_macro_sequence): New
-       prototypes.
-       * src/builtin.c (macro_sequence_buf, macro_sequence_regs)
-       (macro_sequence_inuse, set_macro_sequence, free_macro_sequence):
-       New variables and functions.
-       (define_user_macro): Allow flexibility in regular expression used
-       to trigger warning.
-       * src/m4.c (warn_syntax): Delete.
-       (usage, WARN_MACRO_SEQUENCE_OPTION, main): Implement changed
-       spelling of option, along with optional argument.
-       * doc/m4.texinfo (Operation modes, Arguments): Document this
-       change.
-       * NEWS: Document this change.
-
-2007-02-05  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Module strstr no longer exists.
-
-       Avoid bool bitfields, as they don't work on AIX.
-       * src/m4.h (bool_bitfield): New typedef.
-       (struct symbol, struct builtin): Use it.
-       * src/input.c (struct input_block): Likewise.
-       Reported by Albert Chin.
-
-       * doc/m4.texinfo (Sysval): Avoid SIGPIPE in test as unreliable.
-       Reported by Albert Chin.
-       * THANKS: Update.
-
-2006-06-18  Bruno Haible  <bruno@clisp.org>  (tiny change)
-
-       * doc/m4.texinfo (Input processing): Further clarifications.
-
-2007-02-03  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Input processing, Quoting Arguments): Beef up
-       the examples.
-       Reported by Bruno Haible.
-
-2007-02-01  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.c (fatal_warnings): New variable.
-       (usage): Document new -E behavior.
-       (main): Make -E an additive option.
-       (m4_error, m4_error_at_line): Change exit status when required.
-       * NEWS: Document this change.
-       * doc/m4.texinfo (Operation modes): Likewise.
-       Reported by Ralf Wildenhues.
-
-2007-01-27  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.h (warn_syntax): Declare.
-       (init_pattern_buffer): Export.
-       * src/m4.c (warn_syntax, usage, WARN_SYNTAX_OPTIONS)
-       (long_options, main): Implement new option.
-       * src/builtin.c (init_pattern_buffer): Allow NULL regs argument.
-       (define_user_macro): Warn on $11 and ${1} if requested.
-       * src/input.c (init_pattern_buffer): Delete duplicate method.
-       * doc/m4.texinfo (Operation modes): Document it.
-       (Arguments): Document future direction of ${11} vs. $11.
-       (Incompatibilities): Fix wording on POSIX limitations.
-       * checks/get-them: Parse @{ and @} correctly.
-       * NEWS: Document this change.
-
-2007-01-26  Eric Blake  <ebb9@byu.net>
-
-       * src/builtin.c (includes): Adjust to gnulib changes.
-
-2007-01-15  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Pull in various improvements from head.
-       * src/builtin.c (include): Alter exit status on failure.
-       * NEWS: Document this fix.
-
-2007-01-13  Eric Blake  <ebb9@byu.net>
-
-       * configure.ac (AC_CHECK_MEMBERS): Check for stack_t.ss_sp, and
-       assume the fallback of ss_base for BSDI 4.0.1.
-       * src/stackovf.c (setup_stackovf_trap) [HAVE_SIGALTSTACK &&
-       ! HAVE_STACK_T_SS_SP]: Use this check.
-       Reported by Chris McGuire.
-       * THANKS: Update.
-       * NEWS: Document the improvement.
-
-2007-01-09  Eric Blake  <ebb9@byu.net>
-
-       * src/eval.c (ASSIGN): New enumerator.
-       (eval_lex): Recognize '='.
-       (equality_term): Treat '=' like '==', but warn that it is
-       deprecated.
-       * doc/m4.texinfo (Eval): Document and test this.
-       (Incompatibilities): Document the POSIX incompatibility.
-       * NEWS: Document this change.
-
-2007-01-06  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import stdint'.
-       * checks/check-them: Record expected exit status.
-       * checks/get-them: Check exit status.
-       * src/m4.h (eval_t, unsigned_eval_t): Delete, use POSIX int32_t
-       instead.
-       * src/builtin.c: All users changed.
-       * src/eval.c: Likewise.  Also document where we are triggering
-       undefined or implementation-defined behavior.
-       (BADOP, NEGATIVE_EXPONENT, INVALID_OPERATOR, eval_lex, evaluate)
-       (logical_or_term, logical_and_term, logical_not_term, not_term)
-       (equality_term, unary_term): Port from head to follow POSIX
-       semantics.
-       (exp_term): Reject 0**0 as undefined.
-       * doc/m4.texinfo (History): Mention 1.4.9.
-       (Format, Incompatibilities): Update to document POSIX compliance.
-       * NEWS: Document this change.
-
-2007-01-04  Eric Blake  <ebb9@byu.net>
-
-       * NEWS: Document previous fix.
-       * THANKS: Update.
+       (reverse_symbol_list): Reverse stack, not bucket.
 
-2007-01-04  Sami Liedes  <sliedes@cc.hut.fi>  (tiny change)
+2021-04-17  Eric Blake  <eblake@redhat.com>
 
-       Fix Debian bug 405594, introduced 2006-11-01 from a bad
-       copy-n-paste from head.
-       * src/m4.c (main): Use correct file name after --.
+       input: optimize macro tail-call memory usage
+       I encountered an m4 program that performed over 20 million iterations
+       of a tail-call recursion paradigm.  Without this patch, memory usage
+       grew to over 6 gigabytes, pausing the program for several seconds when
+       the recursion finally ended just to reclaim the memory.  But with the
+       patch, m4 never needed more than 3 megabytes of resident memory.
 
-2007-01-04  Eric Blake  <ebb9@byu.net>
-
-       Fix regression from 1.4.7 in large file handling on some
-       platforms, introduced on 2006-10-13.
-       * configure.ac (AC_LARGE_SYSFILE): Guarantee that large files
-       will be handled.
-       * NEWS: Document this fix.
+       * src/input.c (push_string_init): Prune empty string blocks before
+       starting another one.
 
-2007-01-03  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
-       version-etc-fsf'.
-       * src/m4.c (AUTHORS, main): Use FSF wording for --version (plus
-       it bumps the copyright year).
-
-2006-12-27  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Patsubst): Fix typo.
-
-2006-12-16  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.c (main): Check for errors when closing stdin.
-
-2006-12-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * doc/m4.texinfo: Fix some typos.
-
-2006-12-09  Eric Blake  <ebb9@byu.net>
-
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Start changes of 1.4.8a.
-
-2006-11-20  Eric Blake  <ebb9@byu.net>
-
-       Release 1.4.8:
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.7.
-
-2006-11-16  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Include, Search Path, Diversions, Divert):
-       Minor tweaks noticed while porting to head.
-
-2006-11-14  Eric Blake  <ebb9@byu.net>
-
-       * src/output.c (cleanup_tmpfile, freeze_diversions): Clean up
-       spent iterators.
-       (m4_tmpname): Avoid memory leak.
-
-2006-11-13  Eric Blake  <ebb9@byu.net>
-
-       * src/output.c (cleanup_tmpfile): Avoid double error message when
-       umask is prohibitive.
-       (m4_tmpname, m4_tmpopen, m4_tmpclose, m4_tmpremove): New
-       functions.
-       (m4_tmpfile): Add parameter, move cloexec action here.
-       (make_room_for): Adjust caller.  Don't keep too many files open.
-       (insert_diversion_helper): Unlink emptied temp files.
-       (make_diversion): Don't keep too many files open.
-       * doc/m4.texinfo (Diversions): Tweak wording, now that open file
-       descriptors are no longer a limiting factor.
-       * NEWS: Document this change.
-
-       Backport sparse diversion handling from head.
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
-       avltree-oset'.
-       * src/output.c (struct m4_diversion): Rename from struct
-       diversion, and update members.  All users changed.
-       (diversion_table): Change to an ordered set, instead of an array.
-       (div0): New storage for diversion 0.
-       (diversions): No longer needed.
-       (free_list): New list to allow recycling diversion storage.
-       (diversion_storage): New storage to reduce malloc overhead.
-       (cmp_diversion_CB, threshold_diversion_CB): New callbacks.
-       (output_init, output_exit, cleanup_tmpfile, make_room_for)
-       (make_diversion): Handle new diversion storage scheme.
-       (insert_diversion_helper): New function.
-       (insert_diversion, undivert_all, freeze_diversions): Use it.
-       * doc/m4.texinfo (Divert, Diversions): Move hidden test of memory
-       exhaustion to visible test of large diversion numbers.
-       * NEWS: Document this fix.
-
-2006-11-11  Eric Blake  <ebb9@byu.net>
-
-       * src/builtin.c (m4_translit): Slight optimization.
-
-       * src/m4.h (to_uchar): Depend on HAVE_INLINE.
-
-       * src/builtin.c: Remove unnecessary casts.
-       (expand_ranges): Make 8-bit clean.
-       * doc/m4.texinfo (Translit): Add tests and wording.
-       * NEWS: Document this fix.
-
-2006-11-07  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.h (output_exit): New prototype.
-       * src/m4.c (main): Use it.
-       * src/output.c (cleanup_tmpfile): Close files before removing
-       directory.
-       (insert_diversion): Check for failure.
-       (output_exit): Avoid memory leak.
-       * doc/m4.texinfo (Diversions): Test this bug.
-
-       * doc/m4.texinfo (Esyscmd, Errprint): Minor touchups.
-
-2006-11-01  Eric Blake  <ebb9@byu.net>
-
-       Allow C++ compilation on Linux, as a safety measure in type
-       checking.
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
-       stdbool'.
-       * src/m4.h (hack_symbol, hack_all_symbols): Use full prototype.
-       (boolean): Kill this, and use stdbool.h instead.
-       * src/debug.c, src/eval.c, src/input.c, src/macro.c, src/m4.c:
-       * src/output.c, src/symtab.c: All users changed.
-       * src/symtab.c (hack_all_symbols): Update prototype.
-       * src/builtin.c (dump_symbol, set_trace): Update signature.
-       (m4_dumpdef, m4_traceon, m4_traceoff): Update callers.
-       (mkstemp_helper, m4_m4wrap, expand_ranges, m4_translit): Allow
-       C++ compilation.
-       * src/debug.c (trace_flush): Likewise.
-       * src/freeze.c (reload_frozen_state): Likewise.
-       * src/input.c (push_file, push_string_finish, push_wrapup):
-       (token_bottom, next_token): Likewise.
-       * src/m4.c (main): Likewise.
-
-       * doc/m4.texinfo (Invoking m4): Update according to POSIX 200x
-       draft wording.
-       * src/m4.h (m4_path_search): Tweak signature.
-       * src/path.c (m4_path_search): Likewise.
-       * src/builtin.c (include): Update caller.
-       * src/m4.c (main): Allow -D, -U, -t, and -s to be interspersed
-       with file names.  Don't write to **argv.
-       (process_file): New helper method.
-       * NEWS: Document this fix.
-
-2006-10-31  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import strstr'.
-       * doc/m4.texinfo (Translit): Improve the documentation.
-       * src/builtin.c (m4_translit): Optimize to O(n) instead of O(n^2)
-       algorithm.
-       (m4_index): Simplify, and speed up slightly.
-       * NEWS: Document this fix.
-
-2006-10-28  Eric Blake  <ebb9@byu.net>
-
-       * src/input.c (set_quotes): Don't allow empty end-quote with
-       non-empty start-quote.
-       (set_comment): Likewise for end-comment.
-       * src/builtin.c (m4_changecom): Adjust caller.
-       * doc/m4.texinfo (Changequote, Changecom): Update documentation to
-       match behavior.
-       (Incompatibilities): Document another POSIX bug.
-       * NEWS: Mention this change.
-
-2006-10-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * examples/Makefile.am (EXTRA_DIST): Distribute recently-added
-       files.
-
-2006-10-26  Eric Blake  <ebb9@byu.net>
-
-       Silence -Wwrite-strings -Wpointer-arith warnings.
-       * src/builtin.c (define_user_macro): Allow NULL argument.
-       (m4_builtin, m4_indir): Cast away const of "".
-       * src/format.c (format): Likewise.
-       * src/macro.c (collect_arguments): Likewise.
-       (expand_macro): Avoid math on void*.
-       * src/m4.c (main): Adjust caller.
-       * src/output.c (freeze_diversions): Detect off_t overflow.
-
-       * src/input.c (pop_input): Remove unnecessary code.
-
-2006-10-25  Eric Blake  <ebb9@byu.net>
-
-       * src/symtab.c (symtab_init): Avoid size_t overflow.
-       * src/output.c (make_diversion): Avoid size_t overflow.
-       * doc/m4.texinfo (Diversions): Test this fix.
-       * src/input.c (input_block): Remove unused member.  Reduce size
-       of struct.
-       (push_file, pop_input): Avoid useless assignment.
-       * NEWS: Document the bug fix.
-
-       Redo location tracking.  Instead of having just files track the
-       line to return to when popping input, now all input blocks track
-       their current line.
-       * src/input.c (INPUT_STRING_WRAP, INPUT_FILE_INIT): No longer
-       needed.
-       (input_block): Have line and file storage for all input types, and
-       rename some members.
-       (input_change): New global flag.
-       (push_file, push_macro, push_string_init, push_wrapup): Store
-       location.
-       (push_string_finish, pop_input, pop_wrapup): Notice changes in
-       input blocks.
-       (peek_input): Adjust to new member names.
-       (next_char, next_char1): Adjust location if needed.
-       (skip_line): Simplify restoring location.
-       * doc/m4.texinfo (Location): Augment the test to catch line
-       location of expansion of multi-line arguments.
-       Reported by Stepan Kasal.
-
-2006-10-23  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Macro Arguments): Document that leading space
-       in argument collection stops at macro expansion.
-       (Incompatibilities): Document POSIX whitespace wording issue.
-
-2006-10-20  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Trailing '@comment' doesn't format nicely in
-       TeX, so recognize '@w{ }' instead.  Likewise, @code{_name} at the
-       end of a TeX line splits incorrectly.
-       (Foreach, Improved foreach): Write these sections, borrowing ideas
-       from CVS head and from m4sugar.
-       * checks/get-them: Accomodate new way to show trailing space in
-       examples.
-       * examples/foreach.m4: Make usable in documentation.
-       * examples/foreachq.m4: New file.
-       * examples/foreachq2.m4: New file.
-       * examples/foreach2.m4: New file.
-       * NEWS: Document the documentation updates.
-
-2006-10-19  Eric Blake  <ebb9@byu.net>
-
-       * src/builtin.c (mkstemp_helper, m4_mkstemp): New functions.
-       (m4_maketemp): Provide traditional behavior.
-       * doc/m4.texinfo (Mkstemp): Rename from Maketemp.  Document the
-       new `mkstemp' macro and the flaws of the old `maketemp'.
-       (Incompatibilities): Move maketemp discussion to...
-       (Extensions): ...here, since -G now supresses the GNU extension.
-       * NEWS: Document this.
-
-       * examples/forloop.m4: Simplify.
-       * examples/forloop2.m4: New file.
-       * examples/quote.m4: New file.
-       * doc/m4.texinfo (Loops): Rename to...
-       (Shift): ...this node.
-       (Forloop, Foreach, Improved forloop, Improved foreach): New
-       nodes.
-
-2006-10-17  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Update with 'gnulib-tool --import
-       config-h'.
-       * configure.ac (AC_CONFIG_HEADERS): Create config.h alongside
-       gnulib headers, rather than in top directory.
-       * src/Makefile.am (AUTOMAKE_OPTIONS): Add nostdinc, to reduce make
-       output clutter.
-
-2006-10-16  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Backport some minor cleanups from head.
-       (Cleardivert): Rename from cleardiv.
-
-       * doc/m4.texinfo (Invoking m4): Promote to a chapter, instead of
-       a section of Preliminaries.
-       (Operation modes, Preprocessor features, Limits control)
-       (Frozen state, Debugging options, Command line files): Subdivide
-       into new sections.
-       (Input processing, Quoting Arguments, Define, Arguments)
-       (Cleardiv, Format, M4exit): Fix grammar of references.
-       (Inhibiting Invocation, Macro Arguments, Builtin, Trace)
-       (Debug Levels, Debug Output, Include, Search Path, Divert)
-       (Platform macros, Syscmd, Location, Extensions): Point to new
-       sections.
-       (Top, Loops, Include, Undivert, Location, Incompatibilities):
-       Improve file references.
-
-2006-10-14  Eric Blake  <ebb9@byu.net>
-
-       * m4/input.c (file_clean): Don't close stdin twice, POSIX says it
-       is not portable.
-       Reported by Ralf Wildenhues.
-
-       * src/builtin.c (m4_undivert): Check for read error.
-
-2006-10-13  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.h (UNIX, W32_NATIVE, OS2): Move platform checks after
-       header files are included, since <unistd.h> can affect the tests.
-       * THANKS: Updated.
-       Reported by Martin Koeppe.
-
-       Backport head's usage of clean-temp module, as it is cleaner than
-       using tmpfile-safer.
-       * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
-       clean-temp closeout', and remove tmpfile-safer.
-       * src/m4.h (includes): Adjust.
-       (m4_path_search): Rename from path_search, to avoid collision
-       with gnulib.
-       * src/m4.c (main): Install closeout handler.  Adjust caller.
-       (usage): Now done by closeout module.
-       * src/builtin.c (m4_m4exit): Likewise.
-       (m4_undivert, include): Adjust callers.
-       * src/freeze.c (reload_frozen_state): Likewise.
-       * src/path.c (m4_path_search): Rename from path_search.
-       * src/output.c (output_temp_dir): New variable.
-       (cleanup_tmpfile, m4_tmpfile): New functions, from head.
-       (insert_diversion, make_room_for): Use them.
-       * doc/m4.texinfo (Diversions): Document this, and add a test.
-       (Improved fatal_error): Fix typo.
-       (Maketemp): Port test to mingw, and no longer hide from
-       documentation.
-       * NEWS: Document the change in TMPDIR behavior.
-
-       * configure.ac (m4_pattern_forbid): Narrow the range of forbidden
-       macros, to work with recent gnulib-tool update.
-
-       * src/builtin.c (m4_builtin, m4_indir): Allow transparent
-       handling of defn results.
-       * doc/m4.texinfo (Builtin, Indir): Add test cases.
-       * NEWS: Document this.
-
-2006-10-12  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Location): Fix typo in previous commit.
-       (Changeword): Catch one more case.
-       * src/input.c (skip_line): Fix case when outer file used macro to
-       supply the \n.
-
-2006-10-11  Eric Blake  <ebb9@byu.net>
-
-       * src/input.c (enum input_type): Add additional types, to shave
-       time off the common case.
-       (push_wrapup): Wrapped strings remember location.
-       (push_string_finish): Normal strings carry no location.
-       (push_file): Start new files uninitialized.
-       (peek_input, next_char_1): Optimize common cases by updating
-       location only on new input types.
-       (pop_input): Update to honor new input types.
-       (skip_line, push_string_finish): Fix regression in previous patch
-       when dnl is not followed by newline in included file.
-       (push_string_init): Initialize all fields of INPUT_STRING sooner.
-       (peek_token): Simplify.
-       (peek_input): Don't pop input files on peek, so that __file__ and
-       __line__ as last token of include file work correctly.
-       * doc/m4.texinfo (History): Mention 1.4.8.
-       (Answers): Split into sections, one per answer.
-       (Improved exch, Improved cleardivert, Improved fatal_error): New
-       nodes.
-       (Dnl, M4wrap, Location, M4exit, Improved fatal_error): Update to
-       new m4wrap location semantics.
-       (Changeword): Add test that caught the regression.
-       * NEWS: Document this.
-
-       * src/macro.c (expand_macro): In macro expansion errors, report
-       line number at open parenthesis.
-       * src/input.c (next_token): Fix off-by-one bug in reporting end
-       of file in unterminated comment and string.
-       (file_names): New obstack, necessary since expand_macro now hangs
-       on to file names longer than the files remain open.
-       (input_init): Initialize new obstack.
-       (push_file): Use new obstack.  Delay updates to current_file
-       until after expand_macro has restored state.
-       (peek_input, next_char_1): Update current_file if necessary.
-       (pop_wrapup): Release memory.
-       * doc/m4.texinfo (Macro Arguments, Changequote, Changecom): Catch
-       the off-by-one bug.
-       (Dnl): Update to the new location reporting rules.
-       * NEWS: Document these changes.
-
-2006-10-10  Eric Blake  <ebb9@byu.net>
-
-       * src/macro.c (argc_stack, argv_stack): New variables for sharing
-       obstacks across multiple macro calls.
-       (expand_input): Initialize and tear down stack once per input
-       file, instead of once per macro.
-       (expand_macro): Reuse existing stacks when possible.
-       (collect_arguments): Simplify slightly.
-
-       * src/path.c (include_env_init): Fix botched patch application.
-       Reported by Ralf Wildenhues.
-
-2006-10-09  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.c (usage, main): Detect write failures to stderr.
-       * src/builtin.c (m4_m4exit): Likewise.
-       * NEWS: Document this.
-
-       * src/macro.c (expand_macro): Allow --nesting-limit=0 to remove
-       the limit.
-       * NEWS: Document this.
-       * doc/m4.texinfo (Invoking m4): Likewise.
-
-2006-10-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * src/path.c (include_env_init): Copy the string returned
-       by getenv before overwriting it; POSIX disallows this.
-
-2006-10-09  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.c (main): Defer debugfile until after --help.
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Start changes of 1.4.7a.
-
-2006-09-25  Eric Blake  <ebb9@byu.net>
-
-       Release 1.4.7:
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.6.
-
-2006-09-21  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Invoking m4): Add clarification on option
-       processing behavior.
-       * THANKS: Update.
-       Reported by Mikhail Teterin.
-
-       * bootstrap: Add --force option, based on idea from coreutils.
-       * README: Document that ./bootstrap and autoreconf are for
-       developers, and not lightly done in tarballs.
-
-2006-09-20  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.c (usage, OPTSTRING, main): Rename -e to -i, and give
-       deprecation warning on -e.
-       * doc/m4.texinfo (Invoking m4, Extensions): Document this.
-       * NEWS: Document this.
-
-2006-09-19  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.c (usage, long_options, main, DEBUGFILE_OPTION): Rename
-       -o/--error-output to --debugfile, and deprecate the former.  This
-       will allow a future release to be more consistent with other GNU
-       tools, with -o/--output affecting stdout, not debug.
-       * doc/m4.texinfo (Invoking m4, Debug Output): Document this.
-       * NEWS: Document this.
-
-2006-09-14  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.c (main): Warn on deprecated options -B, -S, -T, -N,
-       --diversions. `m4 --help --version' now displays help, not
-       version.
-       (interactive, frozen_file_to_read, frozen_file_to_write): Move to
-       smaller scope.
-       (show_help, show_version): No longer needed.
-       (long_options, DIVERSIONS_OPTION): Backport patch from head to
-       distinguish between -N and --diversions in warning.
-       * doc/m4.texinfo (Invoking m4): Document this.
-       * NEWS: Likewise.
-
-2006-09-11  Eric Blake  <ebb9@byu.net>
-
-       * src/Makefile.am (m4_LDADD): Add any gnulib dependent libraries.
-       * src/debug.c (debug_flush_files) [UNIX]: Flush stdin if it is
-       seekable.
-       (debug_set_file): Use STDOUT_FILENO.
-       * src/builtin.c (m4_m4exit): Flush stdin before exiting, to comply
-       with POSIX in regards to unread input.
-       * NEWS: Document this fix.
-       * doc/m4.texinfo (Syscmd, Esyscmd, M4exit): Likewise.
-
-2006-09-07  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Update to newer gnulib-tool.
-       * src/m4.h (push_file): Change prototype.
-       * src/input.c (push_file, peek_input, next_char_1): Only call getc
-       once at EOF, to avoid double ^D on terminal stdin; regression from
-       2006-09-04.
-       (push_file, pop_file): Allow reading stdin twice.
-       * src/m4.c (main): Likewise.
-       * src/builtin.c (include): Update caller.
-       * NEWS: Document this change.
-       * doc/m4.texinfo (Invoking m4, Incompatibilities): Likewise.
-       (Syscmd): Add a test that failed before this patch.
-
-2006-09-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * checks/check-them: Quote $pwd.
-
-2006-09-05  Eric Blake  <ebb9@byu.net>
-
-       * src/builtin.c (define_macro): Warn on invalid macro name.
-       * NEWS: Document this change.
-       * doc/m4.texinfo: Fix typos.
-       (Invoking m4, Macro Arguments, Pseudo Arguments, Defn, Indir)
-       (Ifelse): Backport some improvements from head.
-
-2006-09-04  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Changeword): Skip test on mingw, where the
-       native echo is braindead.
-       * checks/check-them (strip_needed): Ignore \r in output.  Now the
-       testsuite will pass when cross-compiling from cygwin to mingw.
-
-       * src/input.c (peek_input): Fix regression in handling macro
-       without arguments as last token in file; debian bug 385720.
-       (next_token): Always consume an input character.
-       Reported by Andreas Schultz.
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Document this fix.
-       * doc/m4.texinfo (History): Mention next version.
-       (Changeword): Add example that exposes this bug.
-       * THANKS: Update.
-
-2006-08-25  Eric Blake  <ebb9@byu.net>
-
-       Release 1.4.6:
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.5.
-
-       * Makefile.maint (web-manual): Give up on VPATH build during
-       distribution.  But distributions are made so infrequently that
-       this is not too much of a hardship.
-       * Makefile.am (MAINTAINERCLEANFILES): Avoid error if lib/CVS/
-       exists.
-
-2006-08-24  Eric Blake  <ebb9@byu.net>
-
-       * src/builtin.c (m4_index, m4_substr, m4_translit): Similar to
-       Solaris, produce output on just one argument.
-       (m4_regexp, m4_patsubst): For consistency, do likewise.
-       (m4_patsubst): Allow zero-length match at end of string.
-       * doc/m4.texinfo (Sysval): Fix overfull hbox.
-       (Bugs, Macro Arguments): Minor fixes.
-       (Other tokens): Rearrange node order.
-       (Index macro, Substr, Translit, Regexp, Patsubst): Add tests.
-       * NEWS: Document these fixes.
-
-2006-08-22  Eric Blake  <ebb9@byu.net>
-
-       * src/input.c (pop_input): Avoid empty filename with -di option.
-       * src/debug.c (debug_message_prefix): Put space before message.
-
-       * m4/gnulib-cache.m4: We don't explicitly use alloca module.
-
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import gnupload.
-       * Makefile.maint (fetch): Simplify, now that we can use gnupload.
-
-       * checks/check-them: State why a test is skipped.
-       * doc/m4.texinfo (Changeword, Sysval, Maketemp): Likewise.
-
-       * ChangeLog: Add copyright.
-       * AUTHORS: Likewise.
-       * BACKLOG: Likewise.
-       * README: Likewise.
-       * THANKS: Likewise.
-       * TODO: Likewise.
-       * examples/COPYING: New file, add copyright for all the examples.
-       * checks/get-them: Put copyright on testsuite files.
-
-2006-08-18  Eric Blake  <ebb9@byu.net>
-
-       Don't let unrelated child processes see too many files.
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import cloexec.
-       * src/builtin.c (m4_esyscmd, m4_regexp, m4_patsubst): Fix
-       spelling in error message.
-       * src/debug.c [!__STDC__]: Assume C89, and nuke old varargs.h.
-       (debug_set_output): Close debug file on exec.
-       * src/m4.h (includes): Add cloexec.h.
-       * src/output.c (make_room_for): Close diversions on exec.
-       * src/path.c (path_search): Close include files on exec.
-       * NEWS: Document this.
-
-       Regular expressions were leaking memory.
-       * src/builtin.c (init_pattern_buffer, free_pattern_buffer): New
-       helper methods.
-       (m4_regexp, m4_patsubst): Avoid memory leak.
-       * src/input.c (init_pattern_buffer) [ENABLE_CHANGEWORD]: Make
-       static.
-       (set_word_regexp) [ENABLE_CHANGEWORD]: Avoid memory leak.  Change
-       from O(n^2) to O(n) for calculating word_start.
-       (next_token, peek_token) [ENABLE_CHANGEWORD]: Treat word_start as
-       O(1) bitmap, not O(n) search string.
-       * NEWS: Document this fix.
-
-2006-08-17  Eric Blake  <ebb9@byu.net>
-
-       * NEWS: Document previous checkin.
-
-       * src/builtin.c (substitute): Avoid core dump when accessing
-       beyond bound of regular expression.
-       Reported by Karl Nelson.
-       * doc/m4.texinfo (Regexp): Add example that causes core dump on
-       some architectures prior to this patch.
-       * THANKS: Updated.
-
-2006-08-16  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Invoking m4, Debug Output): Fix wording to be
-       clear that dumpdef does not always go to stderr.
-
-       * src/builtin.c (m4_errprint): Flush buffers before printing to
-       stderr.
-       * THANKS: Updated.
-
-2006-08-15  Eric Blake  <ebb9@byu.net>
-
-       * src/builtin.c (m4_m4wrap, m4_errprint, m4_shift): Make blind,
-       per debian bug 96075.
-       * doc/m4.texinfo (Loops, M4wrap, Errprint): Document this change.
-       (Changeword): Don't use shift as an example of a swallowed word.
-       (Divert): Discuss fact that divert is an English word.
-       Reported by Richard A Nelson.
-
-2006-08-14  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Invoking m4): Minor fixes.
-
-2006-08-12  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Arguments): Hint at better exch macro.
-       (Answers): Provide a better definition.
-
-2006-08-09  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Incompatibilities): Document that m4 does not
-       yet understand locales.
-       * NEWS: Fix wording of a few items.
-
-2006-08-08  Eric Blake  <ebb9@byu.net>
-
-       Avoid printing `NONE:0:' in error messages.
-       * src/m4.h (m4_error_at_line): New function.
-       * src/m4.c (m4_error_at_line): Implement.
-       * src/input.c (skip_line, input_init, next_token): Use "", not
-       "NONE", for no file, since NONE can be a real file name.
-       * src/macro.c (expand_argument): Likewise.
-       * src/debug.c (debug_message_prefix, trace_header): Check for
-       current file.
-       * doc/m4.texinfo (Dnl, M4wrap): Adjust accordingly.
-       (Location): Document that synclines and internal message format
-       are not impacted by redefining these macros.
-       (M4exit): Hint at bug in fatal_error.
-       (Answers): Provide workaround to match m4 output.
-
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import verror.
-       * src/m4.h (m4_error): New function.
-       (M4ERROR, M4ERROR_AT_LINE): Reimplement without hacking around
-       error module deficiencies.
-       (reference_error, suppress_line): No longer needed.
-       * src/m4.c (m4_error): Implement.
-       (main): No longer need to install error callback.
-
-2006-08-04  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.h (program_name): Declare.
-       (suppress_line): New variable.
-       (M4ERROR_AT_LINE): New macro.
-       * src/m4.c (reference_error, main): Follow GNU Coding Standards
-       for error message format.
-       * src/input.c (skip_line, next_token): Use M4ERROR_AT_LINE.
-       * src/macro.c (expand_argument): Likewise.
-       * checks/check-them (examples): Adjust to new message format.
-       * src/builtin.c (m4___program__): New builtin.
-       * doc/m4.texinfo (Location): Split from Errprint into new node,
-       and document __program__.
-       (Builtin, Ifdef, Ifelse, Dumpdef, Trace, Debug Output, Dnl)
-       (Include, Regexp, Patsubst, Incr, Eval): Adjust error message
-       format.
-       (Extensions): Document __program__.
-       * NEWS: Document this change.
-
-2006-08-03  Eric Blake  <ebb9@byu.net>
-
-       Don't confuse leading `(' in comment or quote with start of
-       argument collection.
-       * src/m4.h (enum token_type): Add TOKEN_OPEN, TOKEN_COMMA,
-       TOKEN_CLOSE.
-       (peek_input): Make private to input.c.
-       (peek_token): New prototype.
-       * src/input.c (default_word_regexp): Reduce ifdefs.
-       (peek_input): Make static.
-       (next_token): Return new token types.
-       (match_input, MATCH): Add argument consume, which controls
-       whether match should be pushed back.
-       (peek_token): New function.
-       (token_type_string) [DEBUG_INPUT]: New function.
-       * src/macro.c (expand_token, expand_argument, collect_arguments):
-       Handle new token types.
-       * doc/m4.texinfo (Changequote, Changecom): Document this.
-       * NEWS: Document this.
-
-       * src/stackovf.c (setup_stackovf_trap): Free memory on failure.
-
-       * src/stackovf.c (setup_stackovf_trap): Gracefully avoid stack
-       overflow detection when sigstack exists but is not implemented.
-       Fixes debian bug 154053.
-       * THANKS: Updated.
-       Reported by David Perlin.
-
-2006-08-02  Eric Blake  <ebb9@byu.net>
-
-       * src/input.c (MATCH): Fix EOF detection on multi-byte comment
-       close.
-
-2006-08-01  Eric Blake  <ebb9@byu.net>
-
-       * src/input.c (skip_line, next_token): Remember current file in
-       case input file ends abruptly.  Addresses debian bug 175365.
-       (pop_input): Defer freeing storage that holds previous file
-       name...
-       (pop_wrapup): to here, after error message is issued.
-       * src/macro.c (expand_argument): Remember current file in case
-       input file ends abruptly.
-       * doc/m4.texinfo (Macro Arguments, Dnl, Changequote, Changecom)
-       (M4wrap): Adjust testsuite accordingly.
-       (Errprint): Document line number limitation of m4wrap.
-       * NEWS: Document this fix.
-       * THANKS: Update.
-
-2006-07-31  Eric Blake  <ebb9@byu.net>
-
-       * src/input.c (peek_input, next_char, match_input): Be eight-bit
-       clean; fixes debian bug 311378.
-       * doc/m4.texinfo (Syntax): Describe eight-bit handling.
-       (Changequote, Changecom): Add examples to test this.
-       * NEWS: Document this fix.
-       * THANKS: Update.
-       Reported by Steven Augart.
-
-       * doc/m4.texinfo: Whitespace fix.
-       * checks/get-them: Avoid exceeding 14-char file name limit.
-       * THANKS: Update.
-
-2006-07-30  Eric Blake  <ebb9@byu.net>
-
-       * src/path.c (path_search): Detect allocation failure.
-
-       Use native free when it is good enough.
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import free.
-       * src/builtin.c (define_user_macro, m4_regexp, m4_patsubst):
-       Adjust calls.
-       * src/symtab.c (free_symbol): Likewise.
-       * src/m4.c (xfree, main): Likewise.
-       * src/m4.h (obstack_chunk_free): Likewise.
-       * src/path.c (path_search): Likewise.
-       * src/input.c (pop_wrapup, set_quotes, set_comment): Likewise.
-
-       * doc/m4.texinfo (Errprint): Add example for last patch.
-       * checks/check-them: Account for VPATH in latest example.
-
-2006-07-29  Eric Blake  <ebb9@byu.net>
-
-       * src/path.c (path_search): Add result parameter, so that
-       -I can be accounted for.  Debian bug 53685.
-       * src/m4.h (path_search): Update prototype.
-       * src/m4.c (main): Adjust callers.
-       * src/freeze.c (reload_frozen_state): Likewise.
-       * src/builtin.c (include, m4_undivert): Likewise.
-       * NEWS: Document this change.
-       Reported by Nicolas Lichtmaier.
-
-2006-07-28  Eric Blake  <ebb9@byu.net>
-
-       * Makefile.am (MAINTAINERCLEANFILES): Fix typo that tripped up
-       several non-GNU makes.
-       * src/stackovf.c (setup_stackovf_trap): Missed _ from yesterday.
-       * src/m4.h: Likewise.
-       * src/input.c (push_wrapup): Avoid compiler warning with Solaris
-       /usr/ccs/bin/ucbcc.
-
-2006-07-27  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Use @acronym{GNU} throughout.
-       (History): Update for 1.4.6.
-
-       * src/m4.h (_): Remove K&R cruft.
-       * src/builtin.c: Likewise.
-       * src/debug.c: Likewise.
-       * src/eval.c: Likewise.
-       * src/macro.c: Likewise.
-       * src/stackovf.c: Likewise.
-
-       * doc/Makefile.am (m4.1): Improve man page.
-       * src/m4.c (usage): Improve --help output, including adding the
-       bug reporting address.
-       (main): Follow GNU Coding Standards for --version output.
-
-2006-07-26  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Use begin-quote, end-quote, begin-comment, and
-       end-comment consistently, to match POSIX.
-
-       * doc/m4.texinfo (Macro Arguments, Changequote, Changecom)
-       (Dnl, M4wrap, Include): Document EOF issues, and add examples.
-       (Incompatibilities): Document incompatibility of changecom
-       vs. macro names, and of EOF in include.
-       * src/input.c (next_token): Reject unterminated comments at EOF.
-       (skip_line): Warn on unterminated dnl at EOF.
-       * NEWS: Document these changes.
-
-2006-07-25  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Update to reflect gnulib's split of
-       stdio-safer into fopen-safer and tmpfile-safer.
-       * src/m4.c: Remove redundant include.
-
-2006-07-24  Eric Blake  <ebb9@byu.net>
-
-       Fix bugs related to stream handling.
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import
-       unlocked-io stdio-safer stdlib-safer close-stream.
-       * configure.ac (AC_CHECK_FUNCS_ONCE): Assume tmpfile; it can be
-       provided by gnulib if needed.
-       * src/output.c [! HAVE_TMPFILE]: Likewise.
-       * src/m4.h (includes): Replace unistd, stdio, and stdlib with
-       their safer counterparts.
-       (retcode): New global variable.
-       * src/input.c (pop_input): Check for read failure.
-       * src/freeze.c (reload_frozen_state): Likewise.
-       (produce_frozen_state): Check for write failure.
-       * src/debug.c (debug_set_file): Likewise.
-       * src/m4.c (usage, main): Likewise.
-       (retcode): Make global.
-       * src/builtin.c (m4_m4exit): Likewise.  Ensure that the exit
-       status is non-zero except when everything succeeds.
-       * doc/m4.texinfo (M4exit): Document these changes.
-       (Incompatibilities): Remove documentation of bug now fixed.
-       * NEWS: Document these fixes.
-
-2006-07-22  Eric Blake  <ebb9@byu.net>
-
-       * src/format.c (format): Avoid compiler warning that str may be
-       used uninitialized.
-
-2006-07-21  Eric Blake  <ebb9@byu.net>
-
-       * src/m4.h [UNIX]: Add more platforms that are close enough to
-       categorize as UNIX, but which don't predefine __unix__.
-       Reported by Nelson H. F. Beebe.
-
-2006-07-20  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: gnulib-tool has changed again.  Regenerate
-       to explicitly ask for --assume-autoconf=2.60.
-
-2006-07-19  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Sysval): Avoid kill -1, since ksh traps SIGHUP
-       and exits normally with 129.
-       Reported by Nelson H. F. Beebe.
-       * THANKS: Update.
-
-       * src/m4.h (EXIT_MISMATCH): Define.
-       * src/freeze.c (reload_frozen_state): Detect version mismatch, by
-       exiting with status 63.
-       * src/m4.c (usage): Document this.
-       * doc/m4.texinfo (Invoking m4, Using frozen files): Likewise.
-       * NEWS: Likewise.
-
-       * doc/m4.texinfo (copying): Relax restriction on front-cover and
-       back-cover texts.
-
-2006-07-17  Eric Blake  <ebb9@byu.net>
-
-       * src/format.c (format): Support F, g, and G specifiers.
-       * doc/m4.texinfo (Format): Document this.
-       * NEWS: Document this addition.
-
-       * doc/m4.texinfo (Builtin): Delete redundant text.
-
-       * configure.ac (AC_INIT): Bump version number.
-       * src/builtin.c (substitute): Bah.  Fix buffer overrun.
-       * NEWS: Document this fix.
-
-2006-07-15  Eric Blake  <ebb9@byu.net>
-
-       Release 1.4.5:
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.4.
-
-       * src/m4.c (usage): Document exit status.
-       * doc/m4.texinfo: Use `exit status', not `exit code'.
-       (Invoking m4): Document exit status.
-
-       * bootstrap: Backport --help, --version from head.
-       (func_update): New function, for easily grabbing up-to-date files
-       from gnulib.
-       * Makefile.maint (web-manual): Fix for VPATH builds.
-
-2006-07-14  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Global cleanup.  Avoid @code{...}'d, as it
-       looks bad in info.  Use @deffn rather than @example for
-       describing prototypes.  Fix awkward wording and grammar.
-
-       * src/builtin.c (substitute): Warn on bad escape sequences.
-       Ignore trailing backslash.
-       * doc/m4.texinfo (Regexp): Add documentation for this.
-       * NEWS: Document this change.
-
-       * src/builtin.c (m4_format, m4_indir): Warn on too few arguments.
-       * doc/m4.texinfo (Defn, Builtin, Debug Levels, Debug Output): Add
-       more examples.
-       (Dnl): Update example to show side effects.
-       * checks/get-them: Generate three digit test names.
-       * checks/Makefile.in (CHECKS): Accomodate 100+ tests.
-
-2006-07-13  Eric Blake  <ebb9@byu.net>
-
-       * src/input.c (input_init): Simplify.
-       (set_word_regexp): Treat empty string as default, since empty
-       regexp would disable word parsing.
-       * src/m4.c (user_word_regexp): Default to empty string.
-       * src/builtin.c (builtin_tab): Make changeword blind.
-       * doc/m4.texinfo (Changeword): Document this.
-       * NEWS: Document this.
-       * TODO: Knock off completed items.
-
-       * src/builtin.c (m4_undefine, m4_popdef): Visit all arguments, not
-       just the first.
-       * doc/m4.texinfo (Undefine, Pushdef): Test this.
-       * NEWS: Document this change.
-
-       * src/builtin.c (numeric_arg): Treat empty string as 0, with a
-       warning.  Detect quoted leading space and overflow as warnings.
-       (m4_eval): Treat empty radix as 10, and allow output in radix 1.
-       Treat width as minimum number of digits, as required by POSIX.
-       (m4_ifdef, m4_divert, m4_m4exit, m4_translit): Ignore extra
-       arguments.
-       (m4_substr): Likewise.  Silently treat empty start as 0.
-       (m4_undivert): Treat ` 1a' as file, not diversion 1.
-       * src/eval.c (eval_lex): Parse radix 1 numbers.
-       * doc/m4.texinfo (Invoking m4): Fix wording; there is more than
-       one type of warning.
-       (Manual): Document behavior of numeric parsing of empty string.
-       (Divert, Incr): Document error handling.
-       (Eval): Document radices better.
-       (Incompatibilities): Document translit incompatibility.
-       * NEWS: Document these changes.
-
-       * Makefile.maint (fetch): Get gendocs from gnulib, not texinfo.
-       (web-manual): Simplify.
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import gendocs.
-       * Makefile.am (EXTRA_DIST): Distribute gendocs.sh.
-       (MAINTAINERCLEANFILES): Clean it as well.
-       * doc/Makefile.am (EXTRA_DIST): Distribute gendocs_template.
-       (MAINTAINERCLEANFILES): Clean it as well.
-
-2006-07-12  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Extensions): Document how to overcome
-       implementation difference in > 9 positional parameters.
-
-       * src/m4.c (usage): Sort within sections.
-       (nesting_limit): Raise default from 250 to 1024.
-       * doc/m4.texinfo: Use file name, not filename, per GNU coding
-       standard.  Use @option where appropriate.
-       (Invoking m4): Sort to match --help output.
-       (Debug Levels): Sort.
-       (Frozen files): Sort and break into two nodes.
-
-       * src/m4.c (nesting_limit): Raise default from 250 to 1024.
-       * NEWS: Document raised -L limit.
-
-2006-07-11  Eric Blake  <ebb9@byu.net>
-
-       * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New macro, to
-       stress-test changeword before a release.
-       * doc/m4.texinfo: More doc cleanups.
-       (Copying This Manual): New node; actually include the FDL in the
-       documentation.
-       * doc/Makefile.am (m4_TEXINFOS): Mention dependence on fdl.texi.
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import fdl.
-       * NEWS: Mention documentation improvements.
-
-       * src/m4.h (OS2): New platform macro.
-       * src/builtin.c (predefined_tab) [OS2]: Use it to give OS/2 a
-       platform macro.
-       * doc/m4.texinfo (Platform macros): Document it.
-       (Sysval): Remove non-portable test of system("").
-       * NEWS: Document this change.
-       Reported by Andreas Buening.
-
-2006-07-09  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Undivert): Fix typo in last commit.
-       * src/m4.c (usage): Document M4PATH.
-       * src/path.c (path_search): Reject empty string.
-       * src/output.c (insert_diversion): Ignore diversion 0.
-       * src/builtin.c (m4_undivert): Ignore empty string.
-       * NEWS: Document this fix.
-
-2006-07-08  Eric Blake  <ebb9@byu.net>
-
-       * checks/get-them: Make filtering easier.
-       * checks/check-them: Filter non-input lines, so line counts are
-       more realistic in the documentation, and so changeword tests work
-       even when dnl is disabled.
-       * doc/m4.texinfo: Adjust example line numbers.  Clean up
-       front-matter, following autoconf's example.
-       (Changeword): Enable tests, skipping if changeword not supported.
-       (Define, Defn, Ifelse): Backport more examples from head.
-       (Input processing, Answers): New nodes, backported from head.
-       (Include): Expand test to cover empty filename.
-       (Undivert): Add test of undivert(0).
-
-2006-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * doc/m4.texinfo: Fix spelling errors.
-
-2006-07-07  Eric Blake  <ebb9@byu.net>
-
-       * THANKS: Update.
-
-       * doc/Makefile.am (m4.1): No need to go through a temporary file;
-       this also ensures timestamps are updated.
-       * src/m4.h (includes): Require config.h.  Assume string.h,
-       stdlib.h, errno.  Include error.h, exit.h, and xalloc.h rather
-       than prototyping ourselves.
-       (builtin_func): Add parameter type-checking.
-       (voidstar): Delete, now that we assume C89.
-       * src/builtin.c, src/m4.c, src/macro.c, src/symtab.c: All users of
-       voidstar changed.
-       * src/m4.c (xfree) [WITH_DMALLOC]: Avoid clash with dmalloc's
-       xfree.
-
-2006-07-06  Eric Blake  <ebb9@byu.net>
-
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import
-       binary-io.
-       * src/m4.h (includes): Add binary-io.h for O_BINARY.
-       * src/freeze.c (produce_frozen_state): Use O_BINARY to remove
-       #ifdef.  Fixes patch from 2005-02-03 for cygwin.
-       * NEWS: Mention this fix.
-
-       * configure.ac (FUNC_SYSTEM_BROKEN): New check for OS/2 bug.
-       * src/builtin.c (m4_syscmd): Work around OS/2 bug.
-
-       * Makefile.am (SUBDIRS): Build . before src, so that autoheader
-       runs first when needed.
-       * doc/Makefile.am (m4.1): Backport rule from CVS head: build m4.1
-       once in srcdir rather than multiple times in VPATH builds.
-
-2006-07-03  Eric Blake  <ebb9@byu.net>
-
-       * checks/check-them: Use portable = in test.
-       * src/Makefile.am (AM_CPPFLAGS): Omit space between -I and
-       directory, as required by Solaris cc.  Include built headers, as
-       required by Solaris make in VPATH build.
-       * checks/Makefile.in: Use $(srcdir) where needed.
-       (CHECKS): Factor $(srcdir) into macro.
-       (DISTFILES): Likewise.  Automake takes care of distributing
-       Makefile.in.
-       (dist): Simplify.
-       (Makefile): Use modern syntax of config.status.
-       * doc/m4.texinfo (Loops, Include, Undivert, Incompatibilities):
-       Avoid overfull and underfull hboxes in dvi.
-
-       Fix 'make check' in VPATH build.  All files included by testsuite
-       now live in a single directory.  Use forloop.m4 in testsuite.
-       * checks/incl.m4, checks/foo, checks/wrapfifo.m4: Move from
-       here...
-       * examples/incl.m4, examples/foo, examples/wrapfifo.m4: ...to
-       here.
-       * checks/Makefile.in (DISTFILES): Don't distribute moved files.
-       * examples/Makefile.am (EXTRA_DIST): Distribute new files.
-       * checks/check-them: Avoid s/// when filename is in pattern.
-       * examples/forloop.m4: Fix to match documentation.
-       * doc/m4.texinfo (Include, Undivert, Incompatibilities): Reflect
-       new locations.
-       (Loops, Format): Actually use forloop.m4 in tests.
-
-2006-07-02  Eric Blake  <ebb9@byu.net>
-
-       * checks/Makefile.in (exec_prefix, prefix): New macros, so that
-       $(bindir) works in installcheck.
-       (check, installcheck): No longer change directory, so that
-       distcheck works with a read-only builddir.
-       * checks/check-them: Work when pwd is no longer builddir.
-
-2006-07-01  Eric Blake  <ebb9@byu.net>
-
-       * GNUmakefile: New file, borrowed from coreutils.
-       * Makefile.am (EXTRA_DIST): Distribute GNUmakefile.
-       * Makefile.maint (Makefile): Delete this rule, now that
-       GNUmakefile includes Makefile.
-
-2006-06-30  Eric Blake  <ebb9@byu.net>
-
-       For compatibility with other m4 implementations, sysval returns
-       signal<<8 rather than 0 if syscmd is terminated by a signal.
-       * configure.ac (AC_CHECK_HEADERS_ONCE): Check for sys/wait.h.
-       * src/builtin.c (include): Include sys/wait.h when stdlib.h does
-       not provide wait macros.
-       (WTERMSIG, WIFSIGNALED, WIFEXITED): More fallback macros.
-       (M4SYSVAL_EXITBITS, M4SYSVAL_TERMSIGBITS): New helper macros.
-       (m4_esyscmd): Set sysval to -1 on failure.
-       (m4_sysval): Print 127 on failure, and accomodate signals if they
-       are detectable.
-       * NEWS: Document this change.
-       * doc/m4.texinfo (Platform macros, Esyscmd, Sysval): Fix typos in
-       last commit.
-       * checks/check-them: Likewise.
-       * src/debug.c (debug_set_file): Work around mingw fstat bug.
-
-       * src/m4.h (UNIX, W32_NATIVE): Improve platform detection macros.
-       * src/freeze.c (produce_frozen_state): Use new spelling of
-       platform macro.
-       * src/builtin.c (predefined_tab): Add __windows__ on non-unix
-       platforms.
-       (m4_syscmd, m4_esyscmd): The empty command is successful.
-       * doc/m4.texinfo (Shell commands): Rename from UNIX commands.
-       Document platform-dependence of system().
-       (Syscmd): Add example.
-       (Esyscmd): Make example more robust, and actually demonstrate
-       rescanning.
-       (Sysval): Expand test to cover esyscmd code path, and to check
-       that empty command is successful.  Add conditional check for
-       signal behavior.
-       (Other Incompatibilities): Move platform macros from here...
-       (Platform macros): ...to this new node.  Add windows macro.
-       Check that exactly one platform macro is provided.
-       * checks/check-them: Improve trap cleanup.  Tolerate dirname and
-       .exe in error messages.  Allow for skipping checks.
-       * configure.ac (HAVE_EFGCVT): Kill dead configure check.
-       * NEWS: Document platform macros.
-
-2006-06-29  Eric Blake  <ebb9@byu.net>
-
-       Fix buffer overrun bug.
-       * m4/gnulib-cache.m4: Augment with gnulib-tool --import
-       xvasprintf.
-       * src/format.c [HAVE_EFGCVT]: Delete this code, and use *printf
-       variant instead, since [efg]cvt are obsolete and our use of them
-       was buggy (savannah sr #104303).
-       (format): Fix buffer overflow by using xasprintf.
-       * doc/m4.texinfo (Format): Expand format test to catch both bugs.
-       * NEWS: Document this fix.
-
-       * configure.ac (AC_CANONICAL_HOST, AC_CANONICAL_BUILD): Allow
-       cross-compilation.
-       (AC_CACHE_CHECK): Cache search for ecvt.
-
-2006-06-27  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Eval): Document 32-bit signed limitations
-       required by POSIX, and add example that exposed core dump on x86
-       architectures.
-       (Incompatibilities): Document incompatibility in eval precedence.
-       * src/eval.c (shift_term): Explicitly mask, to avoid undefined
-       behavior.
-       (mult_term): Explicitly check for -1, to avoid SIGFPE on x86.
-       * NEWS: Document this change.
-
-       * doc/m4.texinfo: Use @noindent consistently.
-       (Quoting Arguments): Document that unquoted parentheses group
-       arguments.
-       (Pseudo Arguments): Expand tests to show this.
-       (Incompatibilities): Contrast traditional behavior of
-       changequote.
-
-2006-06-24  Eric Blake  <ebb9@byu.net>
-
-       * configure.ac (AC_PREREQ): Autoconf 2.60 is now released.
-       (AC_CHECK_HEADERS_ONCE): Use this new feature.
-       (AC_CHECK_FUNCS_ONCE): Likewise.
-
-2006-06-23  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Quoting cleanup throughout - follow
-       autoconf-recommended style of one level of quote per parenthesis
-       in the normal case.  Adjust error messages to match GNU coding
-       standards (and to allow 'make check' to pass again).
-       (Quoted strings, Inhibiting Invocation): Turn more examples into
-       tests.
-       (Comments): Resolve FIXME by adding example.
-       (Define): Add example about underquoting.
-       (Defn): Add example about use of $0.
-       (Indir, Format): Resolve FIXME done in last commit.
-       (Ifelse): Add example about creating blind macro.
-       (Debugging): Fix grammar.
-       (Dnl): Add example about dnl with arguments.
-       (M4wrap): Be explicit that LIFO order is non compliant, and will
-       change in m4 2.0.
-       (Undivert): Resolve FIXME by adding example.
-       (Frozen files): Document that m4wrap and sysval will not work
-       consistently until m4 2.0.
-       (Incompatibilities): Document another POSIX compliance bug, this
-       time with changequote.  Document a traditional incompatibility
-       with partial input spanning file boundaries.
-
-       Make error messages more consistent with GNU coding standards -
-       start with lower case, and don't end sentence with punctuation.
-       * src/debug.c (trace_pre): Update message wording.
-       * src/eval.c (evaluate, cmp_term, shift_term, mult_term):
-       Likewise.
-       * src/freeze.c (produce_frozen_state, issue_expect_message),
-       (reload_frozen_state): Likewise.
-       * src/input.c (push_string_init, pop_init, init_macro_token),
-       (peek_input, next_char_1, set_word_regexp, next_token): Likewise.
-       * src/m4.c (stackovf_handler, main): Likewise.
-       * src/macro.c (expand_token, expand_argument, call_macro),
-       (expand_macro): Likewise.
-       * src/output.c (make_room_for, output_text, insert_file),
-       (freeze_diversions): Likewise.
-       * src/symtab.c (symtab_init, lookup_symbol): Likewise.
-
-       * src/builtin.c (builtin_tab): Make format and indir blind.
-       (substitute): Prefer "Warning:" vs. "ERROR:" in messages.
-       * NEWS: Mention the change to builtins.
-
-2006-06-22  Eric Blake  <ebb9@byu.net>
-
-       Robustify frozen file format.
-       * src/freeze.c (reload_frozen_state): Add GET_DIRECTIVE helper
-       macro.  Require V first, and only accept it once.  For F, use
-       placeholder if builtin is not found, rather than warning.
-       * src/m4.h (m4_placeholder): New prototype.
-       * src/builtin.c: Unify error message style.
-       (m4_placeholder): New function, warn if invoked.
-       (builtin_tab): Add m4_placeholder.
-       (m4_defn): Warn if placeholder is encountered.
-       (find_builtin_by_addr): Handle placeholder.
-       (find_builtin_by_name): Return placeholder on failure.
-       (m4_builtin): Treat placeholder as undefined.
-       * doc/m4.texinfo (Frozen files): Document changes in V and F.
-       * NEWS: Document this change.
-       Reported by Bruno Haible.
-
-       * doc/m4.texinfo: Whitespace cleanup.  TABs are evil in texinfo.
-       (tabchar): New macro, so that 'make check' still works.
-       (Invoking m4): Document that ignored compatibility options -B, -S,
-       and -T each consume an argument.
-       * checks/get-them: Honor @tabchar{}.
-
-       Avoid compiler warnings during -DDEBUG.
-       * src/m4.h (M4_GNUC_ATTRIBUTE, M4_GNUC_UNUSED): New macros.
-       [DEBUG]: Also imply DEBUG_OUTPUT and DEBUG_STKOVF.
-       * src/input.c (print_token) [DEBUG_INPUT]: Use correct format.
-       (lex_debug) [DEBUG_INPUT]: Fix to compile.  Mark unused.
-       (next_token) [DEBUG_INPUT]: Print before returning.
-       * src/path.c (include_dump) [DEBUG_INCL]: Mark unused.
-       * src/symtab.c (symtab_debug) [DEBUG_SYM]: Mark unused.
-
-       Avoid mkstemp bugs on various platforms.
-       * m4/gnulib-cache.c: Augment with gnulib-tool --import mkstemp.
-       * src/output.c [! HAVE_MKSTEMP]: Delete.
-       * configure.ac (AC_CHECK_FUNCS): Don't check for mkstemp.
-       * src/m4.h (mkstemp) [! HAVE_MKSTEMP]: Prototype, if needed.
-       * NEWS: Document this.
-
-       * Makefile.am (EXTRA_DIST): Distribute gnulib-cache.m4.
-       Reported by Bruno Haible.
-
-2006-06-21  Eric Blake  <ebb9@byu.net>
-
-       Avoid obsolete sigstack when POSIX sigaltstack is available.
-       * src/m4.c: Blindly assume signal.h, since stackovf.c and gnulib
-       do likewise.
-       * configure.ac (AC_CHECK_HEADERS): Likewise.
-       (AC_CHECK_TYPES): New check for siginfo_t, since siginfo.h is
-       obsolete and most hosts now have it in signal.h.
-       (AC_CHECK_MEMBERS): New check for sigaction.sa_sigaction.
-       (AC_CACHE_CHECK): Cache decision to use stackovf.
-       (AC_EGREP_HEADER): Switch to AC_CHECK_TYPES.
-       * src/stackovf.c (DEBUG_STACKOVF): Remove unused define.
-       (SA_RESETHAND, SA_SIGINFO): Provide fallback definitions, to
-       simplify later code.
-       (PARAM_STACKOVF, PARAM_NOSTACKOVF): Move further away from NULL,
-       in case of dereferencing a member of a NULL pointer.
-       (sigsegv_handler) [HAVE_STRUCT_SIGACTION_SA_SIGACTION]: Define a
-       POSIX handler.
-       (setup_stackovf_trap): Use NULL instead of 0 for pointers, use
-       EXIT_FAILURE in error, indent preprocessor directives.
-       [HAVE_SIGALTSTACK && HAVE_SIGINFO_T]: Depend on siginfo_t, not
-       siginfo.h.
-       [HAVE_SIGACTION && defined SA_ONSTACK]: Prefer POSIX handler.
-       Reported by Santiago Vila.
-
-2006-06-19  Eric Blake  <ebb9@byu.net>
-
-       * THANKS: Update.
-
-2006-06-18  Andreas Buening  <andreas.buening@nexgo.de>  (tiny change)
-
-       * checks/Makefile.in (PATH_SEPARATOR): New macro.
-       (check, installcheck): Use it, for OS/2.
-
-2006-06-18  Eric Blake  <ebb9@byu.net>
-
-       Consistently use "GNU M4" as package name, "m4" as executable
-       name.
-       * NEWS: Document previous fix.
-       * THANKS: Update.
-       * README: Fix grammar.  Document that --enable-changeword is on
-       its last leg.
-       * doc/m4.texinfo (Top, Changeword): Likewise.
-       (Sysval): Enhance this test.
-       (History): Backport this section from CVS head, and update.
-
-2006-06-18  Bruno Haible  <bruno@clisp.org>  (tiny change)
-           Eric Blake  <ebb9@byu.net>
-
-       * src/builtin.c (WEXITSTATUS): Provide fallback definition.
-       (m4_esyscmd): Set sysval to 0xffff, to accomodate both
-       big-endian and little-endian wait status definitions.
-       (m4_sysval): Use WEXITSTATUS.
-       Reported by Andreas Buening.
-
-2006-06-18  Eric Blake  <ebb9@byu.net>
-
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes in 1.4.4c.
-
-2006-06-17  Eric Blake  <ebb9@byu.net>
-
-       Beta Release 1.4.4b:
-       * configure.ac (AC_INIT): Bump version number.
-       * NEWS: Describe changes since 1.4.4.
-       * Makefile.maint (cvs-news): Accomodate copyright line wrapping.
-
-       * Makefile.am (MAINTAINERCLEANFILES): Clean files added by
-       bootstrap.
-       * checks/Makefile.in (maintainer-clean): Add missing target.
-       * COPYING: Remove generated file from CVS.
-
-2006-06-16  Eric Blake  <ebb9@byu.net>
-
-       * checks/Makefile.in (DISTFILES): Distribute wrapfifo.m4.
-
-2006-06-15  Eric Blake  <ebb9@byu.net>
-
-       * checks/wrapfifo.m4: New file.  Use it...
-       * doc/m4.texinfo (Incompatibilities): here, in a new test case to
-       demonstrate how to get POSIX behavior of m4wrap prior to m4 2.0.
-
-       * src/m4.h (to_uchar): New function.
-       * src/eval.c (eval_lex): Use it to avoid passing signed char to
-       isdigit, isalpha, isupper, islower, isspace, isalnum.
-       * src/builtin.c (expand_user_macro): Likewise.
-       * src/format.c (format): Likewise.
-       * src/macro.c (expand_argument): Likewise.
-       * NEWS: Document this security fix.
-
-       Message cleanup.
-       * src/symtab.c (lookup_symbol): Use invalid, not illegal.
-       * src/freeze.c (reload_frozen_state): Fix typo in message.
-       (produce_frozen_state): Standardize on builtin, not built-in.
-       * src/builtin.c (numeric_arg, bad_argc): Likewise.
-
-       * configure.ac (M4_EARLY, M4_INIT): Use gnulib.
-       (AC_PROG_RANLIB, AC_AIX, AC_MINIX, AC_CHECK_HEADERS),
-       (AC_FUNC_ALLOCA, AC_REPLACE_FUNCS): Avoid checks now done by
-       gnulib.
-       * Makefile.am (ACLOCAL_AMFLAGS): New entry, for gnulib.
-       * m4/gnulib-cache.m4: New file, from gnulib.
-       * bootstrap: Invoke gnulib-tool --update.
-       * src/m4.c (main): Cast away const.
-       * NEWS: Document that regex is updated.
-       * THANKS: Update.
-
-2006-06-08  Eric Blake  <ebb9@byu.net>
-
-       * configure.ac (changeword): Work even when changeword is not a
-       macro.
-       (AC_PROG_AWK, AC_PROG_INSTALL, AC_PROG_MAKE_SET, AC_HEADER_STDC):
-       Delete; now done by automake.
-       (AC_ISC_POSIX, AC_C_CONST): Delete; now obsolete.
-
-2006-06-07  Eric Blake  <ebb9@byu.net>
-
-       * lib/regex.c (bcmp_translate): Canonicalize type name.
-       * doc/Makefile.am (MAINTAINERCLEANFILES): Fix typo.
-       * configure.ac (changeword): Disable changeword for the creation
-       of configure, in case of bootstrapping with an m4 configured with
-       --enable-changeword.
-
-       Distribute a rudimentary man page.
-       * Makefile.am (SUBDIRS): Move doc after src so that 'm4 --help'
-       can feed help2man.
-       * doc/Makefile.am (man_MANS, EXTRA_DIST, MAINTAINERDISTCLEAN),
-       (SUFFIXES, m4.1): New macros and rules to build m4.1.
-
-2006-06-06  Eric Blake  <ebb9@byu.net>
-
-       * lib/regex.c (re_match_2_internal, bcmp_translate): Avoid
-       compiler warnings at -O2.
-       * lib/getopt.c (_getopt_internal): Likewise.
-
-       Cleanup of previous patches.
-       * src/input.c (struct input_block): Remove traced member.
-       (push_macro, init_macro_token): Don't pass trace status around.
-       * src/m4.h (struct token_data): Remove traced member.
-       (struct symbol, struct builtin): Reduce unused space.
-       (TOKEN_DATA_FUNC): Simplify.
-       (TOKEN_DATA_FUNC_TRACED): Remove unused macro.
-       (push_macro, define_builtin): Remove unused parameter.
-       * src/builtin.c (define_builtin, builtin_init, define_macro),
-       (m4_defn): Don't pass trace status around.
-       * src/macro.c (expand_argument): Likewise.
-       * src/freeze.c (reload_frozen_state): Likewise.
-       * src/symtab.c: Whitespace cleanup.
-       * NEWS: Clean up wording.
-       * doc/m4.texinfo (Undefine, Dumpdef, Trace): Cleanup wording;
-       ensure tests actually expose bugs prior to today's patches.
-
-       Trace status of builtins is no longer inherited across
-       define(...,defn(...)).  Fixes bug that autom4te had been working
-       around.
-       * src/builtin.c (define_builtin): Don't override trace status.
-       * doc/m4.texinfo (Trace): Add test for this.
-       * NEWS: Document this.
-
-       When changing macro definitions inside the arguments to the macro,
-       consistently preserve the old definition that was in effect before
-       argument collection, similar to the C pre-processor.
-       Reported by John Brzustowski.
-       * NEWS: Document this change.
-       * doc/m4.texinfo (Macro Arguments, Undefine, Dumpdef): Document
-       this policy, and add tests that expose core dumps prior to this
-       patch.
-       * src/m4.h (struct symbol): New members to track when a symbol is
-       still in use after removal from the symbol table.
-       (SYMBOL_PENDING_EXPANSIONS, SYMBOL_DELETED): Define.
-       (free_symbol): Prototype.
-       * src/macro.c (expand_macro): Track pending expansions of a
-       symbol.  On completion, if a symbol is deleted and no longer
-       pending, free its memory.
-       * src/symtab.c (free_symbol): Export.  Don't free memory if symbol
-       is still in use.
-       (lookup_symbol) <SYMBOL_INSERT>: Create new entry when old entry
-       is still in use.
-       (lookup_symbol) <SYMBOL_DELETE, SYMBOL_POPDEF>: Mark entries still
-       in use as deleted and remove from the table without freeing
-       memory.
-       (symtab_print_list) [DEBUG_SYM]: More debug output.
-
-       * src/symtab.c (hack_all_symbols): Allow certain modifications of
-       the symbol table during traversal.
-       * src/builtin.c (set_trace): Replace SYMBOL_DELETE with
-       SYMBOL_POPDEF, since only the latter is safe with
-       hack_all_symbols.
-
-       Solve crash when passing "indir(`foo')" to "m4 -tfoo".
-       * src/symtab.c (lookup_symbol) <SYMBOL_DELETE, SYMBOL_POPDEF>:
-       Preserve placeholder when macro is being traced.
-       * src/builtin.c (m4_ifdef, m4_indir): A traced but undefined
-       symbol is not defined.
-       (set_trace): Remove placeholder when no longer traced.
-       (m4_traceon): On named traces, always reserve a slot in the
-       symbol table.
-       (m4_traceoff): Don't warn about untracing a nonexistent symbol.
-       * NEWS: Document new trace behavior.
-       * doc/m4.texinfo (Trace): Tracing by name now consistently works
-       no matter whether that macro is currently defined.
-       (Incompatibilities): Document differences between traditional and
-       GNU trace.
-
-2006-06-04  Paul Eggert  <eggert@cs.ucla.edu>  (tiny change)
-           Eric Blake  <ebb9@byu.net>
-
-       * src/m4.h (hash_table_size): Now size_t instead of int.
-       * src/m4.c (hash_table_size): Likewise.
-       (main): Adjust to this; use atol rather than atoi.
-       * src/symtab.c: Include <limits.h>, for CHAR_BIT.
-       (symtab_init, lookup_symbol, hack_all_symbols):
-       Use size_t for sizes and indexes, not int.
-       (symtab_print_list) [DEBUG_SYM]: Likewise.
-       (hash): Likewise.  Don't case-fold in the hash function.
-       Shift by 7, not 3, for consistency with gnulib/lib/hash.c.
-       Don't assume hash word is 32 bits.
-       * NEWS: Document this change.
-
-2006-06-04  Eric Blake  <ebb9@byu.net>
-
-       * src/symtab.c (symtab_debug, symtab_print_list) [DEBUG_SYM]: Fix
-       to allow compilation, for use in debugger.
-       (profiles, current_mode) [DEBUG_SYM]: New variables.
-       (show_profile, profile_strcmp) [DEBUG_SYM]: New methods for
-       determining hash table performance.
-
-2006-05-31  Eric Blake  <ebb9@byu.net>
-           John Brzustowski  <jbrzusto@fastmail.fm>
-
-       * src/input.c (input_stack): Delete; use current_input instead.
-       (wrapup_stack): Dynamically allocate, so that recursion is handled
-       properly.
-       (push_wrapup): Use current wrapup stack.
-       (pop_wrapup): Rotate wrapup stack to current, and create new
-       wrapup stack.
-       (input_init): Dynamically allocate stacks.
-       * NEWS: Update, now that recursive m4wrap can no longer cause
-       core dump.
-
-2006-05-31  Eric Blake  <ebb9@byu.net>
-
-       * lib/getopt.c: Fix copyright year.
-       * lib/obstack.c: Ditto.
-       * src/builtin.c: Ditto.
-
-2006-05-30  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (M4wrap): Add test to expose m4wrap bug.
-       Reported by John Brzustowski.
-       (Incompatibilities): Document known POSIX incompatibilities.
-       * THANKS: Update.
-
-2006-05-29  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo (Maketemp): Work even when running 'make check'
-       in read-only dir.
-
-       Use automake.
-       * Makefile.am: New file.
-       * doc/Makefile.am: Ditto.
-       * examples/Makefile.am: Ditto.
-       * lib/Makefile.am: Ditto.
-       * src/Makefile.am: Ditto.
-       * acinclude.m4: New file, renamed from aclocal.m4.
-       * configure.ac (AM_INIT_AUTOMAKE): Invoke new macro.
-       (AC_ARG_PROGRAM): Now redundant.
-       (STACKOVF): Turn into automake conditional.
-       (AC_CONFIG_COMMANDS): stamp-h is a command, not a file.
-       * checks/Makefile.in: Converting this dir to automake was not
-       trivial; for now, just add missing targets demanded by top-level.
-       * INSTALL: Remove files that are now generated from CVS.
-       * Makefile.in: Ditto.
-       * aclocal.m4: Ditto.
-       * install-sh: Ditto.
-       * mkinstalldirs: Ditto.
-       * doc/Makefile.in: Ditto.
-       * doc/texinfo.tex: Ditto.
-       * examples/Makefile.in: Ditto.
-       * lib/Makefile.in: Ditto.
-       * src/Makefile.in: Ditto.
-
-       * AUTHORS: Backport from CVS head, and update.
-       * doc/m4.texinfo (Changeword): Fix examples to match behavior.
-
-2006-05-27  Eric Blake  <ebb9@byu.net>
-
-       * lib/regex.c (regex_compile): Kill compiler warnings.
-       * lib/getopt.c: Likewise.
-       * lib/obstack.c: Likewise.
-       * src/builtin.c (builtin_init): Likewise.
-       * src/path.c (path_search): Likewise.
-
-       * doc/m4.texinfo: Fix usage of a vs. an.
-       (Loops, Include, Cleardiv, Patsubst, Format, M4exit): Kill
-       overfull hbox warnings.
-       (Inhibiting Invocation, Divert, Maketemp, M4exit): Add new tests.
-
-       * configure.ac: Update to autoconf 2.59.  Forbid ^M4_.  Fix
-       quoting.
-       * aclocal.m4 (fp_PROG_CC_STDC): Delete; now covered by autoconf.
-       (fp_C_PROTOTYPES): Delete, GNU Coding Standards state we can now
-       assume C89.
-       (M4_WITH_DMALLOC): Rename from fp_WITH_DMALLOC. Fix quoting.
-       * src/m4.h (_): PROTOTYPES is no longer provided, assume C89.
-       * src/Makefile.in: Delete remains of ansi2knr.
-       * src/ansi2knr.1: Delete.
-       * src/ansi2knr.c: Delete.
-
-2006-05-25  Eric Blake  <ebb9@byu.net>
-
-       * doc/m4.texinfo: Fix spelling errors.  Use `invalid' instead of
-       `illegal'.
-
-       * doc/m4.texinfo (Francois): No longer needed as a tex variable.
-       Reported by Karl Berry.
-
-2006-05-24  Eric Blake  <ebb9@byu.net>
-
-       * Makefile.in (html): New target.
-       * doc/Makefile.in (html, m4.html): Likewise.
-       (MAKEINFOHTML): New macro.
-       * doc/m4.texinfo (Francois) [ifnottex]: Use newer texinfo
-       rendering.
-       (Regexp) [ifhtml]: Make cross-reference to emacs manual an
-       absolute URL.
-       Reported by Bob Badour.
-
-       * THANKS: Update.  Move reporter's email addresses here, instead
-       of in ChangeLog.
-
-2006-05-11  Eric Blake  <ebb9@byu.net>
-
-       * THANKS: Update.
-       * doc/m4.texinfo (Changequote): Give testsuite exposure to bug
-       patched on 2005-12-04.
-       Reported by Ilya N. Golubev.
-
-       * bootstrap: New file, so that generated files need not be stored
-       in CVS.
-       * Makefile.in (DISTFILES): Add bootstrap.
-
-       Make testsuite less sensitive to doc changes.
-       * doc/m4.texinfo: Use m4.input instead of filename.
-       * checks/check-them (xerr): Turn m4.input into filename.
-       * checks/Makefile.in (dist): Depend on stamp-checks.
-
-       Portability updates for OS/2.
-       * src/Makefile.in (EXEEXT, OBJEXT): Define.
-       (LINK): Use CFLAGS.
-       (.c.obj): Define.
-       * lib/Makefile.in (OBJEXT): Define.
-       (.c.obj): Define.
-       * doc/Makefile.in (install, uninstall): Install info files into
-       the dir listing.
-       Reported by Andreas Buening.
-
-2006-05-09  Eric Blake  <ebb9@byu.net>
-
-       * install-sh: Update to newer upstream version.
-       * mkinstalldirs: Likewise.
-       Reported by Andreas Buening.
-
-       * src/m4.c (main): Bump copyright year.
-       * Makefile.in (datarootdir): Define, for autoconf 2.59c.
-       * doc/Makefile.in (datarootdir): Likewise.
-
-2006-05-08  Eric Blake  <ebb9@byu.net>
-
-       * THANKS: Update.
-       * doc/m4.texinfo (Bugs): Backport bug email address from head.
-       Reported by Stepan Kasal.
+2021-04-17  Eric Blake  <eblake@redhat.com>
 
-2005-12-04  Ilya N. Golubev  <gin@mo.msk.ru>  (tiny change)
+       maint: update gnulib and fix build failures
+       I got failures when trying to bootstrap:
 
-       * input.c (match_input): Do not pass expression with side effect
-       to `obstack_grow'.  Fix <INTERNAL ERROR: Recursive push_string!>.
-       * NEWS: Updated.
+       bootstrap: getting translations into po/.reference for m4...
+       receiving incremental file list
+       rsync: change_dir "/latest/m4" (in tp) failed: No such file or directory (2)
 
-2005-12-04  Gary V. Vaughan  <gary@gnu.org>  (tiny change)
+       since m4-1.4 has no translation files, and the translation project
+       dropped the stale .po files for the unreleased 1.9 development branch.
 
-       * doc/m4.texinfo (How to debug macros and input): s/woould/would/
-       Reported by Damian Menscher.
+       Once that was fixed, I also got compilation failures, from an
+       incomplete update to the gnulib execute module:
 
-2005-10-19  Gary V. Vaughan  <gary@gnu.org>  (tiny change)
+       builtin.c: In function 'm4_syscmd':
+       builtin.c:968:44: error: passing argument 3 of 'execute' from incompatible pointer type [-Werror=incompatible-pointer-types]
+         968 |   status = execute (ARG (0), SYSCMD_SHELL, prog_args, NULL, false,
+             |                                            ^~~~~~~~~
+             |                                            |
+             |                                            const char **
 
-       * configure.ac (AC_INIT): Bump to 1.4.4a.
+       Fixes: 4e5c2c0157
 
-2005-10-19  Gary V. Vaughan  <gary@gnu.org>  (tiny change)
-
-       Release 1.4.4:
-       * configure.ac (AC_INIT): Bump to 1.4.4.
-       * NEWS: Describe 1.4.4's changes.
-       * INSTALL, install-sh, doc/texinfo.tex: Updated from upstream.
-
-2005-10-17  John Gatewood Ham  <zappaman@buraphalinux.org>  (tiny change)
-
-       * src/m4.c: fix return code when non-existent files are processed
-
-2005-10-17  John Gatewood Ham  <zappaman@buraphalinux.org>  (tiny change)
-
-       * README: update email address for bug reports.
-
-2005-10-17  Gary V. Vaughan  <gary@gnu.org>
-
-       * doc/m4.info: Generated files are not kept in the repository.
-
-2005-05-01  Gary V. Vaughan  <gary@gnu.org>
+       * gnulib: Update to latest.
+       * bootstrap.conf (copyright_holder): Silence bootstrap warning.
+       (m4_bootstrap_options_prep): Turn off po update.
+
+2020-12-12  Bruno Haible  <bruno@clisp.org>
+
+       Update after gnulib changed.
+       * src/builtin.c (m4_syscmd): Update 'execute' invocation.
+       (m4_esyscmd): Update 'create_pipe_in' invocation.
+       * po/POTFILES.in: Remove lib/w32spawn.h. Add lib/openat-die.c, lib/os2-spawn.c.
+
+2020-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * HACKING: Autoconf 2.64 required now.
+
+2020-08-23  Bruno Haible  <bruno@clisp.org>
+
+       build: Fix bootstrap failure with the newest gnulib.
+       * configure.ac: Require Autoconf 2.64 at least.
+
+2020-07-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port recent changes to AIX 7.1
+       * src/Makefile.am (m4_LDADD): Add LIB_MBRTOWC, LIB_SETLOCALE.
+       AIX 7.1 needs these to get the pthread support linked in.
+
+2020-07-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Support gettext and proper names
+       This way, ‘m4 --version’ outputs “Written by René Seindal”
+       instead of “Written by Rene' Seindal” when in a UTF-8 locale.
+       As the Translation project adds translations, NLS should
+       get better.
+       * .gitignore: Add translation-related file names.
+       * AUTHORS, ChangeLog-2014, NEWS, README, acinclude.m4, c-boxes.el:
+       Spell “François” and “René” without ASCIIfying.
+       * HACKING: Add Gettext as a prereq.
+       * Makefile.am (SUBDIRS): Add po.
+       * configure.ac: Do not use -Wvla.  Add AM_GNU_GETTEXT
+       and AM_GNU_GETTEXT_VERSION calls.
+       * lib/Makefile.am (MAINTAINERCLEANFILES): Define to empty.
+       * m4/gnulib-cache.m4: Add configmake, gettext-h, propername,
+       and setlocale modules.
+       * po/POTFILES.in: New file.
+       * src/Makefile.am (m4_LDADD): Add $(LIBICONV), $(LIBINTL).
+       * src/m4.c: Include configmake.h, propername.h.
+       (main): Set the locale.
+       * src/m4.h: Include locale.h, gettext.h.
+       (textdomain, bindtextdomain) [!ENABLE_NLS]: Provide defaults.
+       (_): Now an alias for gettext, instead of a no-op.
+
+       Use c-ctype.h instead of ctype.h
+       This simplifies the code a bit, and prepares for setlocale.
+       * m4/gnulib-cache.m4: Add c-ctype module.
+       * src/builtin.c (numeric_arg, m4_undivert, expand_user_macro):
+       * src/eval.c (eval_lex):
+       * src/format.c (arg_int, arg_long, arg_double, expand_format):
+       * src/freeze.c (GET_NUMBER): m
+       * src/input.c (next_token, peek_token):
+       * src/macro.c (expand_argument):
+       Prefer c-ctype macros to ctype macros.
+       Omit now-unnecessary calls to to_uchar.
+       * src/m4.h: Include c-ctype.h instead of ctype.h.
+
+2020-07-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Regenerate bootstrap
+
+       Convert m4.texi from Latin-1 to UTF-8
+       * HACKING: Texinfo 4.11 and Autoconf 2.63 are now prereqs.
+       * doc/m4.texi: Convert to UTF-8.
+
+2020-07-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to recent GCC with --enable-gcc-warnings
+       * m4/gnulib-cache.m4: Add attribute, verify.
+       * src/m4.c (m4_failure, m4_failure_at_line): New functions.
+       These replace all uses of M4ERROR ((EXIT_FAILURE, ...)) and
+       M4ERROR_WITH_LINE ((EXIT_FAILURE, ...), so that the compiler can
+       deduce they do not return.
+       * src/m4.h: Include attribute.h, verify.h.
+       (M4_GNUC_ATTRIBUTE, M4_GNUC_UNUSED, M4_GNUC_PRINTF)
+       (M4_GNUC_NORETURN, M4_GNUC_PURE): Remove.
+       All uses replaced by corresponding attributes from attribute.h.
+       Also, use attribute.h’s FALLTHROUGH macro as needed in all files.
+       * src/macro.c (expand_macro): Cast to uintptr_t instead of to char *
+       to pacify GCC alignment warning.
+
+       maint: update copyright date
+       Arrived at via:
+       make update-copyright
+       gl/build-aux/inline-source gl/build-aux/bootstrap.in > bootstrap
+
+       build: adjust to gnulib changes
+       * configure.ac: Require Autoconf 2.63; needed by Gnulib.
+       * m4/gnulib-cache.m4: Regenerate.
 
-       The FSF are moving offices today.  Changed their contact address
-       in all files from `59 Temple Place, Suite 330, MA 02111-1307' to
-       `51 Franklin Street, Fifth Floor, MA 02110-1301'.
+2020-07-05  Bruno Haible  <bruno@clisp.org>
 
-       Also, some of the files here were never updated from the previous
-       '675 Mass Ave, Cambridge, MA 02139', so changed those to the
-       '51 Franklin Street, Fifth Floor, MA 02110-1301' address too.
+       Update after gnulib changed
+       * src/output.c (m4_tmpfile, m4_tmpopen): Update fopen_temp invocations.
+       * gl/lib/clean-temp.c.diff: Remove file, no longer needed.
 
-2005-03-31  Mike Frysinger  <vapier@gentoo.org>
+2020-07-05  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * Makefile.in (bindir, infodir): Substitute from configure rather
-       than hardcode.
-       * doc/Makefile.in (infodir): Ditto.
-       * src/Makefile.in (bindir): Ditto.
-       * NEWS: Updated.
+       build: update gnulib submodule to latest
 
-2005-03-31  Gary V. Vaughan  <gary@gnu.org>
+2017-01-02  Eric Blake  <eblake@redhat.com>
 
-       Changes needed to automate the release process for 1.4.3:
+       maint: bump copyright year
+       Needed to keep 'make syntax-check' passing.
 
-       * Makefile.in (dist): Make .tar.bz2 tarball too.
-       * Makefile.maint (TSDEPS_DIST): Remove m4/libtool.m4.
-       (cvs-news): Look 1 line further down for NEWS release number.
-       (cvs-dist): We don't use automake, so make dist is fine.
-       Remove double . before suffixes.
-       (cvs-release): Don't mention manual.html.
-       (fetch): Get latest gendocs files.
-       (web-manual): Rewritten to use gendoc for multiformat manuals.
-       * doc/gendocs.sh: Don't save an old version in m4 CVS!
-       * doc/m4.texinfo (Index): HFS+ (the file system on my Mac) is case
-       preserving, but case insensitive, so generating html docs per node
-       clashes between Index.html, the node file, and index.html, the
-       top-level of the document tree...
-       (Index macro): ...so renamed to this.  Changed all references.
+       * gnulib: Update to latest.
+       * bootstrap: Regenerate.
+       * all files: Use 'make update-copyright' to bump year.
 
-2005-03-31  Gary V. Vaughan  <gary@gnu.org>  (tiny change)
+2016-12-31  Eric Blake  <eblake@redhat.com>
 
-       * configure.ac (AC_INIT): Bump to 1.4.3a.
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
 
-2005-03-31  Gary V. Vaughan  <gary@gnu.org>  (tiny change)
+       version 1.4.18
+       * NEWS: Record release date.
 
-       Release 1.4.3:
-       * configure.in (AC_INIT): Bump to 1.4.3.
-       * NEWS: Describe 1.4.3's changes.
+       doc: abbreviate and update release history
+       * doc/m4.texi (History): Shorten, and call out today's release.
 
-2005-03-31  Gary V. Vaughan  <gary@gnu.org>
+2016-12-31  Eric Blake  <eblake@redhat.com>
 
-       * Makefile.maint: New file with release rules, from CVS libtool.
-       * Makefile.in (DISTFILES): Add Makefile.maint.
-       * INSTALL, install-sh, doc/texinfo.tex: Updated to latest
-       canonical versions.
+       maint: automate creation of release tag
+       The gnulib makefile was already set up to automate things with
+       'make release ...', but we were still doing things by hand, and
+       thereby risking missing some steps.
 
-2005-03-31  Eric Blake  <ebb9@byu.net>  (tiny change)
+       * m4/gnulib-cache.m4 (gl_MODULES): Import do-release-commit-and-tag.
+       * gnulib: Update, for latest version of the script.
+       * HACKING: Mention its use.
 
-       * doc/m4.texinfo (Patsubst): Re-add trailing space required by
-       checks/47.patsubst, with a redundant @comment to prevent emacs
-       from removing it accidentally again.
-       * checks/get-them: Allow for trailing spaces tucked behind
-       @comment marks.
+2016-12-31  Eric Blake  <eblake@redhat.com>
 
-2005-03-31  Eric Blake  <ebb9@byu.net>  (tiny change)
+       maint: generate ChangeLog from git commits
+       Follow the practice set in numerous other GNU projects, where
+       the ChangeLog (since 2015) is generated from git commit messages.
+       This avoids duplication or subtle differences between the two,
+       as well as making it easier to merge patches across branches
+       (as good as Bruno Haible's 'git-merge-changelog' helper program
+       is, it still doesn't handle cross-branch cherry-picks very well).
 
-       * doc/Makefile.in (install, uninstall): Accomodate DESTDIR.
-       * src/Makefile.in (install, uninstall): Likewise.
+       * ChangeLog: Move...
+       * ChangeLog-2014: ...to this.
+       * Makefile.am (EXTRA_DIST): Ship renamed file.
+       (gen-ChangeLog): New rule, copied mostly from coreutils.
+       (dist-hook): Generate the ChangeLog.
+       * m4/gnulib-cache.m4 (gl_MODULES): Import gitlog-to-changelog.
+       * .gitignore: Ignore ChangeLog.
+       * .gitattributes: Likewise.
+       * HACKING: Reword to match new procedure, and simplify by
+       referring to an external description of ChangeLog style.
 
-2005-02-07  Gary V. Vaughan  <gary@gnu.org>
+2016-12-31  Eric Blake  <eblake@redhat.com>
 
-       * lib/regex.c, lib/regex.h:  Reverted gnulib update, which broke
-       on Cygwin.
-       Reported by Eric Blake.
+       maint: summarize highlights of pending release
+       * NEWS: Add some blurbs.
 
-2005-02-04  Gary V. Vaughan  <gary@gnu.org>
+2016-12-31  Eric Blake  <eblake@redhat.com>
 
-       * lib/regex.c, lib/regex.h: Updated from gnulib.
-       * src/input.c (set_word_regexp):  Don't change the word_regexp
-       unless it compiles correctly.
-       * NEWS: Updated.
-       Reported by Frank Schwidom.
+       maint: make silent builds the default
+       The user still has full control over verbosity levels, both setting
+       their per-project defaults at configure time (or even in a config.site
+       file), as well as a per-run override. But these days, most projects
+       are defaulting to silent rules without user intervention.
 
-       * Makefile.in (stamp-h): Regenerate config.h properly.
+       * configure.ac (AM_SILENT_RULES): Add, to match what most projects
+       are doing these days.
 
-2005-02-03  Gary V. Vaughan  <gary@gnu.org>
+2016-12-31  Eric Blake  <eblake@redhat.com>
 
-       * configure.ac (AC_DEFINE): Fix overquoting of description
-       argument.
+       maint: release no longer creates a diff file
+       Ever since commit f1cf390 (1.4.14 release), we no longer create
+       diff files as part of the release process.  These days, it is
+       assumed that it is easier to download a fresh tarball rather
+       than to try and use a diff file to patch an older tarball.
 
-       * src/m4.h (__CYGWIN__, WIN32): Canonicalise Windows and Cygwin
-       recognition macros.
-       * src/freeze.c (produce_frozen_state): Use \n line-endings even
-       on Windows, so that the frozen file reader will work.
-       Reported by Josef T. Burger.
+2016-12-30  Eric Blake  <eblake@redhat.com>
 
-       * src/m4.c (main): Modernise the --version output.
+       doc: drop obsolete @setcontentsaftertitlepage
+       texinfo 6.1 complains (during 'make dvi'):
 
-2005-02-03  Gary V. Vaughan  <gary@gnu.org>
+       /home/eblake/m4-1.4/doc/./m4.texi:9: @setcontentsaftertitlepage has been remove
+       d as a Texinfo command; move your @contents command if you want the contents af
+       ter the title page..
 
-       Modernise the configury a little to prevent spurious errors from
-       Autoconf-2.59's autoreconf:
+       It turns out that eliminating the command has no effect - modern
+       tools correctly emit the contents in-place, right after the title
+       page, so it was leftover cruft from an older time.
 
-       * config.h.in: Renamed to...
-       * config-h.in: ...this to better support DOS 8.3 file systems.
-       * acconfig.h: Removed.
-       * configure.in: Renamed to...
-       * configure.ac: ...this, and AC_DEFINE used to declare config.h
-       entry comments.  Slight reorganisation and reformatting.
-       * aclocal.m4: Use third argument to AC_DEFINE to declare config.h
-       entry comments.
-       (AC_INIT): Use a modern 3 argument call.
-       * Makefile.in, checks/Makefile.in, doc/Makefile.in,
-       examples/Makefile.in, lib/Makefile.in, src/Makefile.in:
-       s/PRODUCT/PACKAGE/g.
-       * Makefile.in (DISTFILES): Removed acconfig.h, configure.in,
-       config.h.in.  Added configure.ac, config-h.in.
-       (stamp-h.in): Removed acconfig.h from dependencies.
-       (configure): Depends on configure.ac, not configure.in.
-       * doc/Makefile.in (stamp-vti): Ditto.
-       * src/freeze.c (produce_frozen_state), src/m4.c (main): Adjust for
-       difference between PRODUCT="m4" and PACKAGE="GNU M4".
-       * configure: Regenerated.
+       * doc/m4.texi: Satisfy newer texinfo.
 
-2005-02-03  Noah Misch  <noah@cs.caltech.edu>
+2016-12-29  Eric Blake  <eblake@redhat.com>
 
-       * src/output.c (mkstemp): Make non-static, and build regardless of
-       HAVE_TMPFILE; src/builtin.c also needs this replacement.
-       * NEWS: Update.
+       build: update to latest gnulib
+       I hit a weird failure during 'make check', and traced it to a recent
+       gnulib regression in parallel test safety.  Pick up the gnulib fix.
 
-2004-09-09  Vincent Lonngren  <Vincent.lonngren.759@student.lu.se>
+       * gnulib: Update to latest, to fix failure in getopt tests.
 
-       * configure.in (AC_CHECK_HEADERS): Commit works best when you save
-       changes from your editor buffer first.
+2016-12-29  Eric Blake  <eblake@redhat.com>
 
-       * configure.in (AC_CHECK_HEADERS):  Add signal.h, sys/signal.h.
-       * src/m4.c: And include them as appropriate.
-       * NEWS: Updated.
+       maint: regenerate bootstrap
+       Missed during the copyright update.
 
-2004-09-09  Andreas Schwab  <schwab@suse.de>
+       * bootstrap: Regenerate.
 
-       Refactoring of the string read case in next_char provides about a
-       20% speedup of M4 as typically used by autoconf:
+2016-12-29  Eric Blake  <eblake@redhat.com>
 
-       * src/input.c (next_char_1): Renamed from next_char.
-       (next_char): New macro.
-       * NEWS: Updated.
+       maint: bump copyright year
+       Sadly, there's no commit in 2015, which means we don't get to benefit
+       from using a copyright range.
 
-2004-08-21  Gary V. Vaughan  <gary@gnu.org>
+       Done with 'make update-copyright'.
 
-       * configure.in (VERSION): Bump to 1.4.2a.
+       * all files: Version control now has a commit in 2016.
 
-2004-08-19  Paul Eggert  <eggert@twinsun.com>
+2016-12-29  Eric Blake  <eblake@redhat.com>
 
-       Release 1.4.2.
-       * configure.in (VERSION): Bump to 1.4.2.
-       * News: Describe 1.4.2's changes.
-
-       * src/m4.c (reference_error): Preserve errno, since M4ERROR
-       relies on this.
-       * src/builtin.c (m4_esyscmd): Clear errno before calling popen.
-       (m4_maketemp): Clear errno before calling mkstemp.
-       * src/path.c (path_search): Don't let "free" trash errno when
-       returning NULL.
-       * src/output.c (insert_file): Don't assume errno has a valid
-       value simply because fread returns zero.  This fixes a
-       portability bug reported by Marion Hakanson in
-       <http://lists.gnu.org/archive/html/bug-m4/2004-07/msg00029.html>.
-
-2004-06-09  Gary V. Vaughan  <gary@gnu.org>
-
-       * configure.in (VERSION): Bump to 1.4.1a.
-       * NEWS: Place holder for next stable release.
-
-2004-06-03  Paul Eggert  <eggert@cs.ucla.edu>
-
-       Release 1.4.1.
-       * configure.in (VERSION): Bump to 1.4.1.
-       * NEWS: Describe 1.4.1's changes.
-
-       * aclocal.m4 (fp_PROG_CC_STDC): Use AC_DEFUN, not define, to
-       pacify Autoconf 2.59.
-
-       * doc/m4.texinfo: Insert commas after @xref's that lack them,
-       to pacify Texinfo 4.7.
-       * doc/Makefile.in (info): Remove info-1, info-2, info-3.
-
-       * src/m4.h, src/debug.c: Use #ifdef __STDC__, not #if __STDC__, to
-       pacify Sun C compilers.
-
-2003-09-28  Akim Demaille  <akim@epita.fr>
-
-       * src/symtab.c (lookup_symbol): Fix an uninitialized-variable
-       botch.
-
-2003-09-03  Santiago Vila  <sanvila@debian.org>
-
-       * examples/stackovf.sh: Use tempfile if available.
-
-2001-04-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
-
-       http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=92629
-       * src/output.c (m4_insert_file): Do not mix buffered and
-       unbuffered I/O, as this breaks on the Hurd.  (trivial change)
-
-2001-02-01  Santiago Vila  <sanvila@debian.org>
-
-       http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=84451
-       * src/m4.c (main): Fix format vulnerabilities.  (trivial change)
-
-2001-02-01  Matt Kraai  <kraai@debian.org>
-
-       http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=84416
-       * doc/m4.texinfo (Maketemp): Change maketemp to refer to a new,
-       empty file rather than to a nonexistent file.  This closes a common
-       security hole.
-       * src/builtin.c (m4_maketemp): Implement the above, by using
-       mkstemp rather than mktemp.  (trivial change)
-
-2000-01-09  Akim Demaille  <demaille@inf.enst.fr>
-
-       * src/builtin.c (expand_ranges): Added break after trailing dash.
-       This caused misbehaviors on some systems.
-
-Sat Nov  5 15:52:47 1994  Francois Pinard  (pinard@icule)
-
-       Release 1.4.
-       * doc/Makefile.in (realclean): Also remove stamp-vti.
-       Reported by Eric Backus.
-
-Wed Nov  2 00:47:53 1994  Francois Pinard  (pinard@icule)
-
-       * src/freeze.c (produce_frozen_state): If the frozen file cannot
-       be opened, return immediately after producing the error message.
-       Reported by Andreas Schwab.
-
-       * configure.in: Check for const only after having found possible
-       ANSIfying compiler flags, this is of no use to check it before.
-       Reported by Alexander Lehmann.
-
-Tue Nov  1 22:02:37 1994  Francois Pinard  (pinard@icule)
-
-       * src/macro.c (collect_arguments): Cast obstack arguments to
-       (voidstar), so avoiding compiler warnings.
-       Reported by Joseph E. Sacco.
-
-       * src/freeze.c (produce_frozen_state): Cast printed lengths to
-       (int) so they correspond to %d format items.
-       Reported by Joseph E. Sacco.
-
-       * src/m4.c (main): Cast the argument to xfree to (voidstar).
-       * src/symtab.c (free_symbol): Idem.
-       Reported by Karl Vogel.
-
-Mon Oct 31 02:11:19 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (DISTFILES): Distribute BACKLOG.
-
-       * configure.in: Define PRODUCT and VERSION.
-       * acconfig.h: Document PRODUCT and VERSION.
-       * src/m4.c, src/freeze.c: Use PRODUCT and VERSION instead of the
-       constant string m4 and variable or parameter named version.
-
-Sun Oct 30 08:13:03 1994  Francois Pinard  (pinard@icule)
-
-       * src/m4.h, src/debug.c: Replace all #ifdef __STDC__ by #if
-       __STDC__.  Alliant FX/2800 Concentrix 2.2 (i860-BSD4.3) compiler
-       defines __STDC__ to 0, for indicating it is *not* ANSI!
-       Reported by Kaveh R. Ghazi.
-
-       * configure.in: Added obsolescent tests for AIX and Minix.
-
-       * doc/Makefile.in (mostlyclean): Remove texclean in dependencies,
-       which texclean does not exist anymore.
-       Reported by Eric Backus, Jim Meyering, John David Anglin and
-       Joseph E. Sacco.
-
-Sat Oct 29 05:10:03 1994  Francois Pinard  (pinard@icule)
-
-       * aclocal.m4 (fp_C_PROTOTYPES): Force -D_HPUX_SOURCE with -Aa.
-       Reported by John David Anglin.
-
-       * src/ansi2knr.c: New version, sent by Peter Deutsch.
-       * aclocal.m4 (fp_C_PROTOTYPES): Substitute empty or ansi2knr for
-       ANSI2KNR, depending on the fact the compiler is ANSI or not.
-       * src/Makefile.in: Use -Ovarargs=convert on ansi2knr calls.
-       Remove the sed filter after ansi2knr for debug.c.  Use $O instead
-       of $U, put underline in extensions rather than in basenames.  Use
-       implicit rules, now that regularity makes this possible.
-       Have $(OBJECTS) depend on $(ANSI2KNR), so to trigger compilation
-       of ansi2knr whenever it is needed.
-       * configure.in: Adjusted for correct STACKOVF substitution.
-       * src/debug.c (trace_format): When not __STDC__, use (...) as a
-       parameter list, so ansi2knr will convert it to (va_alist) va_dcl.
-       Reported by David MacKenzie.
-
-       * Makefile.in: Remove binprefix.  Use transform_name instead.
-       Reported by David MacKenzie.
-
-       * doc/Makefile.in: Create version.texi, use it, clean it.
-       Reported by Jim Meyering.
-
-Fri Oct 28 20:33:55 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (all, install, uninstall): Depend on Makefile.
-
-       * Makefile.in: For actions invoking $(MAKE) from within compound
-       sh statements, exit non-zero if the sub-make fails.  Otherwise,
-       the top-level make may exit successfully when it should fail.
-       Reported by Jim Kingdon.
-
-       * {,/*}Makefile.in: Use && after all cd, in case they fail.
-
-       * {,*/}Makefile.in: Declare PRODUCT and VERSION macros.
-       (dist): Use PRODUCT and VERSION instead of tricks on .fname.
-       * configure.in: Substitute PRODUCT and VERSION.
-
-       * {,*/}Makefile.in (dist): Always try a hard link before a copy.
-
-Thu Oct 27 22:32:58 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (mostlyclean-local): Do not remove *~.
-       * */Makefile.in (mostlyclean): Idem.
-       Reported by Robert E. Brown and Richard Stallman.
-
-Sun Oct  9 08:30:13 1994  Francois Pinard  (pinard@icule)
-
-       * src/m4.h: Get rid of CONFIG_BROKETS.
-
-Sun Oct  2 16:48:10 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Use AC_ARG_PROGRAM.
-       * aclocal.m4 (fp_C_PROTOTYPES): Substitute @kr@ by kr or empty.
-       Reported by David MacKenzie.
-
-Sat Oct  1 11:22:42 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Do not add -O to CFLAGS for GNU C, now that
-       configure does it automatically.
-       Reported by Jim Meyering.
-
-Fri Sep 23 08:16:58 1994  Francois Pinard  (pinard@icule)
-
-       * src/stackovf.c: Declare the handler_t typedef earlier in the
-       code, use it for stackovf_handler.
-       (setup_stackovf_trap): Use RETSIGTYPE instead of void while
-       casting sigsegv_handler.
-       Reported by Robert Bernstein.
-
-       * src/m4.c (main): Initialize program_name to argv[0] without
-       basename'ing it.
-       Reported by Karl Berry.
-
-Sun Sep 18 11:42:50 1994  Francois Pinard  (pinard@icule)
-
-       * src/Makefile.in (TAGS): Include a ../lib/TAGS reference.
-       Reported by Karl Berry.
-
-Wed Sep 14 10:00:22 1994  Francois Pinard  (pinard@icule)
-
-       * lib/Makefile.in (mostlyclean): Added.
-       (TAGS): Make in $(srcdir).
-
-       * configure.in: Use `choke me' in test, like everywhere!
-
-       * {doc,examples,lib,src}/Makefile.in (check): Deleted, as
-       unreacheable and useless.
-
-       * doc/Makefile.in (texclean): Deleted, merged in mostlyclean.
-
-       * lib/Makefile.in (DISTFILES): Distribute TAGS.
-       (distclean): Do not remove TAGS.
-       (realclean): Remove it.
-       * Makefile.in: Make TAGS in lib also, not just in src.
-       Reported by Karl Berry.
-
-       * Makefile.in (distclean, realclean): Instead of recursively
-       calling $(MAKE) for the -local part, allow parallel execution of
-       -recursive and -local, only delay the removal of config.status,
-       which is repeated in both goals.
-\f
-Tue Sep 13 19:21:05 1994  Francois Pinard  (pinard@icule)
-
-       Release 1.3.
-       * Makefile.in: Group all *clean-recursive goals in one, using sed
-       to remove `-recursive' while calling make recursively.  Also, use
-       a subshell for each recursive $(MAKE).
-       Reported by Jim Meyering.
-
-       * src/m4.h (memcpy): Define with bcopy for BSD systems.
-       Reported by Kaveh R. Ghazi.
-
-       * src/Makefile.in (ansi2knr): Use $(LIBS) while linking, for SunOS
-       4.1.3 requires -ldl to link even ansik2nr, and we need a way to
-       specify it.
-
-       * configure.in: Use date instead of touch for stamp-h.
-       * Makefile.in (stamp-h.in): Idem.
-
-       * Makefile.in (distclean, realclean): Force serial execution of
-       both goals, in case parallel makes are being used.
-       Reported by Jim Meyering.
-
-       * src/Makefile.in (DISTFILES): Distribute TAGS.
-       (distclean): Do not remove TAGS.
-       (realclean): Remove it.
-       Reported by Karl Berry.
-
-Sat Sep 10 12:34:04 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Use fp_ to match aclocal.m4.  Revert _OS_ macros
-       to old names, for following Autoconf.
-
-Thu Sep  8 15:07:27 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (MDEFINES): Remove INSTALL substitutions, for
-       ./install.sh will not be correctly referred to in sub-Makefiles.
-       Reported by John David Anglin.
-
-       * doc/Makefile.in (texclean): Remove *.cps and *.fns too.
-       Reported by Eric Backus.
-
-       * Makefile.in, checks/Makefile.in, doc/Makefile.in,
-       examples/Makefile.in, lib/Makefile.in, src/Makefile.in: Limit
-       config.status into remaking this directory's Makefile only.
-       * Makefile.in (stamp-h): Do not check nor touch stamp-h.
-       * configure.in (AC_OUTPUT): Touch stamp-h if CONFIG_HEADERS.
-       Reported by Jim Meyering.
-
-Tue Sep  6 12:07:33 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Correct stack overflow detection logic, taking
-       care of systems having only incomplete implementations (like for
-       Pyramid 9820 OSx 5.0d).
-       Reported by Kaveh R. Ghazi.
-
-       * src/Makefile.in (TAGS): Remote -t from etags call.
-
-Fri Sep  2 10:37:10 1994  Francois Pinard  (pinard@icule)
-
-       * lib/Makefile.in (install): Depend on all.
-
-Wed Aug 31 11:17:21 1994  Francois Pinard  (pinard@icule)
-
-       * examples/Makefile.in (mostlyclean): Do not depend on texclean.
-       Reported by Jim Meyering and John David Anglin.
-
-       * Makefile.in (distclean-local): Delete config.log.
-       Reported by Jim Meyering.
-
-       Solidify frozen files with respect to -P:
-       * src/m4.c: Have -P set prefix_all_buitins variable instead of
-       calling a function by that name.  Declare the variable.
-       * src/m4.h: Adjust declaration for prefix_all_buitins.
-       * src/builtin.c (builtin_init): Merge in functionality from
-       previous prefix_all_buitins function, while making entries in the
-       symbol table, but not modifying the builtin description itself.
-
-       * src/freeze.c (reload_frozen_state): Add a useless `break;',
-       because *many* compilers do not accept an empty `default:'.
-       Reported by Akiko Matsushita, Eric Backus, John David Anglin,
-       Joseph E. Sacco, Kaveh R. Ghazi, Tom McConnell and Ulrich Drepper.
-
-       * configure.in: Use AC_TYPE_SIGNAL.
-       * src/stackovf.c (setup_stackovf_trap): Use RETSIGTYPE.
-       Reported by Robert Bernstein.
-
-       * checks/Makefile.in (check): Modify PATH so check-them will find
-       m4 in the src directory.
-       * Makefile.in (check): Don't.
-       Reported by Akiko Matsushita and Jim Meyering.
-
-       * src/output.c (make_room_for, output_character_helper): New
-       functions, for implementing a global MAXIMUM_TOTAL_SIZE instead of
-       a per buffer MAXIMUM_BUFFER_SIZE.
-
-       * src/output.c (output_text): New function, for optimizing the
-       output of strings of characters.  Use it.
-
-Tue Aug 30 01:44:29 1994  Francois Pinard  (pinard@icule)
-
-       * doc, src: New directories reorganizing the distribution.
-       * doc/Makefile.in, src/Makefile.in, examples/Makefile.in: New
-       files.
-       * Makefile.in: Adjusted.
-       * configure.in: Configure new Makefiles.
-
-       * m4.h: Declare STRING typedef.  Use it for comment and quote
-       strings, adjusting all references.  (This is the rudiments of a
-       beginning for the eventual withdrawal of NUL terminated strings.)
-       * output.c (shipout_text): Accept a length parameter, and use it.
-       All callers adjusted.
-
-Mon Aug 29 12:27:19 1994  Francois Pinard  (pinard@icule)
-
-       * m4.h: Include <unistd.h> if it exists.
-       * stackovf.c: Don't.
-
-       Clean up for current_diversion variable:
-       * output.c: Move current_diversion from builtin.c.
-       * m4.h: Declare current_diversion so builtin.c can access it.
-       * output.c (output_init, make_diversion): Initialize or update
-       current_diversion.
-       * builtin.c (builtin_init, m4_divert): Leave current_diversion
-       alone.
-
-       Remove limit on number of diversions:
-       * output.c: Replace ndiversion by diversions, declare it.
-       (output_init): Allocate only diversion 0.
-       (make_diversion): Allocate new diversions as needed.
-       * m4.h, m4.c: Remove NDIVERSIONS and ndiversion related stuff.
-       * m4.c: Still accept -N, but do nothing with it.
-       Reported by David MacKenzie.
-
-       Freeze diversions:
-       * output.c (freeze_diversions): New function.
-       * m4.h: Declare freeze_diversions.
-       * freeze.c: Document frozen file format, revise it, call
-       freeze_diversions to add diversions to frozen format, and code to
-       reload them properly.
-       * m4.c: Do not undivert automatically at end when status being
-       frozen.  Do not call builtin_init when reloading frozen state.
-
-       Speed up diversion processing:
-       * output.c: Add INITIAL_BUFFER_SIZE, MAXIMUM_BUFFER_SIZE,
-       COPY_BUFFER_SIZE, in-memory diversion buffers, struct diversion
-       structure and variables, cached variables out of output_diversion,
-       reallocate_diversion_for and OUTPUT_CHARACTER.
-       (shipout_text, make_diversion, insert_diversion): Adapted to new
-       structures.
-       (insert_file): Use better buffering.
-       Reported by David MacKenzie.
-
-Sun Aug 28 05:20:02 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in, lib/Makefile.in, checks/Makefile.in: Arrange so
-       dist works from another build directory.
-
-Sat Aug 27 14:32:45 1994  Francois Pinard  (pinard@icule)
-
-       * symtab.c (hack_all_symbols): Use hash_table_size instead of
-       constant HASHMAX, for -H option to work better.
-
-       * builtin.c (DECLARE): Simplify by using _ ().
-
-       * freeze.c: New file.
-       * Makefile.in: Compile it, distribute it.
-       * m4.c: Recognize, document and process --freeze-state (-F) and
-       --reload-state (-R) options.  Pass a true flag to builtin_init
-       only if no reloading some state.
-       * builtin.c (define_builtin): Remove static specifier.
-       (find_builtin_by_name): Remove static specifier.
-       (builtin_init): Accept and obey a flag argument.
-       * m4.h: Add declarations for freeze.c, changes for builtin.c.
-
-Wed Aug 24 16:14:19 1994  Francois Pinard  (pinard@icule)
-
-       * builtin.c (dumpdef_cmp): Rewrite so the cast protect the const
-       specifier.
-
-       * configure.in: Implement --with-dmalloc.
-       * acconfig.h: Document WITH_DMALLOC.
-       * m4.h: Add code for when WITH_DMALLOC.
-
-Mon Aug 15 12:38:05 1994  Francois Pinard  (pinard@icule)
-
-       * m4.c (long_options): Use "error-output", the dash was missing.
-       Reported by Akiko Matsushita.
-
-Fri Aug 12 16:38:01 1994  Francois Pinard  (pinard@icule)
-
-       * m4.h: Include <sys/types.h>.
-       * builtin.c, debug.c, m4.c, output.c, stackovf.c: Don't.
-       * m4.h: Declare len_lquote and len_rquote as size_t, not int.
-       int.
-       * input.c: Declare len_lquote, len_rquote, len_bcomm and len_ecomm
-       as size_t, not int.
-       * builtin.c (dump_args): Declare len as size_t, not int.
-
-       * debug.c: Prototype the forward declaration of debug_set_file.
-
-       * builtin.c (m4_undivert):  Replace div by file, for avoiding the
-       shadowing of this variable.
-       * output.c (insert_diversion): Idem.
-
-       * input.c: Delete def_rquote, def_lquote, def_bcomm and def_ecomm.
-       (input_init): Duplicate default quote and comment strings.
-       (set_quotes): Free previous quote strings in all cases.  Duplicate
-       even default quote strings.
-       (set_comment): Free previous comment strings in all cases.
-       Duplicate even default comment strings.
-
-       * configure.in: Updated for Autoconf 2.0.
-       * Makefile.in (distclean-local): Also delete config.cache.
-
-       * m4.c (usage): Reorganize the --help output by topic.  Include a
-       description for debugging flags.
-
-Fri Jul 29 10:15:52 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: If sigaction is available and SA_ONSTACK defined,
-       use sigaction.  Otherwise, if sigvec is available and SV_ONSTACK
-       defined, use sigvec.  Else don't compile stackovf.c.
-       * stackovf.c (setup_stackovf_trap): Idem.
-       Reported by Jim Avera, Karl Berry, Kaveh R. Ghazi, Matthias Rabe
-       and Simon Leinen.
-
-Thu Jul 21 22:43:17 1994  Francois Pinard  (pinard@icule)
-
-       * m4.c (usage): Replace printf par fputs.
-\f
-Mon Jul 18 23:48:23 1994  Francois Pinard  (pinard@icule)
-
-       * Release 1.2
-
-Sun Jul 17 08:08:25 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Check for sigaction and sigvec.  Add a new delayed
-       check for RLIMIT_STACK, combine in the checking for getrlimit.
-       All those things are not universally available.
-       * stackovf.c: Split setting up the trap handler and catching
-       signals, for better taking care of various configure outcomes.
-       * examples/stackovf.sh: Correct a typo.
-       Reported by Eric Backus, Jim Avera and Jim Meyering.
-
-Sat Jul 16 20:36:19 1994  Francois Pinard  (pinard@icule)
-
-       * ansi2knr.c: New version sent by its author, Peter Deutsch.
-
-Fri Jul 15 14:36:21 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in: Modify so parallel make will not try making
-       lib/libm4.a twice simultaneously.
-       Reported by Jim Meyering.
-
-Thu Jul 14 17:23:17 1994  Francois Pinard  (pinard@icule)
-
-       * stackovf.c (setup_stackovf_trap): Replace "Don't" by "Do not" in
-       error message, for when no code possibility exists.  Even if this
-       line is completely #ifdef'ed out, it brings a syntax error.
-       Reported by Andreas Schwab, Jim Meyering and Joseph E. Sacco.
-
-       * Makefile.in (install): Have install depend on all too, for lib
-       to be remade as needed.
-
-       * examples/stackovf.sh: Try ksh, bsh and bash for shells
-       providing ulimit, instead of using only ksh.
-       Reported by Jim Avera and Joseph E. Sacco.
-
-Tue Jul 12 06:54:31 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (check): Have it depend on all instead of m4.  In
-       this way, a change in lib will be detected and processed.
-
-       * builtin.c (numeric_arg): Use strtol and verify the conversion,
-       instead of using sscanf which stops as soon as there is a
-       non-digit in the input.  Previously, incr(1xyzzy), eval(1,2xyzzy)
-       and divert(1xyzzy) were all accepted without any warning or error
-       messages.
-       * m4.h: Declare strtol as long if not including stdlib.h.
-       * configure.in: Check for limits.h, and replace strtol if missing.
-       * lib/Makefile.in: Substitute LIBOBJS.  Distribute strtol.c.
-       * lib/strtol.c: New file, from elsewhere.
-       Reported by Andreas Schwab.
-
-Thu Jul  7 22:38:10 1994  Francois Pinard  (pinard@icule)
-
-       * macro.c (expand_macro): Cast value to (boolean) prior to
-       assigning it to traced.
-       Reported by Tom McConnell.
-
-       * Makefile.in (m4): Always make all in lib first.
-       Reported by Jim Meyering.
-
-Wed Jul  6 13:16:31 1994  Jim Avera (jima@netcom.com)
-
-       * stackovf.c: Isolated OS-dependent sections; Improved portability,
-       adding support for SunOS/BSD (sigvec, sigstack, and 4-parameter signal
-       handlers), and a default error message if the fault address is not
-       available (when neither siginfo.h nor BSD sigcontext are supported).
-       * configure.in: Changes for stackovf.h: Check for sigcontext,
-       sigaction, sigstack, and define rlim_t as int if necessary.
-       * acconfig.h: Added HAVE_SIGCONTEXT and rlim_t.
-       * examples/stackovf.sh: Run m4 -L99999999 to allow stack overflow.
-       * ansi2knr.c: Fix for func-ptr args; convert "..." to varargs syntax.
-
-Tue Jul  5 19:13:54 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Use AC_SET_MAKE.
-       * Makefile.in: Use @SET_MAKE@.
-       Reported by Jim Meyering.
-
-       * checks/check-them: Do not trap on SIGQUIT or SIGALRM.
-       Reported by Ian Taylor.
-
-Sat Jul  2 00:58:47 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Remove dependency of USE_STACKOVF on STDC_HEADERS,
-       because siginfo.h is unrelated to standard headers, and siginfo.h
-       is already checked for.
-       Reported by Joseph E. Sacco.
-
-       * acconfig.h, aclocal.m4, m4.h: Replace HAVE_PROTOTYPES by
-       PROTOTYPES.
-       * aclocal.m4, configure.in: Replace AC_HAVE_PROTOTYPES by
-       AC_PROTOTYPES.
-
-Wed Jun 29 22:41:53 1994  Francois Pinard  (pinard@icule)
-
-       * builtin.c (substitute): Use \& to represent this part of the
-       string which was matched by the whole regexp, instead of
-       representing the whole string.  Any usage of \0 issues a warning
-       and acts like \&, it will disappear in some subsequent release.
-
-Mon Jun 27 14:24:23 1994  Francois Pinard  (pinard@icule)
-
-       * m4.c: Complete prototype for forwarded declaration of usage.
-
-       * input.c (init_macro_token): Correct own reference in error
-       message.  Previous name get_macro_func was referred to instead.
-       (next_char):  Correct own reference in error message.  Previous
-       name advance_input was referred to instead.
-
-       * m4.h: Declare eval_t and unsigned_eval_t typedefs to 32 bits.
-       * eval.c (logical_or_term, logical_and_term, or_term, xor_term,
-       and_term, not_term, logical_not_term, cmp_term, shift_term,
-       add_term, mult_term, exp_term, unary_term, simple_term): Add
-       prototype to forwarded declarations.  Declare parameter v1 as
-       eval_t * instead of int *.  Same for local variable v2 in dyadic
-       functions.  Same for result in exp_term.
-       * builtin.c (m4_eval): Declare value as eval_t instead of int.
-       (ntoa): Declare value as eval_t instead of int.  Declare uvalue as
-       unsigned_eval_t instead of unsigned int.  Change casts accordingly.
-       (shipout_int): Cast first argument of ntoa to eval_t.
-       Reported by Thorsten Ohl.
-
-       * macro.c: Complete the prototypes of forwarded expand_macro and
-       expand_token.
-       Reported by Thorsten Ohl.
-
-       * m4.h: Define voidstar as void * or char * depending on __STDC__.
-       The Ultrix 3.1 compiler cannot do much with void pointers.
-
-       * builtin.c (dumpdef_cmp): Replace void * by voidstar.
-       * m4.c (xfree):  Replace void * by voidstar.
-       Reported by Tom McConnell.
-
-       * ansi2knr.1: New, from elsewhere.
-       * Makefile.in (DISTFILES): Distribute ansi2knr.1
-
-       * Makefile.in (stamp-h.in): Avoid running ./config.status if
-       stamp-h does not exist yet.  This avoids running it a second time
-       just after the initial ./configure.
-       Reported by David MacKenzie and Tom McConnell.
-
-       * m4.h: Replace the enum debug_info declaration with a series of
-       #define's.  The Ultrix 3.1 compiler would otherwise need casting
-       (int) to most references, when used in expressions.
-       Reported by Tom McConnell.
-
-Sat Jun 25 00:10:05 1994  Francois Pinard  (pinard@icule)
-
-       * aclocal.m4: Replace FP_PROTOTYPES by AC_HAVE_PROTOTYPES,
-       following an idea from Brook G. Milligan.  AC_HAVE_PROTOTYPES
-       calls the compiler.  Previously, FP_PROTOTYPES was only calling
-       the preprocessor; by not being subject to CFLAGS, this was
-       discouraging those flags asking for ANSI compilation.
-       * acconfig.h: Document HAVE_PROTOTYPES.
-       * configure.in: Use AC_HAVE_PROTOTYPES instead of FP_PROTOTYPES.
-       * m4.h: Define _() according to HAVE_PROTOTYPES, not __STDC__.
-       Reported by Eric Backus.
-
-       * configure.in: Substitute CFLAGS and LDFLAGS, taking their value
-       from the environment.  Default CFLAGS to -g if not set.
-       * Makefile.in: Have CFLAGS and LDFLAGS substituted from configure.
-       * lib/Makefile.in: Have CFLAGS substituted from configure.
-       Reported by Eric Backus and Tom McConnell.
-
-       * configure.in: m4_undefine changeword before using AC_ENABLE.
-
-       * m4.h: Declare prototypes for error (for ANSI compilers only),
-       prefix_all_builtins and reference_error.
-       Reported by Tom McConnell.
-
-       * input.c (set_word_regexp): Do not try to initialize the array
-       test from a string, this does not work with non-ANSI compilers.
-       Reported by Eric Backus.
-
-       * Makefile.in (dist): Clean examples/ before saving it.
-       (distclean-local): Also remove stamp-h.
-       Reported by Eric Backus.
-
-       * Makefile.in (_stackovf.c): Goal for compiling stacokovf.c with
-       non ANSI compilers.
-       Reported by Tom McConnell.
-
-       * checks/Makefile.in (clean): Depends on mostlyclean.
-       (mostlyclean): New goal.
-
-Fri Jun 24 23:30:31 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (DISTFILES): Distribute install.sh.
-       * install.sh: New file, copied from elsewhere.
-       Reported by Assar Westerlund and Kaveh R. Ghazi.
-
-Thu Jun 23 00:00:30 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Define ENABLE_CHANGEWORD if --enable-changeword.
-       * acconfig.h: Explain ENABLE_CHANGEWORD.
-
-       [These modifs all depend upon ENABLE_CHANGEWORD and are adapted
-       from code provided by Pete Chown]
-       * m4.h: Add original_text field to u_t variant of union u.
-       Declare TOKEN_DATA_FUNC macro.
-       * builtin.c: Declare changeword.
-       (m4_changeword): New function.
-       * input.c: Include "regex.h", define variables with word regexps.
-       (input_init): Initialize the word regexp.
-       (set_word_regexp): New.
-       (next_token): Declare local variables, use the previous code if
-       default_word_regexp is true.  Else, match using a new code.  Save
-       the original text.
-       * macro.c (expand_token): Ship out original text if not a macro
-       name.
-       Reported by Krste Asanovic and Pete Chown.
-
-       [These modifs all depend upon ENABLE_CHANGEWORD]
-       * m4.h: Declare external user_word_regexp.
-       * m4.c: Declare user_word_regexp, and initialize it from
-       --word-regexp or -W, or NULL if not specified.
-       * input.c: Use user_word_regexp if specified, instead of
-       DEFAULT_WORD_REGEXP.
-
-       * Makefile.in (m4): Revert Jan 3 1994 change.  I'm unable to
-       agree with it.
-
-       * Makefile.in, lib/Makefile.in: Limit suffixes to .c and .o.
-       * checks/Makefile.in: Empty the suffix list.
-       Reported by Geoff Russell, Joel Sherrill and Roland McGrath.
-
-       * m4.c: Declare nesting_limit and initialize it to 250.
-       Implement -LNUMBER or --nesting-limit=NUMBER to change its
-       value.
-       * m4.h: Declare nesting_limit as external.
-       * macro.c (expand_macro): Stop execution whenever nesting limit
-       is exceeded.
-       Reported by Bengt Mertensson.
-
-       * eval.c (evaluate): Diagnose excess characters in eval input.
-       Things like `eval(08)' used to return 0 with no diagnostic.
-
-       * m4.h: Capitalize first letter of all macro arguments in
-       definitions.
-
-       * m4.c: Declare warning_status, initialize it to 0.  Add new
-       option -E, or --fatal-warnings, which sets warning_status to
-       EXIT_FAILURE instead.
-       * m4.h: Declare external warning_status.  Define EXIT_SUCCESS and
-       EXIT_FAILURE if not otherwise done by header files.
-       * m4.c: Delete declarations for EXIT_SUCCESS and EXIT_FAILURE.
-       * m4.c, input.c, output.c, symtab.c, builtin.c, macro.c, debug.c,
-       eval.c: Replace 0 by warning_status and 1 by EXIT_FAILURE in first
-       argument of all M4ERROR calls.
-       Reported by Noah Friedman.
-
-       * examples/incl-test.m4: Renamed from incl_test.m4.
-       * examples/include.m4: Include incl-test.m4 instead of
-       incl_test.m4.
-       * examples/multiquotes.m4: Renamed from multi-quotes.m.
-
-Wed Jun 22 21:58:54 1994  Francois Pinard  (pinard@icule)
-
-       * configure.in: Avoid USE_STACKOVF if <siginfo.h> not found.  Note
-       that Jim developped stackovf.c on a 486 running SVR4.0 (ESIX), and
-       also tested it on a Sun Sparc workstation running SunOS 4.x.
-
-       * format.c (format): When not HAVE_EFGCVT, m4 was failing the
-       49.format check, abusing a `union values' argument with sprintf
-       without selecting the proper field.  Now, save the formatting type
-       first, delaying the fetch of the corresponding argument.
-       Reported by Joseph E. Sacco and Tom Quinn.
-
-       * format.c (format): Remove const from char *fmt declaration when
-       not HAVE_EFGCVT, because a NUL may be forced into it.
-
-       * m4.h: Declare atof() when not STDC_HEADERS.
-       Reported by Joseph E. Sacco.
-
-       * Regenerate configure using Autoconf 1.11, this corrects a
-       problem about an incorrect cpp seting on NeXT 3.1.
-       Reported by Alexander Lehmann.
-
-Sun Jun  5 16:25:19 1994  Francois Pinard  (pinard@icule)
-
-       * m4.h (_): Change argument from `x' to `Args'.
-
-Wed May  4 23:59:39 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in: Remove all occurrences of $(MFLAGS), which were
-       bringing more evil than good on a few systems.
-       Reported by Greg A. Woods.
-
-Fri Apr 22 15:59:35 1994  Francois Pinard  (pinard@icule)
-
-       * m4.h: Rename Args() to _().
-       * m4.h: Remove extern specifier from all function declarations.
-
-Fri Apr 22 15:51:21 1994  Jim Avera (jima@netcom.com)
-
-       * stackovf.c: New file implementing stack-overflow detection.
-       * configure.in: Check for getrlimit, sigaction.  If all of
-       standard headers, getrlimit and sigaction, define USE_STACKOVF and
-       substitute ${U}stackovf.o for STACKOVF.
-       * acconfig.h: Declare USE_STACKOVF.
-       * Makefile.in: Distribute stackovf.c, link with $(STACKOVF).
-       * m4.h: Declare setup_stackovf_trap().
-       * m4.c: Call setup_stackovf_trap().
-       * tests/stackovf_test.sh: New file.
-
-Wed Apr 13 14:10:30 1994  Francois Pinard  (pinard@icule)
-
-       * checks/Makefile.in: Rename .all-stamp to stamp-checks.
-
-       * Makefile.in (Makefile, etc.): Adapt for Autoconf 1.8.
-
-Sun Jan 30 14:24:19 1994    (pinard at icule)
-
-       * m4.h: Remove definition of volatile, not used anymore.
-       Reported by Jim Meyering and Joseph E. Sacco.
-
-       * m4.h: Consistently use `do { ... } while (0)' in macros, instead
-       of `if ... else /* nothing */' for if macros.
-       Reported by Jim Meyering.
-
-       * builtin.c (m4_regexp): Reorganize the code for avoiding a
-       warning from gcc about `repl' possibly used before defined.
-       Reported by Jim Meyering.
-
-       * m4.h: Avoid a pre-ANSI <memory.h> together with <string.h>.
-       Reported by Jim Meyering.
-
-Tue Jan 25 18:39:37 1994  Francois Pinard  (pinard at icule)
-
-       * m4.h: Move the conditional definition of volatile after the
-       inclusion of system files, because they may define it first.
-
-Tue Jan  4 19:46:50 1994  Francois Pinard  (pinard@icule)
-
-       * checks/Makefile.in (CHECKS): Add a useless `*' before `[', to
-       get around a problem with Alpha make seeing a syntax error, there.
-       Reported by Vern Paxson.
-
-Mon Jan  3 00:21:45 1994  Francois Pinard  (pinard@icule)
-
-       * Makefile.in: Do not define LDFLAGS, use CFLAGS on link calls.
-       Reported by Richard Stallman.
-
-Sat Dec 25 08:06:05 1993  Francois Pinard  (pinard@icule)
-
-       * configure.in: Correct test for strerror, AC_FUNC_CHECK was used
-       instead of AC_HAVE_FUNCS.
-       Reported by Noah Friedman.
-
-Wed Dec  1 09:37:53 1993  Francois Pinard  (pinard@icule)
-
-       * m4.c: Initialize show_help and show_version to zero.
-
-       * m4.c: Ensure EXIT_SUCCESS and EXIT_FAILURE are defined.
-       Use them in exit() and usage() calls.
-
-Sat Nov 27 10:43:24 1993  Francois Pinard  (pinard@icule)
-
-       * m4.h: Delete extern sys_nerr, sys_errlist declarations, and
-       syserr() macro.  Delete errref, add reference_error and M4ERROR.
-       * m4.c: Replace errref, which was returning an input reference
-       string, with reference_error, which prints it on standard error.
-       * builtin.c, output.c: Use errno as second parameter to error,
-       instead of using syserr() with %s.
-       * *.c: Use M4ERROR instead of error: no more errref() with %s.
-       Doing so, the program name appears after the input reference
-       instead of before, which eases M-x next-error processing.
-
-Wed Nov 24 22:16:15 1993  Francois Pinard  (pinard@icule)
-
-       * checks/get-them: Escape braces with backslashes in patterns,
-       because HPUX-9.01 awk needs this.
-       Reported by Jim Meyering.
-
-Mon Nov 22 10:55:52 1993  Francois Pinard  (pinard@icule)
-
-       * builtin.c: Declare "FILE *popen ();".
-
-       * m4.h: Remove MESSAGE{,1,2}, WARNING1, FATAL{,1}, INTERNAL_ERROR
-       macros, replace error_message_prefix() declaration by errref()'s.
-       Declare xrealloc, for use in errref().
-       * m4.c: Delete error_message_prefix() function, add errref().
-       * *.c: Use error() systematically in place of all error macros,
-       now that error() flushes stdout first.  Make needed adjustments.
-
-       * m4.h: Remove const in sys_errlist[] declaration, it creates
-       conflicts on SGI and Alpha.
-       Reported by Kaveh R. Ghazi.
-
-Sat Nov 20 08:26:15 1993  Francois Pinard  (pinard@icule)
-
-       * m4.c: Include <getopt.h> instead of "getopt.h".
-
-       * configure.in: Output to config.h.  Use HAVE_FUNCS preferably.
-       * acconfig.h: New, for documenting HAVE_EFGCVT.
-       * Makefile.in: Distribute acconfig.h, .stamp-h.in and config.h.in,
-       use them wherever appropriate.  Also use -I. for compilations.
-       * lib/Makefile.in: Use -I.. for compilations.
-       * *.c: Include <config.h> or "config.h".
-
-       * m4.h: Test for HAVE_MEMORY_H instead of NEED_MEMORY_H.
-       * configure.in: Use AC_HAVE_HEADERS(memory.h), delete AC_MEMORY_H.
-
-Wed Nov 17 09:34:55 1993  Francois Pinard  (pinard@icule)
-
-       * builtin.c (m4_eval): Cast strlen to (int) before comparing.
-
-       * input.c (input_init): Initialize quote and comment strings
-       explicitely instead of calling set_quotes and set_comment: by
-       doing so, we ensure we do not free uninitialized variables.
-
-       * checks/check-them: Reverse arguments to both diff, so the
-       expected is on the left and the obtained on the right.
-
-       * m4.h: Add MESSAGE{,1,2}, WARNING1, FATAL{,1} and INTERNAL_ERROR
-       macros. Delete declarations for m4error, warning, fatal and
-       internal_error, add declaration for error_message_prefix.
-       * m4.c:  Delete m4error, warning, fatal and internal_error
-       routines, add error_message_prefix routine.
-       * *.c: Replace m4error routine calls with MESSAGE* macro calls,
-       warning with WARNING*, fatal with FATAL* and internal_error with
-       INTERNAL_ERROR*.
-       * Makefile.in (_m4.c): Do not adjust ansi2knr output for va_alist,
-       this is not needed anymore.
-
-       * m4.h: Declare extern FILE *debug.  Add DEBUG_PRINT{1,3} and
-       DEBUG_MESSAGE{,1,2} macros.  Delete declarations for debug_print
-       and debug_message, add declaration for debug_message_prefix.
-       * debug.c: Remove static specifier for FILE *debug declaration.
-       Delete debug_print and debug_message routines, add
-       debug_message_prefix routine.
-       * builtin.c, debug.c: Replace debug_print routine calls with
-       DEBUG_PRINT* macro calls.
-       * input.c, path.c: Replace debug_message routine calls with
-       DEBUG_MESSAGE* macro calls.
-
-       * m4.h: Remove inclusion of <varargs.h>.
-       * debug.c: Include <stdarg.h> or <varargs.h>.
-       (trace_format): Use stdarg instead of varargs if __STDC__.
-
-       * configure.in: Remove checks for vfprintf and _doprnt.  These
-       implementations use varargs tricks which are not portable enough.
-       * lib/vfprintf.c: Deleted.
-       * lib/_doprnt.c: Deleted.
-       * lib/Makefile.in: Adjusted accordingly.  Remove LIBOBJS.
-       Reported by Joel Sherrill.
-
-       * path.c (add_include_directory): Use xstrdup.
-
-       * builtin.c (find_builtin_by_name): Declare static.
-
-       * *.[ch]: Add const to a few "char *" declarations.
-
-       * configure.in: Remove commented tests for fileno() and fstat().
-       * debug.c: Remove comments about HAVE_FILENO and HAVE_FSTAT.
-
-       * debug.c (debug_flush_files): New.
-       * m4.h: Declares it.
-       * builtin.c (m4_syscmd, m4_esyscmd): Use it.
-       Reported by Nicolas Pioch.
-
-Fri Nov 12 10:02:26 1993  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (m4.dvi): Use m4.texinfo instead of m4.texi.
-       Reported by Joel Sherrill.
-
-       * builtin.c (prefix_all_builtins): Instead of the table size, use
-       the null entry at end for stopping the loop.  It was overwritten.
-       Reported by Andreas Schwab and Jim Meyering.
-
-       * builtin.c (prefix_all_builtins): Cast xmalloc to (char *).
-       Reported by Kaveh R. Ghazi.
-
-       * macro.c (call_macro): Add * in (*SYMBOL_FUNC (sym)) (...).
-       Reported by Karl Vogel.
-
-Tue Nov  9 09:31:47 1993  Francois Pinard  (pinard@icule)
-
-       * m4.h: Do not define volatile if already defined.
-       Reported by Rene' Seindal.
-
-       * lib/Makefile.in: Add a forgotten ALLOCA=@ALLOCA@.  Grrr!
-
-       Reported by Bernhard Daeubler, Eric Backus, Hal Peterson, Hoang
-       Uong, Ian Taylor, Kaveh R. Ghazi, Tom McConnell and Walter Wong.
-
-Mon Nov  8 21:11:44 1993  Francois Pinard  (pinard@icule)
-
-       * m4.h: Define strchr and strrchr in terms of index and rindex,
-       instead of the other way around.
-       * builtin.c, m4.c, path.c: Use strchr instead of index.
-
-       * input.c (next_char): Remove a "break;" after a "return ...;".
-       Reported by Tom McConnell.
-\f
-Mon Nov  8 12:45:34 1993  Francois Pinard  (pinard@icule)
-
-       * Release 1.1
-
-       * configure.in: Do not copy check files in the build hierarchy.
-       * checks/check-them: Identify the m4 version being checked.  For
-       finding m4, look in $PATH instead of in the parent directory.
-       * Makefile.in (check): Prepend `pwd` to $PATH before checking.
-       * checks/Makefile.in (.all-stamp): Always create check files in
-       the source hierarchy, not anymore in the build hierarchy.
-       (check): cd to the source hierarchy before performing checks.
-       Do not copy nor clean COPYING anymore, take it from `..'.
-       Reported by Tom McConnell.
-
-       * Makefile.in (Makefile): Use $(SHELL).
-       (config.status): Use $(SHELL).  Use "config.status --recheck"
-       instead of "configure --no-create", which is obsolete.
-       Reported by Tom McConnell.
-
-Fri Nov  5 09:49:30 1993  Francois Pinard  (pinard@compy.IRO.UMontreal.CA)
-
-       * m4.c (usage): Use "%s" instead of "m4" in format string.
-       Reported by Jim Meyering.
-
-       * Makefile.in: Distribute mkinstalldirs.
-       Reported by Pierre Gaumond.
-       Reported by Jim Meyering.
-       Reported by Tom McConnell.
-       Reported by Andreas Gustafsson.
-
-       * checks/check-them: Renamed from checks/check_them.
-       * checks/get-them: Renamed from checks/get_them.
-       * checks/.all-stamp: Renamed from checks/.all_stamp.
-       * checks/Makefile.in: Changed accordingly.
-       Reported by Jim Meyering.
-
-Thu Nov  4 13:50:52 1993  Francois Pinard  (pinard@lagrande.IRO.UMontreal.CA)
-
-       * lib/Makefile.in (dist): Correct permissions on files.
-
-       * output.c: Declare tmpfile, some systems don't.
-
-Wed Nov  3 09:09:16 1993  Francois Pinard  (pinard@icule)
-
-       * checks/Makefile.in (dist): Correct permissions on files.
-
-       * Makefile.in (dist): Ensure recursive linking for subdirectory
-       `examples', also set read/write permissions on all its files.
-
-       * mkinstalldirs: New, from elsewhere.
-       * Makefile.in: Use it.
-
-       * debug.c: Synchronize debug messages and regular output when
-       the debug file and stdout are redirected to the same file.
-       * configure.in: Add (commented) checks for fileno and fstat.
-       Reported by Jim Avera.
-
-       * builtin.c (m4_ifelse): Diagnose excess arguments if 5, 8, 11,
-       etc., arguments, then ignore the superfluous one.  m4 used to
-       diagnose missing arguments and return the empty string.
-       Reported by Nick S. Kanakakorn.
-
-Tue Nov  2 00:55:41 1993  Francois Pinard  (pinard@icule)
-
-       * m4.c (main): At end of all input, ensure all undiverted text
-       goes to the main output stream.
-       Reported by Andreas Gustafsson.
-
-       * m4.c (main): exit (0), instead of return 0.
-
-       * m4.c: Implement -P and --prefix-builtins.
-       * builtin.c: Delete const specifier on builtin_tab.
-       (prefix_all_builtins): New.
-       Reported by Noah Friedman.
-       Reported by Scott Bartram.
-
-       * c-boxes.el: New, from elsewhere.
-       * Makefile.in: Distribute it.
-
-       * m4.h: Do not define bcopy if <string.h> defines it.
-       Reported by Stephen Perkins.
-
-       * builtin.c (define_macro): Allow a missing second argument, in
-       which case it is implied empty.  Affects define and pushdef.
-       Reported by Eric Allman.
-
-Mon Nov  1 07:45:24 1993  Francois Pinard  (pinard@icule)
-
-       * m4.h: Add blind_if_no_args in struct builtin, blind_no_args in
-       struct symbol adn SYMBOL_BLIND_NO_ARGS macro.
-       * builtin.c: Initialize all the blindness fields in builtin_tab.
-       (define_builtin): Copy the blindness of a builtin into its symbol.
-       * macro.c (expand_token): Avoid processing a blind builtin if the
-       next character is not an opening parenthesis.
-       Reported by David MacKenzie.
-       Reported by Noah Friedman.
-
-       * configure.in: Ensure an exit status of 0 on completion.
-       Reported by Vivek P. Singhal.
-
-       * eval.c (eval_lex): Admit both lower and upper case letters for
-       bases greater than 10.  Only lower case letters were accepted.
-
-       * eval.c (eval_lex): Recognize 0bDIGITS and 0rRADIX:DIGITS syntax.
-       Reported by Krste Asanovic.
-
-       * eval.c:  Rename NOT to LNOT.  Add XOR, NOT, LSHIFT and RSHIFT.
-       * eval.c (logical_not_term): New name for not_term.
-       * eval.c (xor_term): New, between or_term and and_term.
-       * eval.c (not_term): New, between and_term and logical_not_term.
-       * eval.c (shift_term): New, between cmp_term and add_term.
-       Reported by Krste Asanovic: ~, ^, <<, >>.
-       Reported by Ben A. Mesander: ** vs ^.
-
-       * m4.c: Delete xmalloc.c, xrealloc.c, xstrdup.c.
-       * m4.h: Delete xrealloc.c.
-       * lib/xmalloc.c: New, from elsewhere.
-       * lib/xstrdup.c: New, from elsewhere.
-       * lib/Makefile.in: Distribute and compile them.
-
-       * m4.c: Change progname to program_name.
-       * builtin.c, eval.c, m4.c, m4.h: Rename error to m4error.
-       * lib/error.c: New, from elsewhere.
-       * lib/Makefile.in: Distribute and compile error.c.
-       * configure.in: Check AC_VPRINTF and for strerror.
-       * m4.c: Delete cmd_error.  Use error instead.
-       * m4.c: Change label capitalisation to "ERROR", "Warning", etc.
-
-       * m4.h: Delete #define const, let Autoconf takes care of this.
-
-       * m4.c: Remove all code conditionalized by IMPLEMENT_M4OPTS.
-       Merge parse_args into main.  Declare argv to be `char *const *',
-       then remove superfluous casts.
-
-       * m4.c: Rename --no-gnu-extensions to --traditional.
-       Reported by Ben A. Mesander.
-
-       * m4.c (usage): Add a status parameter.  Supply one in various
-       calls.  Add --help processing.  Remove -V for --version.
-
-       * lib/Makefile.in: Put $(CFLAGS) last in .c.o rule.
-
-       * lib/Makefile.in: Have an AR=ar declaration.
-       Reported by Eric Backus.
-       Reported by Bjorn R. Bjornsson.
-       Reported by Tom Tromey.
-       Reported by Kristine Lund.
-       Reported by Marion Hakanson.
-
-Sat Oct 30 12:51:47 1993  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (m4.info): Use -I$(srcdir) on $(MAKEINFO).
-       Reported by Noah Friedman.
-
-Mon Oct 25 14:58:48 1993  Francois Pinard  (pinard@icule)
-
-       * Makefile.in: Remove MDEFINES and cleanup.
-
-Wed Jun  9 14:59:46 1993  Francois Pinard  (pinard@icule)
-
-       * Makefile.in (dist): Replace "echo `pwd`" by a mere "pwd".
-       Create a gzip file.
-
-Sat Feb  6 14:59:22 1993  Francois Pinard  (pinard@icule)
-
-       * Makefile.in, lib/Makefile.in, check/Makefile.in: In dist goals,
-       ensure 777 mode for directories, so older tar's will restore file
-       modes properly.
-
-Sun Jan 17 15:38:05 1993  Francois Pinard  (pinard@icule)
-
-       * Makefile.in, lib/Makefile.in: Put $(CFLAGS) after $(CPPFLAGS),
-       so the installer can override automatically configured choices.
-       Reported by Karl Berry.
-
-Fri Jan 15 16:07:00 1993  Francois Pinard  (pinard@icule)
-
-       * lib/vfprintf.c: Stolen from Oleo distribution and adapted.  The
-       previous version was not working properly on m68k-hp-bsd4.3.
-       Reported by Roland McGrath.
-
-       * lib/_doprnt.c: Stolen from Oleo distribution.
-       * configure.in: Check for _doprnt.c if vfprintf.c selected.
-       * lib/Makefile.in: Distribute _doprnt.c.
-       Do not distribute regex.[ch].old anymore.
-
-Fri Jan  1 19:42:23 1993  Francois Pinard  (pinard at icule)
-
-       * Makefile.in, lib/Makefile.in: Reinstate $(CPPFLAGS), use it.
-       Richard wants it there.
-
-Sun Dec 27 07:01:54 1992  Francois Pinard  (pinard at icule)
-
-       * Makefile.in: Add DEFS to MDEFINES.
-       * lib/Makefile.in (.c.o): Remove $(CPPFLAGS).
-       (libm4.a): Remove the library before creating it.
-       (distclean): Remove tags and TAGS too.
-
-Wed Dec 23 12:46:55 1992  Francois Pinard  (pinard at icule)
-
-       * Makefile.in (dvi, m4.dvi): New goals.
-
-       * builtin.c, eval.c, format.c, input.c, m4.[ch], m4.texinfo,
-       macro.c, output.c, path.c, symtab.c: Change Copyright from
-       1989-1992 to the explicit enumeration 1989, 1990, 1991, 1992.
-
-       * examples/divert.m4: Deleted, this bug has been corrected.
-
-       * Makefile.in (texclean, mostlyclean): New goals.
-
-       * Makefile.in (clean): Remove clutter from ansi2knr.
-       Reported by Pierre Gaumond.
-       Reported by Greg A. Woods.
-
-Sun Dec 20 10:40:20 1992  Francois Pinard  (pinard at icule)
-
-       * Makefile.in: Remove $(CPPFLAGS) from the .c.o rule.  The user
-       might well use CFLAGS is s/he needs it.
-
-       * Makefile.in: Allow installation of info files from a separate
-       build directory.
-       Reported by Jason Merrill.
-       Reported by David MacKenzie.
-       Reported by Skip Montanaro.
-       Reported by Erez Zadok.
-       Reported by Assar Westerlund.
-\f
-Sat Dec 19 08:21:34 1992  Francois Pinard  (pinard at icule)
-
-       * Release 1.0.3
-       This is still a beta release for the future GNU m4 version 1.1.
-
-       * lib/alloca.c: New, from elsewhere.
-       * lib/Makefile.in: Distribute it.  Define and use $(ALLOCA).
-
-       * m4.h: Do not define index/rindex if already defined.  If
-       FALSE/TRUE are already defined, do not redefine them, but merely
-       define boolean typedef to int.
-
-       * Makefile.in: Use $(DEFS) while compiling ansi2knr.
-       * ansi2knr.c: Rewrite #ifdef HAVE_STRING_H || STDC_HEADERS,
-       because some C compilers do not like connectives with #ifdef.
-       * m4.h: Define `volatile' only if __GNUC__, instead of once for
-       __GNUC__ and once for __STDC__.
-       * lib/regex.h: Leave const alone, AC_CONST will take care of it.
-
-       * checks/Makefile.in: Use .all_stamp instead of $(CHECKS) for
-       Makefile dependencies.  Without it, make keeps destroying and
-       remaking $(CHECKS) in a loop (why?).  Distribute .all_stamp.
-
-       * m4.h, m4.c, builtin.c, output.c: Change all divertion/DIVERTION
-       to diversion/DIVERSION, this was a spelling error.
-
-       * m4.c: Declare version[], remove #include "version.h".
-       * version.h: Deleted.
-       * Makefile.in: Remove references to version.h.
-
-       * output.c (shipout_text): Centralize all `#line NUM ["FILE"]'
-       production, by using a simpler and more robust algorithm.  This
-       solves the problem of synclines sometimes written in the middle of
-       an output line.  Delete sync_line() and output_lines variable.
-       * m4.h: Remove sync_line prototype and output_lines declaration.
-       * input.c (next_char), output.c (shipout_text): Remove references
-       to output_lines.
-       * input.c (push_file, pop_file): Merely put the value -1 in
-       output_current_line instead of calling sync_line, for delaying a
-       single `#line NUM FILE' before next output line.  Do not test
-       for sync_output, because this is unnecessary clutter.
-       * output.c (make_divertion, insert_divertion): Idem.
-       * input.c: Rename must_advance_line to start_of_input_line, for
-       consistency.
-
-       * debug.c (trace_header): Select a new debug line format, which
-       better complies with GNU standards for formatting error messages.
-       With option `-dfl', M-x next-error might be used on the output.
-       * m4.c (vmesg): Adjust format of error output to GNU standards.
-       * m4.texinfo: Adjust examples for `make check' to work.
-
-       * m4.h, builtin.c, debug.c, input.c, macro.c, path.c: Use upper
-       case for enum debug_info constants, which were all lower case.
-
-       * builtin.c (m4_regexp, m4_patsubst): Use re_search instead of
-       re_search_2.
-       * lib/regex.[ch]: Use new version from textutils 1.3.6, with some
-       collected patches.  I tried a few times using newer regex.[ch], it
-       mysteriously stopped aborting with this one.  Insecure feeling...
-       * lib/Makefile.in: Distribute regex.[ch].old, just in case!
-
-Fri Dec 18 11:08:03 1992  Francois Pinard  (pinard at icule)
-
-       * m4.c: Change `--no-warnings' to `--silent'.
-       Reported by David MacKenzie.
-
-       * m4.c: Put all M4OPTS code upon IMPLEMENT_M4OPTS control, and
-       leave it off for now.  See comment in m4.c for justification.
-       Reported by David MacKenzie.
-
-       * configure.in: Replace AC_USG by AC_HAVE_HEADERS(string.h).
-       * m4.h, ansi2knr.c, lib/regex.h: Replace USG by HAVE_STRING_H.
-
-       * Makefile.in: Add a new `info' goal.  Use macro MAKEINFO.
-
-       * Makefile.in: Ensure recursive cleaning is done before local
-       cleaning for all clean goals.
-
-       * builtin.c (ntoa): Ensure the value is always interpreted as a
-       signed quantity, whatever the radix is.
-
-Wed Nov 18 07:57:19 1992  Jim Meyering  (meyering@idefix)
-
-       * builtin.c, format.c, input.c: Split long lines.
-       * m4.c: Use typedef macro_definition instead of struct
-       macro_definition.
-       * symtab.c: Use typedef symbol instead of struct symbol.
-
-Tue Nov 17 01:58:40 1992  Francois Pinard  (pinard at icule)
-
-       * *.[ch]: Remove all trailing whitespace, in code and comments.
-
-       * configure.in: Find some awk.
-       * Makefile.in: Add $(AWK) to MDEFINES.
-       * checks/Makefile.in: Transmit $(AWK) to get_them.
-       * checks/get_them: Use $AWK instead of gawk.  Add a close in the
-       awk script when switching files, because without this, mawk runs
-       out of file descriptors.
-
-Mon Nov 16 20:42:56 1992  Francois Pinard  (pinard at icule)
-
-       * Makefile.in (realclean): Delete m4.info*.
-       Reported by Jim Meyering.
-
-       * Makefile.in: Adjust and link with checks/Makefile.
-       * checks/Makefile.in: New.
-       * configure.in: Output checks/Makefile.
-
-       * checks/get_them: Have the dnl header of each test more
-       recognizable by next-error, also use a better message.
-
-Mon Nov 16 07:48:52 1992  Jim Meyering  (meyering@idefix)
-
-       * m4.h [__GNUC__]: Use __volatile__ instead of `volatile.'
-       And use that only if __GNUC__ since we're using it's GCC-specific
-       semantics that tell the compiler the associated function doesn't
-       return.
-
-       * builtin.c (substitute): Don't use character as an array index.
-       (dumpdef_cmp): Make formal arguments `const void *' to avoid
-       warnings with gcc -W -Wall on systems with qsort prototype.
-       (m4_errprint): Cast obstack_finish to `char *' to avoid warnings
-       from gcc -W -Wall.
-
-       * eval.c (most functions): Add parentheses to assignments used
-       as truth values go avoid warnings from gcc -Wall.
-
-       * input.c, m4.c, output.c, path.c, symtab.c: Declare static
-       any functions that don't need external scope.
-
-       * builtin.c, debug.c, format.c, m4.c, m4.h, macro.c, symtab.c
-       (many functions and arrays): Declare `const'.
-
-Sun Nov 15 09:42:09 1992  Francois Pinard  (pinard at icule)
-
-       * *.[ch]: Rename nil to NULL, using the declaration from <stdio.h>,
-       removing the declaration from m4.h.  Also rename false to FALSE
-       and true to TRUE.
-
-       * lib/Makefile.in (Makefile): New goal.
-
-       * Makefile.in, lib/Makefile.in: Add a .c.o rule, so CFLAGS is not
-       so heavily loaded.  It gets more easily overridable, calling make.
-       Reported by Jim Meyering.
-
-       * Makefile.in (dist): Get .fname from the current directory name,
-       instead of from version.h.  I need updating many files manually,
-       when the version changes, version.h is just one of them.
-
-Sat Nov 14 11:01:20 1992  Francois Pinard  (pinard at icule)
-
-       * m4.h: Remove the tag `boolean' on the enum introducing typedef
-       `boolean'.  This tag conflicts with <sys/types.h> on SVR4.
-       Reported by Tom McConnell.
-
-Fri Nov 13 00:12:50 1992  Francois Pinard  (pinard at icule)
-
-       * m4.texinfo: Correct the examples for 33.divert, 38.divnum,
-       39.cleardiv, which were describing missing or spurious newlines.
-       Modify examples 52.eval, 53.esyscmd and 54.sysval so the results
-       do not depend on machine word size, `/bin/false' implementation,
-       or `wc' output format.  `make check' is more dependable, now.
-
-       * checks/check_them: Summarize the failed tests by listing their
-       name, at end.  If none, issue `All checks successful'.  Output
-       `Checking' instead of `Input file:'.
-
-       * checks/get_them, checks/check_them: Reindented.
-
-       * Makefile.in (dist): chmod a+r before making the tar file.
-
-Thu Nov 12 14:42:57 1992  Francois Pinard  (pinard at icule)
-
-       * builtin.c (m4_dnl): Diagnose any parameter to `dnl'.
-
-       * input.c (next_token): Reinitialize token_buttom just after using
-       it as a watermark with obstack_free.  Or else, a future token, big
-       enough for triggering reallocation of the obstack chunk, could
-       void the initialized value of token_buttom, later causing panic in
-       obstack_free.  Rename token_buttom to token_bottom everywhere.
-
-       * m4.h: Before declaring errno, first include <errno.h> and
-       ensure that it does not define errno.
-       Reported by Richard Stallman.
-
-Wed Nov 11 17:40:35 1992  Francois Pinard  (pinard at icule)
-
-       * builtin.c: Define and use DECLARE macro for builtins.
-
-       * builtin.c (m4_ifelse): Avoid any diagnostic when exactly one
-       argument, this is a common idiom for introducing long comments.
-
-       * builtin.c (m4_ifelse): If 3n + 2 arguments, diagnose missing
-       arguments.  The last argument was silently ignored.
-
-       * m4.c (cmd_error): Add a missing semicolon before va_end().
-
-Tue Nov 10 08:57:05 1992  Francois Pinard  (pinard at icule)
-
-       * Makefile.in: Now handle protoized sources.  Define and use U.
-       Compile and use ansi2knr with old compilers.  Update DISTFILES.
-       Add `aclocal.m4' to `configure' dependencies.
-       * ansi2knr.c: New, from Ghostscript distribution.
-       * configure.in: Define U through FP_PROTOTYPES for old compilers.
-       Add AC_ISC_POSIX, AC_CONST, AC_SIZE_T.
-       * aclocal.m4: New, provide FP_PROTOTYPES.
-       * m4.h: Conditionnaly protoized through Args, save for varags.
-       * builtin.c: Protoized.  Then:
-       Include <sys/types.h> if size_t is not defined, before "regex.h".
-       (m4_ifelse): Fetch built-in name properly for diagnostic.
-       (m4_dumpdef): Remove wrong (char *) cast calling dump_symbol.
-       (m4_regexp): Add const to `msg' declaration.
-       (m4_patsubst): Add const to `msg' declaration.
-       * debug.c: Protoized, save for varargs.
-       * eval.c: Protoized.
-       * format.c: Protoized.
-       * input.c: Protoized.
-       * m4.c: Protoized, save for varargs.  Then:
-       (xfree): Accept void * instead of char *.
-       (xmalloc): Return void * instead of char *.
-       (xrealloc): Accept and return void * instead of char *.
-       * macro.c: Protoized.
-       * output.c: Protoized.
-       * path.c: Protoized.  Then cast some (char *) over xmalloc's.
-       * symtab.c: Protoized.
-
-Fri Nov  6 02:05:21 1992  Francois Pinard  (pinard at icule)
-
-       * m4.texinfo: Remove directory from diagnostics in 30.include,
-       51.eval, 56.errprint and 57.m4exit tests.
-
-       * m4.h: Remove declarations for int or void system functions, they
-       cause more conflicting trouble than they make good.
-
-       * configure.in: Avoid configuration header file.  Add some tests.
-       * m4.h: Remove #include "config.h".
-       * Makefile.in, lib/Makefile.in: Implement Autoconf interface.
-       Then, rewritten for better compliance with GNU standards.
-
-Thu Nov  5 12:37:13 1992  Francois Pinard  (pinard at icule)
-
-       * format.c (format): Avoid syntax error if not HAVE_EFGCVT,
-       because of a misplaced #endif.
-
-       * Many *.[hc] files: Correct intra-line spacing here and there,
-       according to GNU indent 1.6 advice.
-
-       * configure.in: New, using Autoconf 1.2.
-       * m4.h: Reverse NO_MEMORY_H to NEED_MEMORY_H.
-       * Delete old configure.in, configure, etc/configure.in,
-       etc/configure, lib/configure.in, lib/configure and config/*.
-       Reported by Jason Merrill.
-
-       * symtab.c (hash): Change (char) NULL to '\0'.
-       Reported by Jason Merrill.
-
-       * Delete .vers, etc/newdist.sh, etc/newvers.sh and
-       etc/nextvers.sh.  Release numbers will be edited `by hand'.
-       * version.h: De-automatize, force value in.
-
-       * m4.c: Changes in order to use a newer getopt.h.
-       Reported by David MacKenzie.
-
-       * checks/: New name for examples/.
-       * checks/get_them: New location for etc/get_examples.
-       * checks/check_them: New location for etc/check_examples.
-       * Makefile.in, checks/get_them, checks/check_them: Adjust.
-       * lib/vfprintf.c: New location for etc/vfprintf.c.
-       * Delete empty etc/.
-       * examples/: New name for test/.
-
-Tue Mar 10 00:29:46 1992  Francois Pinard  (pinard at icule)
-
-       * Makefile.in (check): Add m4 as dependency.
-
-       * m4.c: Accept --no-warnings instead of --no_warnings, and
-       --no-gnu-extensions instead of --no_gnu_extensions.  Make the
-       usage message more informative.
-       Reported by David MacKenzie.
-
-Mon Mar  9 14:53:40 1992  Francois Pinard  (pinard at icule)
-
-       * etc/check_examples: New name for check_examples.sh.
-       * etc/get_examples: New name for get_examples.sh.
-       * Makefile.in, etc/Makefile.in: Use new names.
-
-       * Makefile.in: Transmit $(CC) while making in lib.
-
-       * Many *.[hc] files: GNU indent'ed, with further fine tuning of
-       code disposition by hand.
-
-Sun Mar  8 11:01:55 1992  Francois Pinard  (pinard at icule)
-
-       * m4.h: Delete definitions for abort() and exit().
-       Reported by Richard Stallman.
-
-       * config/hmake-unicos, config/s-unicos.h: New files.
-       Reported by Hal Peterson.
-
-       * eval.c (exp_term): Have N^0 return 1.
-       Reported by Michael Fetterman.
-
-       * eval.c, input.c, m4.h: Remove last comma in enums.
-       Reported by Mike Lijewski.
-
-       * Transfer of maintenance duties from Rene' to Franc,ois.
-\f
-Thu Oct 24 15:18:46 1991  Rene' Seindal (seindal at diku.dk)
-
-       * Release 1.0.  Many thanks to those, who provided me with bug
-       reports and feedback.
-
-       * Uses GNU configure, taken from the gdb distribution.
-
-       * Uses GNU getopt(), with long option names.
-
-       * The -Q/+quiet option is added, which suppresses warnings about
-       missing or superflous arguments to built-in macros.
-
-       * Added default options via the M4OPTS environment variable.
-
-       * The built-in format can now be configured to use sprintf as
-       the formatting engine, for systems without [efg]cvt(3).
-
-       * GNU library code is moved to the ./lib subdirectory; other
-       utility files are now in ./etc.
-
-       * Several minor bugs have been fixed.
-\f
-Fri Jul 26 15:28:42 1991  Rene' Seindal (seindal at diku.dk)
-
-       * Fixed various bugs.  Release 0.99, manual 0.09.  Many thanks to
-       Francois Pinard and Roland H. Pesch for providing me with reports.
-
-       * The builtins incr and decr are now implemented without use of
-       eval.
-
-       * The builtin indir is added, to allow for indirect macro calls
-       (allows use of "illegal" macro names).
-
-       * The debugging and tracing facilities has been enhanced
-       considerably.  See the manual for details.
-
-       * The -tMACRO option is added, marks MACRO for tracing as soon
-       as it is defined.
-
-       * Builtins are traced after renaming iff they were before.
-
-       * Named files can now be undiverted.
-
-       * The -Nnum option can be used to increase the number of
-       divertions available.
-
-       * Calling changecom without arguments now disables all comment
-       handling.
-
-       * The function m4_patsubst() is now consistently declared
-       static.
-
-       * A bug in dnl is fixed.
-
-       * A bug in the multi-character quoting code is fixed.
-
-       * Several typos in the manual has been corrected.  More probably
-       persist.
-
-       * The m4.info file is now installed along with the program.
-\f
-Thu Nov 15 21:51:06 1990  Rene' Seindal (seindal at diku.dk)
-
-       * Updated and enhanced version.  Release 0.75, manual 0.07.
-
-       * Implemented search path for include files (-I option and
-       M4PATH envronment variable).
-
-       * Implemented builtin "format" for printf-like formatting.
-
-       * Implemented builtin "regexp" for searching for regular
-       expressions.
-
-       * Implemented builtin "patsubst" for substitution with regular
-       expressions.
-
-       * Implemented builtin "esyscmd", which expands to a shell
-       commands output.
-
-       * Implemented "__file__" and "__line__" for use in error
-       messages.
-
-       * Implemented character ranges in "translit".
-
-       * Implemented control over debugging output.
-
-       * Implemented multi-character quotes.
-
-       * Implemented multi-character comment delimiters.
-
-       * Changed predefined macro "gnu" to "__gnu__".
-
-       * Changed predefined macro "unix" to "__unix__", when the -G
-       option is not used.  With -G, "unix" is still defined.
-
-       * Changed "shift", "$@" and "$*" to not insert spaces afters
-       commas.
-
-       * Added program name to error messages.
-
-       * Fixed two missing null bytes bugs.
-\f
-Mon Jan 22 21:08:52 1990  Rene' Seindal (seindal at diku.dk)
-
-       * Initial beta release.  Release 0.50, manual 0.05.
-
-       -----
-
-       Local Variables:
-       coding: utf-8
-       End:
-
-       Copyright (C) 1990-1994, 2000-2001, 2003, 2005-2013 Free
-       Software Foundation, Inc.
-
-       Copying and distribution of this file, with or without
-       modification, are permitted provided the copyright notice
-       and this notice are preserved.
+       gnulib: Update to latest
+       * gnulib: Update to latest.
+       * m4/gnulib-cache.m4: Regenerate.
+       * src/macro.c (expand_macro): Deal with obstack API change.
+       * src/builtin.c (mkstemp_helper): Likewise.