m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU M4 source repository branch, branch-1.6, updated. v1.5.89a-124


From: Eric Blake
Subject: [SCM] GNU M4 source repository branch, branch-1.6, updated. v1.5.89a-124-gcd3b608
Date: Sun, 14 Jun 2009 04:43:46 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU M4 source repository".

http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=cd3b608b3ae9a15c09b88d02debf823980dde902

The branch, branch-1.6 has been updated
       via  cd3b608b3ae9a15c09b88d02debf823980dde902 (commit)
       via  2f6096389e2047a01618419af3f4471735444520 (commit)
       via  260383467b3ae57f2cb3c6821718b99fdf278c4b (commit)
       via  76b384f1d84225d0412d58999d2becc8936dd645 (commit)
      from  1f6f9cd34d9b8b1bf369e4cb749145256d0f33d7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit cd3b608b3ae9a15c09b88d02debf823980dde902
Author: Eric Blake <address@hidden>
Date:   Sat Jun 13 22:42:17 2009 -0600

    Avoid snprintf link failures.
    
    * m4/gnulib-cache.m4: Import snprintf-posix module.
    * gnulib: Update to latest.
    Reported by Ralf Wildenhues.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 2f6096389e2047a01618419af3f4471735444520
Author: Eric Blake <address@hidden>
Date:   Mon Apr 27 13:53:31 2009 -0600

    Minor cleanups, detected by gnulib's 'make syntax-check'.
    
    * configure.ac (M4_cv_use_stackovf): Avoid redundant parentheses.
    * BACKLOG: Delete.
    * HACKING: Avoid trailing whitespace.
    * TODO: Likewise.
    * examples/stackovf.sh: Likewise.
    * examples/esyscmd.m4: Likewise.
    * examples/file.m4: Avoid space-tab.
    * examples/fstab.m4: Likewise.
    * examples/patsubst.m4: Likewise.
    * src/m4.h (STREQ): New macro.
    * src/builtin.c (find_builtin_by_name): Use it.
    * src/m4.c (process_file): Likewise.
    (main): Mark all strings.  Avoid atoi.
    (stackovf_handler): Reword string.
    (m4_verror_at_line): Use all-lowercase warning.
    * src/stackovf.c (includes): Drop unused <assert.h>.
    (setup_stackovf_trap): Make it easier to translate errors.
    * src/output.c (freeze_diversions): Avoid false positive.
    * doc/m4.texinfo: Adjust expected output.
    * examples/null.err: Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 260383467b3ae57f2cb3c6821718b99fdf278c4b
Author: Eric Blake <address@hidden>
Date:   Fri Apr 24 16:27:36 2009 -0600

    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): Delete; provided by maint.mk.
    (config_h_header, old_NEWS_hash): New macros.
    * .prev-version: New file.
    * gnulib: Import latest gnulib.
    * maint.mk: Remove from version control; use gnulib instead.
    * .gitignore: Update.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 76b384f1d84225d0412d58999d2becc8936dd645
Author: Eric Blake <address@hidden>
Date:   Mon Apr 27 20:30:46 2009 -0600

    Drop .cvsignore and redundant .gitignore files.
    
    * .cvsignore: Delete.  We are moving further away from CVS.
    * build-aux/.cvsignore: Likewise.
    * checks/.cvsignore: Likewise.
    * doc/.cvsignore: Likewise.
    * examples/.cvsignore: Likewise.
    * src/.cvsignore: Likewise.
    * .gitignore: Consolidate from other files.
    * build-aux/.gitignore: Delete, now that it is consolidated.
    * checks/.gitignore: Likewise.
    * doc/.gitignore: Likewise.
    * examples/.gitignore: Likewise.
    * src/.gitignore: Likewise.
    * bootstrap: Simplify accordingly.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 .cvsignore           |   30 --------
 .gitignore           |   67 +++++++++++------
 .prev-version        |    1 +
 BACKLOG              |   60 ---------------
 ChangeLog            |   59 +++++++++++++++
 HACKING              |    2 +-
 TODO                 |    4 +-
 bootstrap            |   22 +-----
 build-aux/.cvsignore |    6 --
 build-aux/.gitignore |    6 --
 cfg.mk               |   18 ++--
 checks/.cvsignore    |    3 -
 checks/.gitignore    |    3 -
 configure.ac         |    4 +-
 doc/.cvsignore       |   15 ----
 doc/.gitignore       |   15 ----
 doc/m4.texinfo       |  176 ++++++++++++++++++++++----------------------
 examples/.cvsignore  |    2 -
 examples/.gitignore  |    2 -
 examples/esyscmd.m4  |    2 +-
 examples/file.m4     |    2 +-
 examples/fstab.m4    |    3 +-
 examples/null.err    |  Bin 3300 -> 3300 bytes
 examples/patsubst.m4 |    2 +-
 examples/stackovf.sh |   10 +-
 gnulib               |    2 +-
 m4/gnulib-cache.m4   |    4 +-
 maint.mk             |  199 --------------------------------------------------
 src/.cvsignore       |    6 --
 src/.gitignore       |    6 --
 src/builtin.c        |    4 +-
 src/m4.c             |   32 +++++---
 src/m4.h             |    5 +
 src/output.c         |    2 +-
 src/stackovf.c       |   17 ++--
 35 files changed, 256 insertions(+), 535 deletions(-)
 delete mode 100644 .cvsignore
 create mode 100644 .prev-version
 delete mode 100644 BACKLOG
 delete mode 100644 build-aux/.cvsignore
 delete mode 100644 build-aux/.gitignore
 delete mode 100644 checks/.cvsignore
 delete mode 100644 checks/.gitignore
 delete mode 100644 doc/.cvsignore
 delete mode 100644 doc/.gitignore
 delete mode 100644 examples/.cvsignore
 delete mode 100644 examples/.gitignore
 delete mode 100644 maint.mk
 delete mode 100644 src/.cvsignore
 delete mode 100644 src/.gitignore

diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 89903ca..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,30 +0,0 @@
-*.tar.bz2
-*.tar.gz
-.tarball-version
-.version
-aclocal.m4
-autom4te.cache
-config.cache
-config.guess
-config.h
-config.log
-config.status
-config.sub
-config-h.in
-configure
-configure.lineno
-depcomp
-gendocs.sh
-GNUmakefile
-gnupload
-install-sh
-lib
-link-warning.h
-m4-*
-Makefile.in
-Makefile
-missing
-stamp-h
-stamp-h1
-stamp-h.in
-tests
diff --git a/.gitignore b/.gitignore
index b6e029c..2ab1a8b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,34 +1,57 @@
 *~
+*.a
+*.exe
+*.o
 *.orig
 *.rej
 *.tar.bz2
 *.tar.gz
-.tarball-version
-.version
-aclocal.m4
-autom4te.cache
-config.cache
+*.tar.lzma
+*.tar.xz
+.deps
+/.tarball-version
+/.version
+/aclocal.m4
+/autom4te.cache
+/build-aux/.gitignore
+/checks/[0-9][0-9].*
+/checks/[0-9][0-9][0-9].*
+/checks/stamp-checks
+/config.cache
 /config.guess
-config.h
-config.log
-config.status
+/config.h
+/config.log
+/config.status
 /config.sub
-config-h.in
-configure
-configure.lineno
-CVS
+/config-h.in
+/configure
+/configure.lineno
+/CVS
 /depcomp
-gendocs.sh
-GNUmakefile
-gnupload
+/doc/.gitignore
+/doc/m4.1
+/doc/m4.??
+/doc/m4.???
+/doc/m4.html
+/doc/m4.info*
+/doc/manual
+/doc/stamp-vti
+/doc/version.texi
+/gendocs.sh
+/GNUmakefile
+/gnupload
 /install-sh
-lib
-link-warning.h
-m4-*
+/lib
+/link-warning.h
+/m4-*
+/m4/.gitignore
+/m4/gnulib-comp.m4
+/maint.mk
 Makefile.in
 Makefile
 /missing
-stamp-h
-stamp-h1
-stamp-h.in
-tests
+/src/m4
+/stamp-h
+/stamp-h1
+/stamp-h.in
+/tests
diff --git a/.prev-version b/.prev-version
new file mode 100644
index 0000000..acd81d7
--- /dev/null
+++ b/.prev-version
@@ -0,0 +1 @@
+1.4.13
diff --git a/BACKLOG b/BACKLOG
deleted file mode 100644
index 96562a5..0000000
--- a/BACKLOG
+++ /dev/null
@@ -1,60 +0,0 @@
-# Summary of pending email for GNU m4 1.4.
-# Last updated: Saturday, November 05, 1994.
-
-rmail/announce
- 1. 15 Sep 94 <address@hidden> Release: GNU m4 1.3
- 2. 29 Oct 94 <address@hidden> Prerelease: GNU m4 1.3.1
-
-rmail/changeword
- 1. 02 Sep 94 <pinard> Re: Prerelease: GNU m4 1.2.3
- 2. 05 Sep 94 <address@hidden> Re: Prerelease: GNU m4 1.2.3 
-
-rmail/configuration
- 1. 03 Nov 94 <address@hidden> Re: m4 1.3 on DEC OSF/1 3.0
- 2. 05 Nov 94 <pinard> Re: m4 1.3 on DEC OSF/1 3.0
-
-rmail/documentation
- 1. 05 Jun 92 <address@hidden> Re: M4
- 2. 10 Nov 92 <address@hidden> Re: Is anyone using m4?
- 3. 25 May 94 <address@hidden> Autoconf 1.11: minor bu
- 4. 27 Jul 94 <address@hidden> Re: 0.95: Spacing details
- 5. 28 Jul 94 <address@hidden> Re: 0.95: Spacing details
- 6. 31 Aug 94 <address@hidden> Re: Frozen file documentation to proofread
-
-rmail/floating-point
- 1. 27 Oct 94 <address@hidden> Re: enhancement to m4 eval()
- 2. 25 Oct 94 <address@hidden> enhancement to m4
- 3. 27 Oct 94 <pinard> Re: enhancement to m4
- 4. 27 Oct 94 <address@hidden> Re: enhancement to m4 eval()
- 5. 27 Oct 94 <pinard> Re: enhancement to m4 eval()
- 6. 27 Oct 94 <address@hidden> Re: enhancement to m4 eval()
- 7. 28 Oct 94 <pinard> Re: enhancement to m4 eval()
- 8. 28 Oct 94 <pinard> Re: enhancement to m4 eval()
- 9. 28 Oct 94 <address@hidden> Re: enhancement to m4 eval()
-10. 28 Oct 94 <pinard> Re: enhancement to m4 eval()
-11. 28 Oct 94 <address@hidden> Re: enhancement to m4 eval()
-12. 28 Oct 94 <address@hidden> Re: enhancement to m4 eval()
-13. 28 Oct 94 <address@hidden> Re: enhancement to m4 eval()
-
-rmail/format-rewrite
- 1. 25 Jun 94 <address@hidden> Re: Prerelease: GNU m4 1.1.3 
-
-rmail/named-formals
- 1. 30 Sep 94 <address@hidden> m4 macros with named formal parameters
-
-rmail/purify
- 1. 06 Dec 93 <address@hidden> m4 1.1.1 "make realclean"
-
-rmail/speed
- 1. 29 Aug 94 <pinard> Re: diversions and freezing
- 2. 05 Sep 94 <address@hidden> slowness
- 3. 04 Oct 94 <pinard> Autoconf, m4, and dnl's.
-
-Copyright (C) 2000, 2006 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the ``GNU Free
-Documentation License'' file as part of this distribution.
diff --git a/ChangeLog b/ChangeLog
index 30a84d8..fab85e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,62 @@
+2009-06-13  Eric Blake  <address@hidden>
+
+       Avoid snprintf link failures.
+       * m4/gnulib-cache.m4: Import snprintf-posix module.
+       * gnulib: Update to latest.
+       Reported by Ralf Wildenhues.
+
+2009-05-18  Eric Blake  <address@hidden>
+
+       Minor cleanups, detected by gnulib's 'make syntax-check'.
+       * configure.ac (M4_cv_use_stackovf): Avoid redundant parentheses.
+       * BACKLOG: Delete.
+       * HACKING: Avoid trailing whitespace.
+       * TODO: Likewise.
+       * examples/stackovf.sh: Likewise.
+       * examples/esyscmd.m4: Likewise.
+       * examples/file.m4: Avoid space-tab.
+       * examples/fstab.m4: Likewise.
+       * examples/patsubst.m4: Likewise.
+       * src/m4.h (STREQ): New macro.
+       * src/builtin.c (find_builtin_by_name): Use it.
+       * src/m4.c (process_file): Likewise.
+       (main): Mark all strings.  Avoid atoi.
+       (stackovf_handler): Reword string.
+       (m4_verror_at_line): Use all-lowercase warning.
+       * src/stackovf.c (includes): Drop unused <assert.h>.
+       (setup_stackovf_trap): Make it easier to translate errors.
+       * src/output.c (freeze_diversions): Avoid false positive.
+       * doc/m4.texinfo: Adjust expected output.
+       * examples/null.err: 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): Delete; provided by maint.mk.
+       (config_h_header, old_NEWS_hash): New macros.
+       * .prev-version: New file.
+       * gnulib: Import latest gnulib.
+       * maint.mk: Remove from version control; use gnulib instead.
+       * .gitignore: Update.
+
+2009-05-14  Eric Blake  <address@hidden>
+
+       Drop .cvsignore and redundant .gitignore files.
+       * .cvsignore: Delete.  We are moving further away from CVS.
+       * build-aux/.cvsignore: Likewise.
+       * checks/.cvsignore: Likewise.
+       * doc/.cvsignore: Likewise.
+       * examples/.cvsignore: Likewise.
+       * src/.cvsignore: Likewise.
+       * .gitignore: Consolidate from other files.
+       * build-aux/.gitignore: Delete, now that it is consolidated.
+       * checks/.gitignore: Likewise.
+       * doc/.gitignore: Likewise.
+       * examples/.gitignore: Likewise.
+       * src/.gitignore: Likewise.
+       * bootstrap: Simplify accordingly.
+
 2009-04-21  Eric Blake  <address@hidden>
 
        Be more explicit about default quoting characters.
diff --git a/HACKING b/HACKING
index 38d2ade..43bc715 100644
--- a/HACKING
+++ b/HACKING
@@ -289,7 +289,7 @@ yyyy-mm-dd  Name of Author  <address@hidden>  (tiny change)
       co directory/m4.txt
   After making edits, mail the diff to <address@hidden>.
 
--- 
+-----------
 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software
 Foundation, Inc.
 
diff --git a/TODO b/TODO
index 4f1ea39..4151f5b 100644
--- a/TODO
+++ b/TODO
@@ -30,14 +30,14 @@ of these ideas, listed more or less in decreasing order of 
priority.
 
        GNU m4 is lousy regarding NULs in streams (this would require
        maintaining the string lengths, and avoiding strlen, strcpy,
-       etc.). 
+       etc.).
 
 Local Variables:
 mode: outline
 outline-regexp: " *[-+*.] \\|"
 End:
 
-Copyright (C) 2000, 2006, 2007 Free Software Foundation, Inc.
+Copyright (C) 2000, 2006, 2007, 2009 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.2 or
diff --git a/bootstrap b/bootstrap
index 697b350..81b87e3 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# bootstrap (GNU M4) version 2009-03-23
+# bootstrap (GNU M4) version 2009-05-14
 # Written by Gary V. Vaughan  <address@hidden>
 
 # Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -211,26 +211,6 @@ func_update ()
 ## Version control. ##
 ## ---------------- ##
 
-# gnulib-tool updates m4/.{git,cvs}ignore and lib/.{git,cvs}ignore, and
-# keeping generated files under version control does not make sense.
-# Since lib is entirely ignored, we only need to prepopulate the m4 ignore
-# files with generated files not tracked by gnulib-tool.
-if test -f $config_macro_dir/.gitignore ; then
-  :
-else
-  func_echo "creating initial $config_macro_dir/.cvsignore"
-  cat > $config_macro_dir/.cvsignore <<\EOF
-# files created by gnulib, but that gnulib doesn't track
-*~
-.cvsignore
-.gitignore
-gnulib-comp.m4
-# gnulib-tool edits below here
-EOF
-  func_echo "creating initial $config_macro_dir/.gitignore"
-  cp $config_macro_dir/.cvsignore $config_macro_dir/.gitignore
-fi
-
 # See if we can use gnulib's git-merge-changelog merge driver.
 if test -d .git && (git --version) >/dev/null 2>/dev/null ; then
   if git config merge.merge-changelog.driver >/dev/null ; then
diff --git a/build-aux/.cvsignore b/build-aux/.cvsignore
deleted file mode 100644
index 8196f1a..0000000
--- a/build-aux/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-announce-gen
-config.rpath
-gendocs.sh
-git-version-gen
-gnupload
-link-warning.h
diff --git a/build-aux/.gitignore b/build-aux/.gitignore
deleted file mode 100644
index b82803d..0000000
--- a/build-aux/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-/announce-gen
-/config.rpath
-/gendocs.sh
-/git-version-gen
-/gnupload
-/link-warning.h
diff --git a/cfg.mk b/cfg.mk
index 2aac5ac..ccdfa39 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -29,12 +29,12 @@ url_dir_list = ftp://$(gnu_rel_host)/gnu/m4
 # The GnuPG ID of the key used to sign the tarballs.
 gpg_key_ID = F4850180
 
-# Tests not to run as part of "make distcheck".
-# Exclude changelog-check here so that there's less churn in ChangeLog
-# files -- otherwise, you'd need to have the upcoming version number
-# at the top of the file for each `make distcheck' run.
-local-checks-to-skip = changelog-check
-
-# The local directory containing the checked-out copy of gnulib used in this
-# release.  Used solely to get gnulib's SHA1 for the "announcement" target.
-gnulib_dir = $(srcdir)/gnulib
+# Tests not to run as part of "make syntax-check".
+# M4 intentionally uses a coding style that compiles under C++.
+local-checks-to-skip = sc_cast_of_x_alloc_return_value
+
+# Our files include "m4.h", which in turn includes <config.h> first.
+config_h_header = "m4\.h"
+
+# Hash of NEWS contents, to ensure we don't add entries to wrong section.
+old_NEWS_hash = 0330971054cd4fb4e94b85fe367980f2
diff --git a/checks/.cvsignore b/checks/.cvsignore
deleted file mode 100644
index cfdeddf..0000000
--- a/checks/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-[0-9][0-9][0-9].*
-Makefile
-stamp-checks
diff --git a/checks/.gitignore b/checks/.gitignore
deleted file mode 100644
index cfdeddf..0000000
--- a/checks/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-[0-9][0-9][0-9].*
-Makefile
-stamp-checks
diff --git a/configure.ac b/configure.ac
index 5f1664f..f2b42b5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,8 +82,8 @@ if test "$ac_cv_func_sigaction" = yes || test 
"$ac_cv_func_sigvec" = yes; then
 #include <sys/resource.h>
 #include <signal.h>
 ]], [[struct rlimit r; getrlimit (RLIMIT_STACK, &r);
-#if (!defined(HAVE_SIGACTION) || !defined(SA_ONSTACK)) \
-    && (!defined(HAVE_SIGVEC) || !defined(SV_ONSTACK))
+#if (!defined HAVE_SIGACTION || !defined SA_ONSTACK) \
+    && (!defined HAVE_SIGVEC || !defined SV_ONSTACK)
 choke me               /* SA_ONSTACK and/or SV_ONSTACK are not defined */
 #endif
 ]])], [M4_cv_use_stackovf=yes])
diff --git a/doc/.cvsignore b/doc/.cvsignore
deleted file mode 100644
index 81f5a1e..0000000
--- a/doc/.cvsignore
+++ /dev/null
@@ -1,15 +0,0 @@
-fdl-1.3.texi
-gendocs_template
-gpl-3.0.texi
-m4.1
-m4.??
-m4.???
-m4.html
-m4.info*
-Makefile.in
-Makefile
-manual
-mdate-sh
-stamp-vti
-texinfo.tex
-version.texi
diff --git a/doc/.gitignore b/doc/.gitignore
deleted file mode 100644
index 81f5a1e..0000000
--- a/doc/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-fdl-1.3.texi
-gendocs_template
-gpl-3.0.texi
-m4.1
-m4.??
-m4.???
-m4.html
-m4.info*
-Makefile.in
-Makefile
-manual
-mdate-sh
-stamp-vti
-texinfo.tex
-version.texi
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index c37bc9e..d18d4b0 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -612,7 +612,7 @@ a warning.
 @example
 $ @kbd{m4}
 defn(`oops')
address@hidden:stdin:1: Warning: defn: undefined macro `oops'
address@hidden:stdin:1: warning: defn: undefined macro `oops'
 @result{}
 ^D
 @end example
@@ -642,7 +642,7 @@ $ @kbd{echo $?}
 @example
 $ @kbd{m4 -E -d}
 defn(`oops')
address@hidden:stdin:1: Warning: defn: undefined macro `oops'
address@hidden:stdin:1: warning: defn: undefined macro `oops'
 @result{}
 ^D
 @end example
@@ -962,7 +962,7 @@ bar
 @comment options: -o /dev/null
 @example
 $ @kbd{m4 -o /dev/null
address@hidden: Warning: `-o' is deprecated, use `--debugfile' instead
address@hidden: warning: `-o' is deprecated, use `--debugfile' instead
 dumpdef(`divnum')
 @result{}
 @end example
@@ -1092,7 +1092,7 @@ define(`m4exit')include(`null.m4')dnl
 @example
 include(`null.m4')
 @result{}# This file tests m4 behavior on NUL bytes.
address@hidden:examples/null.m4:5: Warning: m4exit: non-numeric argument 
`2\0002'
address@hidden:examples/null.m4:5: warning: m4exit: non-numeric argument 
`2\0002'
 @end example
 @end ignore
 
@@ -1650,12 +1650,12 @@ defined macros, there is no check of the number of 
arguments given.
 @example
 $ @kbd{m4}
 index(`abc')
address@hidden:stdin:1: Warning: index: too few arguments: 1 < 2
address@hidden:stdin:1: warning: index: too few arguments: 1 < 2
 @result{}0
 index(`abc',)
 @result{}0
 index(`abc', `b', `0', `ignored')
address@hidden:stdin:3: Warning: index: extra arguments ignored: 4 > 3
address@hidden:stdin:3: warning: index: extra arguments ignored: 4 > 3
 @result{}1
 @end example
 
@@ -2034,8 +2034,8 @@ will still be possible to restore older behavior in M4 
2.0.
 @example
 $ @kbd{m4 --warn-macro-sequence}
 define(`foo', `$001 address@hidden@} $1')
address@hidden:stdin:1: Warning: definition of `foo' contains sequence `$001'
address@hidden:stdin:1: Warning: definition of `foo' contains sequence 
address@hidden@}'
address@hidden:stdin:1: warning: definition of `foo' contains sequence `$001'
address@hidden:stdin:1: warning: definition of `foo' contains sequence 
address@hidden@}'
 @result{}
 foo(`bar')
 @result{}bar address@hidden@} bar
@@ -2279,7 +2279,7 @@ m4}).
 @example
 $ @kbd{m4}
 undefine(`a')
address@hidden:stdin:1: Warning: undefine: undefined macro `a'
address@hidden:stdin:1: warning: undefine: undefined macro `a'
 @result{}
 debugmode(`-d')
 @result{}
@@ -2417,7 +2417,7 @@ $ @kbd{m4 -d}
 defn(`defn')
 @result{}
 define(defn(`divnum'), `cannot redefine a builtin token')
address@hidden:stdin:2: Warning: define: invalid macro name ignored
address@hidden:stdin:2: warning: define: invalid macro name ignored
 @result{}
 divnum
 @result{}0
@@ -2432,30 +2432,30 @@ mydivnum
 define(`', `empty-$1')
 @result{}
 defn(defn(`divnum'))
address@hidden:stdin:9: Warning: defn: invalid macro name ignored
address@hidden:stdin:9: warning: defn: invalid macro name ignored
 @result{}
 pushdef(defn(`divnum'), `oops')
address@hidden:stdin:10: Warning: pushdef: invalid macro name ignored
address@hidden:stdin:10: warning: pushdef: invalid macro name ignored
 @result{}
 traceon(defn(`divnum'))
address@hidden:stdin:11: Warning: traceon: invalid macro name ignored
address@hidden:stdin:11: warning: traceon: invalid macro name ignored
 @result{}
 indir(defn(`divnum'), `string')
address@hidden:stdin:12: Warning: indir: invalid macro name ignored
address@hidden:stdin:12: warning: indir: invalid macro name ignored
 @result{}
 indir(`', `string')
 @result{}empty-string
 traceoff(defn(`divnum'))
address@hidden:stdin:14: Warning: traceoff: invalid macro name ignored
address@hidden:stdin:14: warning: traceoff: invalid macro name ignored
 @result{}
 popdef(defn(`divnum'))
address@hidden:stdin:15: Warning: popdef: invalid macro name ignored
address@hidden:stdin:15: warning: popdef: invalid macro name ignored
 @result{}
 dumpdef(defn(`divnum'))
address@hidden:stdin:16: Warning: dumpdef: invalid macro name ignored
address@hidden:stdin:16: warning: dumpdef: invalid macro name ignored
 @result{}
 undefine(defn(`divnum'))
address@hidden:stdin:17: Warning: undefine: invalid macro name ignored
address@hidden:stdin:17: warning: undefine: invalid macro name ignored
 @result{}
 dumpdef(`')
 @error{}:@tabchar{}`empty-$1'
@@ -2479,7 +2479,7 @@ builtin token does not occur in isolation.  A future 
version of
 @example
 $ @kbd{m4 -d}
 defn(`foo')
address@hidden:stdin:1: Warning: defn: undefined macro `foo'
address@hidden:stdin:1: warning: defn: undefined macro `foo'
 @result{}
 debugmode(`-d')
 @result{}
@@ -2494,25 +2494,25 @@ defn(`a', `divnum', `a')
 @result{}AA
 define(`mydivnum', defn(`divnum', `divnum'))mydivnum
 @error{}m4trace: -2- defn(`divnum', `divnum') -> `<divnum><divnum>'
address@hidden:stdin:7: Warning: define: cannot concatenate builtins
address@hidden:stdin:7: warning: define: cannot concatenate builtins
 @error{}m4trace: -1- define(`mydivnum', `<divnum><divnum>') -> `'
 @result{}
 traceoff(`defn', `define')dumpdef(`mydivnum')
 @error{}mydivnum:@tabchar{}`'
 @result{}
 define(`mydivnum', defn(`divnum')defn(`divnum'))mydivnum
address@hidden:stdin:9: Warning: define: cannot concatenate builtins
address@hidden:stdin:9: warning: define: cannot concatenate builtins
 @result{}
 define(`mydivnum', defn(`divnum')`a')mydivnum
address@hidden:stdin:10: Warning: define: cannot concatenate builtins
address@hidden:stdin:10: warning: define: cannot concatenate builtins
 @result{}A
 define(`mydivnum', `a'defn(`divnum'))mydivnum
address@hidden:stdin:11: Warning: define: cannot concatenate builtins
address@hidden:stdin:11: warning: define: cannot concatenate builtins
 @result{}A
 define(`q', ``$@@'')
 @result{}
 define(`foo', q(`a', defn(`divnum')))foo
address@hidden:stdin:13: Warning: define: cannot concatenate builtins
address@hidden:stdin:13: warning: define: cannot concatenate builtins
 @result{}a,
 ifdef(`foo', `yes', `no')
 @result{}yes
@@ -2630,7 +2630,7 @@ define(`a', `1')
 popdef
 @result{}popdef
 popdef(`a', `a')
address@hidden:stdin:3: Warning: popdef: undefined macro `a'
address@hidden:stdin:3: warning: popdef: undefined macro `a'
 @result{}
 debugmode(`-d')
 @result{}
@@ -2688,7 +2688,7 @@ f(define(`f', `2'))
 indir(`f', define(`f', `3'))
 @result{}3
 indir(`f', undefine(`f'))
address@hidden:stdin:4: Warning: indir: undefined macro `f'
address@hidden:stdin:4: warning: indir: undefined macro `f'
 @result{}
 debugmode(`-d')
 @result{}
@@ -2704,17 +2704,17 @@ string.
 @example
 $ @kbd{m4 -d}
 indir(defn(`defn'), `divnum')
address@hidden:stdin:1: Warning: indir: invalid macro name ignored
address@hidden:stdin:1: warning: indir: invalid macro name ignored
 @result{}
 indir(`define', defn(`defn'), `divnum')
address@hidden:stdin:2: Warning: define: invalid macro name ignored
address@hidden:stdin:2: warning: define: invalid macro name ignored
 @result{}
 indir(`define', `foo', defn(`divnum'))
 @result{}
 foo
 @result{}0
 indir(`divert', defn(`foo'))
address@hidden:stdin:5: Warning: divert: empty string treated as 0
address@hidden:stdin:5: warning: divert: empty string treated as 0
 @result{}
 @end example
 
@@ -2728,7 +2728,7 @@ odd', defn(`divnum'))
 @result{}
 indir(`%%:\
 odd', `extra')
address@hidden:stdin:3: Warning: %%\:\\\nodd: extra arguments ignored: 1 > 0
address@hidden:stdin:3: warning: %%\:\\\nodd: extra arguments ignored: 1 > 0
 @result{}0
 @end example
 
@@ -2792,10 +2792,10 @@ $ @kbd{m4 -P}
 m4_builtin(`divnum')
 @result{}0
 m4_builtin(`m4_divnum')
address@hidden:stdin:2: Warning: m4_builtin: undefined builtin `m4_divnum'
address@hidden:stdin:2: warning: m4_builtin: undefined builtin `m4_divnum'
 @result{}
 m4_indir(`divnum')
address@hidden:stdin:3: Warning: m4_indir: undefined macro `divnum'
address@hidden:stdin:3: warning: m4_indir: undefined macro `divnum'
 @result{}
 m4_indir(`m4_divnum')
 @result{}0
@@ -2813,20 +2813,20 @@ recognized; but it will provoke a warning, and result 
in a void expansion.
 builtin
 @result{}builtin
 builtin()
address@hidden:stdin:2: Warning: builtin: undefined builtin `'
address@hidden:stdin:2: warning: builtin: undefined builtin `'
 @result{}
 builtin(`builtin')
address@hidden:stdin:3: Warning: builtin: too few arguments: 0 < 1
address@hidden:stdin:3: warning: builtin: too few arguments: 0 < 1
 @result{}
 builtin(`builtin',)
address@hidden:stdin:4: Warning: builtin: undefined builtin `'
address@hidden:stdin:4: warning: builtin: undefined builtin `'
 @result{}
 builtin(`builtin', ``'
 ')
address@hidden:stdin:5: Warning: builtin: undefined builtin ``\'\n'
address@hidden:stdin:5: warning: builtin: undefined builtin ``\'\n'
 @result{}
 indir(`index')
address@hidden:stdin:7: Warning: index: too few arguments: 0 < 2
address@hidden:stdin:7: warning: index: too few arguments: 0 < 2
 @result{}
 @end example
 
@@ -2901,7 +2901,7 @@ define(`foo', `')
 ifdef(`foo', ``foo' is defined', ``foo' is not defined')
 @result{}foo is defined
 ifdef(`no_such_macro', `yes', `no', `extra argument')
address@hidden:stdin:4: Warning: ifdef: extra arguments ignored: 4 > 3
address@hidden:stdin:4: warning: ifdef: extra arguments ignored: 4 > 3
 @result{}no
 @end example
 
@@ -2913,7 +2913,7 @@ generated by @code{defn} (@pxref{Defn}) that occur in 
either
 define(`', `empty')
 @result{}
 ifdef(defn(`defn'), `yes', `no')
address@hidden:stdin:2: Warning: ifdef: invalid macro name ignored
address@hidden:stdin:2: warning: ifdef: invalid macro name ignored
 @result{}no
 define(`foo', ifdef(`divnum', defn(`divnum'), `undefined'))
 @result{}
@@ -2961,7 +2961,7 @@ case, the warning about missing arguments is never 
triggered.
 ifelse(`some comments')
 @result{}
 ifelse(`foo', `bar')
address@hidden:stdin:2: Warning: ifelse: too few arguments: 2 < 3
address@hidden:stdin:2: warning: ifelse: too few arguments: 2 < 3
 @result{}
 @end example
 
@@ -3013,14 +3013,14 @@ calls for an example:
 
 @example
 ifelse(`foo', `bar', `third', `gnu', `gnats')
address@hidden:stdin:1: Warning: ifelse: extra arguments ignored: 5 > 4
address@hidden:stdin:1: warning: ifelse: extra arguments ignored: 5 > 4
 @result{}gnu
 ifelse(`foo', `bar', `third', `gnu', `gnats', `sixth')
 @result{}
 ifelse(`foo', `bar', `third', `gnu', `gnats', `sixth', `seventh')
 @result{}seventh
 ifelse(`foo', `bar', `3', `gnu', `gnats', `6', `7', `8')
address@hidden:stdin:4: Warning: ifelse: extra arguments ignored: 8 > 7
address@hidden:stdin:4: warning: ifelse: extra arguments ignored: 8 > 7
 @result{}7
 @end example
 
@@ -4045,7 +4045,7 @@ f(popdef(`f')dumpdef(`f'))
 @error{}f:@tabchar{}``$0'1'
 @result{}f2
 f(popdef(`f')dumpdef(`f'))
address@hidden:stdin:3: Warning: dumpdef: undefined macro `f'
address@hidden:stdin:3: warning: dumpdef: undefined macro `f'
 @result{}f1
 debugmode(`-d')
 @result{}
@@ -4138,17 +4138,17 @@ traceon(`foo')
 foo
 @result{}foo
 defn(`foo')
address@hidden:stdin:4: Warning: defn: undefined macro `foo'
address@hidden:stdin:4: warning: defn: undefined macro `foo'
 @result{}
 undefine(`foo')
address@hidden:stdin:5: Warning: undefine: undefined macro `foo'
address@hidden:stdin:5: warning: undefine: undefined macro `foo'
 @result{}
 pushdef(`foo')
 @result{}
 popdef(`foo')
 @result{}
 popdef(`foo')
address@hidden:stdin:8: Warning: popdef: undefined macro `foo'
address@hidden:stdin:8: warning: popdef: undefined macro `foo'
 @result{}
 define(`foo', `bar')
 @result{}
@@ -4160,7 +4160,7 @@ undefine(`foo')
 ifdef(`foo', `yes', `no')
 @result{}no
 indir(`foo')
address@hidden:stdin:13: Warning: indir: undefined macro `foo'
address@hidden:stdin:13: warning: indir: undefined macro `foo'
 @result{}
 define(`foo', `blah')
 @result{}
@@ -4487,13 +4487,13 @@ $ @kbd{m4 -d}
 traceon(`divnum')
 @result{}
 divnum(`extra')
address@hidden:stdin:2: Warning: divnum: extra arguments ignored: 1 > 0
address@hidden:stdin:2: warning: divnum: extra arguments ignored: 1 > 0
 @error{}m4trace: -1- divnum(`extra') -> `0'
 @result{}0
 debugfile()
 @result{}
 divnum(`extra')
address@hidden:stdin:4: Warning: divnum: extra arguments ignored: 1 > 0
address@hidden:stdin:4: warning: divnum: extra arguments ignored: 1 > 0
 @result{}0
 debugfile
 @result{}
@@ -4588,7 +4588,7 @@ next newline, on whatever line containing it, will still 
be discarded.
 @example
 dnl(`args are ignored, but side effects occur',
 define(`foo', `like this')) while this text is ignored: undefine(`foo')
address@hidden:stdin:1: Warning: dnl: extra arguments ignored: 2 > 0
address@hidden:stdin:1: warning: dnl: extra arguments ignored: 2 > 0
 See how `foo' was defined, foo?
 @result{}See how foo was defined, like this?
 @end example
@@ -4603,7 +4603,7 @@ m4wrap(`m4wrap(`2 hi
 define(`hi', `HI')
 @result{}
 ^D
address@hidden:stdin:1: Warning: dnl: end of file treated as newline
address@hidden:stdin:1: warning: dnl: end of file treated as newline
 @result{}0 HI 2 HI
 @end example
 
@@ -6175,7 +6175,7 @@ contrast this with an empty @var{substring}.
 
 @example
 index(`abc')
address@hidden:stdin:1: Warning: index: too few arguments: 1 < 2
address@hidden:stdin:1: warning: index: too few arguments: 1 < 2
 @result{}0
 index(`abc', `')
 @result{}0
@@ -6260,13 +6260,13 @@ Here are some more examples on the handling of 
backslash:
 regexp(`abc', `\(b\)', `\\\10\a')
 @result{}\b0a
 regexp(`abc', `b', `\1\')
address@hidden:stdin:2: Warning: regexp: sub-expression 1 not present
address@hidden:stdin:2: Warning: regexp: trailing \ ignored in replacement
address@hidden:stdin:2: warning: regexp: sub-expression 1 not present
address@hidden:stdin:2: warning: regexp: trailing \ ignored in replacement
 @result{}
 regexp(`abc', `\(\(d\)?\)\(c\)', `\1\2\3\4\5\6')
address@hidden:stdin:3: Warning: regexp: sub-expression 4 not present
address@hidden:stdin:3: Warning: regexp: sub-expression 5 not present
address@hidden:stdin:3: Warning: regexp: sub-expression 6 not present
address@hidden:stdin:3: warning: regexp: sub-expression 4 not present
address@hidden:stdin:3: warning: regexp: sub-expression 5 not present
address@hidden:stdin:3: warning: regexp: sub-expression 6 not present
 @result{}c
 @end example
 
@@ -6275,7 +6275,7 @@ contrast this with an empty @var{regexp} argument.
 
 @example
 regexp(`abc')
address@hidden:stdin:1: Warning: regexp: too few arguments: 1 < 2
address@hidden:stdin:1: warning: regexp: too few arguments: 1 < 2
 @result{}0
 regexp(`abc', `')
 @result{}0
@@ -6334,7 +6334,7 @@ other hand, selecting a @var{from} or @var{length} that 
lies beyond
 
 @example
 substr(`abc')
address@hidden:stdin:1: Warning: substr: too few arguments: 1 < 2
address@hidden:stdin:1: warning: substr: too few arguments: 1 < 2
 @result{}abc
 substr(`abc', `')
 @result{}abc
@@ -6391,10 +6391,10 @@ substr(`abcde', `-3', `-4', `f')
 substr(`abcde', `-6', `1', `f')
 @result{}fabcde
 substr(`abcde', `-7', `1', `f')
address@hidden:stdin:5: Warning: substr: substring out of range
address@hidden:stdin:5: warning: substr: substring out of range
 @result{}
 substr(`abcde', `6', `', `f')
address@hidden:stdin:6: Warning: substr: substring out of range
address@hidden:stdin:6: warning: substr: substring out of range
 @result{}
 @end example
 
@@ -6584,7 +6584,7 @@ Omitting @var{chars} evokes a warning, but still produces 
output.
 
 @example
 translit(`abc')
address@hidden:stdin:1: Warning: translit: too few arguments: 1 < 2
address@hidden:stdin:1: warning: translit: too few arguments: 1 < 2
 @result{}abc
 @end example
 
@@ -6638,7 +6638,7 @@ patsubst(`GNUs not Unix', `\w+', `(\&)')
 patsubst(`GNUs not Unix', `[A-Z][a-z]+')
 @result{}GN address@hidden }
 patsubst(`GNUs not Unix', `not', `NOT\')
address@hidden:stdin:6: Warning: patsubst: trailing \ ignored in replacement
address@hidden:stdin:6: warning: patsubst: trailing \ ignored in replacement
 @result{}GNUs NOT Unix
 @end example
 
@@ -6717,7 +6717,7 @@ contrast this with an empty @var{regexp} argument.
 
 @example
 patsubst(`abc')
address@hidden:stdin:1: Warning: patsubst: too few arguments: 1 < 2
address@hidden:stdin:1: warning: patsubst: too few arguments: 1 < 2
 @result{}abc
 patsubst(`abc', `')
 @result{}abc
@@ -6817,14 +6817,14 @@ Likewise, escape sequences are not yet recognized.
 
 @example
 format(`%p', `0')
address@hidden:stdin:1: Warning: format: unrecognized specifier in `%p'
address@hidden:stdin:1: warning: format: unrecognized specifier in `%p'
 @result{}p
 format(`%*d', `')
address@hidden:stdin:2: Warning: format: empty string treated as 0
address@hidden:stdin:2: Warning: format: too few arguments: 2 < 3
address@hidden:stdin:2: warning: format: empty string treated as 0
address@hidden:stdin:2: warning: format: too few arguments: 2 < 3
 @result{}0
 format(`%.1f', `2a')
address@hidden:stdin:3: Warning: format: non-numeric argument `2a'
address@hidden:stdin:3: warning: format: non-numeric argument `2a'
 @result{}2.0
 @end example
 
@@ -6866,10 +6866,10 @@ incr(`4')
 decr(`7')
 @result{}6
 incr()
address@hidden:stdin:3: Warning: incr: empty string treated as 0
address@hidden:stdin:3: warning: incr: empty string treated as 0
 @result{}1
 decr()
address@hidden:stdin:4: Warning: decr: empty string treated as 0
address@hidden:stdin:4: warning: decr: empty string treated as 0
 @result{}-1
 @end example
 
@@ -6940,13 +6940,13 @@ extension when @acronym{POSIX} mode is not requested, 
and that using
 
 @example
 eval(`2 = 2')
address@hidden:stdin:1: Warning: eval: recommend ==, not =, for equality
address@hidden:stdin:1: warning: eval: recommend ==, not =, for equality
 @result{}1
 eval(`++0')
address@hidden:stdin:2: Warning: eval: invalid operator: `++0'
address@hidden:stdin:2: warning: eval: invalid operator: `++0'
 @result{}
 eval(`0 |= 1')
address@hidden:stdin:3: Warning: eval: invalid operator: `0 |= 1'
address@hidden:stdin:3: warning: eval: invalid operator: `0 |= 1'
 @result{}
 @end example
 
@@ -6989,12 +6989,12 @@ eval(`+ + - ~ ! ~ 0')
 eval(`2 || 1 / 0')
 @result{}1
 eval(`0 || 1 / 0')
address@hidden:stdin:9: Warning: eval: divide by zero: `0 || 1 / 0'
address@hidden:stdin:9: warning: eval: divide by zero: `0 || 1 / 0'
 @result{}
 eval(`0 && 1 % 0')
 @result{}0
 eval(`2 && 1 % 0')
address@hidden:stdin:11: Warning: eval: modulo by zero: `2 && 1 % 0'
address@hidden:stdin:11: warning: eval: modulo by zero: `2 && 1 % 0'
 @result{}
 @end example
 
@@ -7016,9 +7016,9 @@ eval(`2 ** 0')
 @result{}1
 eval(`0 ** 0')
 @result{}
address@hidden:stdin:5: Warning: eval: divide by zero: `0 ** 0'
address@hidden:stdin:5: warning: eval: divide by zero: `0 ** 0'
 eval(`4 ** -2')
address@hidden:stdin:6: Warning: eval: negative exponent: `4 ** -2'
address@hidden:stdin:6: warning: eval: negative exponent: `4 ** -2'
 @result{}
 eval(`0 ? 2 : 3')
 @result{}3
@@ -7069,7 +7069,7 @@ square(square(`5')` + 1')
 define(`foo', `666')
 @result{}
 eval(`foo / 6')
address@hidden:stdin:11: Warning: eval: bad expression: `foo / 6'
address@hidden:stdin:11: warning: eval: bad expression: `foo / 6'
 @result{}
 eval(foo / 6)
 @result{}111
@@ -7139,16 +7139,16 @@ eval(`10', `', `0')
 eval(`10', `16')
 @result{}a
 eval(`1', `37')
address@hidden:stdin:9: Warning: eval: radix out of range: 37
address@hidden:stdin:9: warning: eval: radix out of range: 37
 @result{}
 eval(`1', , `-1')
address@hidden:stdin:10: Warning: eval: negative width: -1
address@hidden:stdin:10: warning: eval: negative width: -1
 @result{}
 eval()
address@hidden:stdin:11: Warning: eval: empty string treated as 0
address@hidden:stdin:11: warning: eval: empty string treated as 0
 @result{}0
 eval(` ')
address@hidden:stdin:12: Warning: eval: empty string treated as 0
address@hidden:stdin:12: warning: eval: empty string treated as 0
 @result{}0
 define(`a', `hi')eval(` 10 ', `16')
 @result{}hi
@@ -7559,12 +7559,12 @@ define(`foo', `errprint(`oops')')
 syscmd(`rm -f foo-??????')sysval
 @result{}0
 define(`file1', maketemp(`foo-XXXXXX'))dnl
address@hidden:stdin:3: Warning: maketemp: recommend using mkstemp instead
address@hidden:stdin:3: warning: maketemp: recommend using mkstemp instead
 ifelse(esyscmd(`echo \` foo-?????? \''), ` foo-?????? ',
        `no file', `created')
 @result{}created
 define(`file2', maketemp(`foo-XX'))dnl
address@hidden:stdin:6: Warning: maketemp: recommend using mkstemp instead
address@hidden:stdin:6: warning: maketemp: recommend using mkstemp instead
 define(`file3', mkstemp(`foo-XXXXXX'))dnl
 ifelse(len(defn(`file1')), len(defn(`file2')),
        `same length', `different')
@@ -7604,13 +7604,13 @@ syscmd(`rm -r foodir')sysval
 syscmd(`rm -f foo-*')sysval
 @result{}0
 len(maketemp(`foo-XXXXX'))
address@hidden:stdin:2: Warning: maketemp: recommend using mkstemp instead
address@hidden:stdin:2: warning: maketemp: recommend using mkstemp instead
 @result{}9
 define(`abc', `def')
 @result{}
 maketemp(`foo-abc')
 @result{}foo-def
address@hidden:stdin:4: Warning: maketemp: recommend using mkstemp instead
address@hidden:stdin:4: warning: maketemp: recommend using mkstemp instead
 syscmd(`test -f foo-*')ifelse(sysval, `0', `0', `1')
 @result{}1
 @end example
@@ -8552,7 +8552,7 @@ forloop(`', `1', `2', ` odd iterator name')
 forloop(`i', `5 + 5', `0xc', ` 0x`'eval(i, `16')')
 @result{} 0xa 0xb 0xc
 forloop(`i', `a', `b', `non-numeric bounds')
address@hidden:stdin:6: Warning: eval: bad input: `(a) <= (b)'
address@hidden:stdin:6: warning: eval: bad input: `(a) <= (b)'
 @result{}
 @end example
 
@@ -9457,7 +9457,7 @@ m4wrap(`divnum(`demo of internal message')
 fatal_error(`inside wrapped text')')
 @result{}
 ^D
address@hidden:stdin:6: Warning: divnum: extra arguments ignored: 1 > 0
address@hidden:stdin:6: warning: divnum: extra arguments ignored: 1 > 0
 @result{}0
 @error{}m4:stdin:6: fatal error: inside wrapped text
 @end example
diff --git a/examples/.cvsignore b/examples/.cvsignore
deleted file mode 100644
index 3dda729..0000000
--- a/examples/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile.in
-Makefile
diff --git a/examples/.gitignore b/examples/.gitignore
deleted file mode 100644
index 3dda729..0000000
--- a/examples/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile.in
-Makefile
diff --git a/examples/esyscmd.m4 b/examples/esyscmd.m4
index b839148..0e8634d 100644
--- a/examples/esyscmd.m4
+++ b/examples/esyscmd.m4
@@ -1,5 +1,5 @@
 define(`hostname', esyscmd(`hostname'))dnl
 `hostname = >>'hostname`<<'
-define(`hostname', 
+define(`hostname',
 pushdef(`_tmp', `$1')_tmp(translit(esyscmd(`hostname'), `.', 
`,'))`'popdef(`_tmp'))dnl
 `hostname = >>'hostname`<<'
diff --git a/examples/file.m4 b/examples/file.m4
index e7db5f1..ff56153 100644
--- a/examples/file.m4
+++ b/examples/file.m4
@@ -1,5 +1,5 @@
 changequote([[,]])dnl
-define([[quoteall]], [[patsubst([[[[$*]]]], [[,[       ]+]], [[,]])]])dnl
+define([[quoteall]], [[patsubst([[[[$*]]]], [[,[        ]+]], [[,]])]])dnl
 define([[group]], quoteall(include([[/etc/group]])))dnl
 dnl
 group()dnl
diff --git a/examples/fstab.m4 b/examples/fstab.m4
index dbf538a..8d10e17 100644
--- a/examples/fstab.m4
+++ b/examples/fstab.m4
@@ -1,7 +1,6 @@
-define(`concat', `translit(``$*'', `   ')')
+define(`concat', `translit(``$*'', `    ')')
 define(`fsent', `format(`%-25s %-16s nfs    %-16s 0 0', `$1:$2', `$3', 
concat$4)')
 
 fsent(freja, /home/gevn, /home/gevn, (rw, soft, bg, grpid))
 fsent(freja, /home/freja, /home/freja, (rw, soft, grpid))
 fsent(rimfaxe, /home/rimfaxe, /home/rimfaxe, (rw, soft, bg))
-
diff --git a/examples/null.err b/examples/null.err
index 930d917..dbe52bc 100644
Binary files a/examples/null.err and b/examples/null.err differ
diff --git a/examples/patsubst.m4 b/examples/patsubst.m4
index 3b390ae..8569066 100644
--- a/examples/patsubst.m4
+++ b/examples/patsubst.m4
@@ -5,4 +5,4 @@ patsubst(`GNUs not Unix', `\<\w', `\0=')
 patsubst(`GNUs not Unix', `\w*', `(\0)')
 patsubst(`GNUs not Unix', `\w+', `(\0)')
 patsubst(`GNUs not Unix', `\w+')
-patsubst(`GNUs  not     Unix', `[      ]+', ` ')
+patsubst(`GNUs  not  '`         Unix', `[       ]+', ` ')
diff --git a/examples/stackovf.sh b/examples/stackovf.sh
index 8916afc..43fd68e 100644
--- a/examples/stackovf.sh
+++ b/examples/stackovf.sh
@@ -7,8 +7,8 @@
 # On some systems the ulimit command is available in ksh or bash but not sh
 (exec 2>/dev/null; ulimit -HSs 300) || {
     for altshell in bash bsh ksh ; do
-       if (exec >/dev/null 2>&1; $altshell -c 'ulimit -HSs 300') && 
-                                                               test -z "$1" 
+       if (exec >/dev/null 2>&1; $altshell -c 'ulimit -HSs 300') &&
+                                                               test -z "$1"
        then
                echo "Using $altshell because it supports ulimit"
                exec $altshell $0 running-with-$altshell
@@ -45,7 +45,7 @@ then
        #test -n "$ulimitdashv" && ulimit -HSv 8000
        echo "Stack limit is `ulimit -s`K";
        echo "Heap limit  is `ulimit -d`K";
-       test -n "$ulimitdashv" && 
+       test -n "$ulimitdashv" &&
                echo "VMem limit  is `ulimit -v`K";
 else
        echo "Can't reset stack limit - this may take a while..."
@@ -61,11 +61,11 @@ else
     # See if stack overflow was diagnosed
     case "`cat $tmpfile`" in
     *overflow*)
-       echo "Test succeeded."; 
+       echo "Test succeeded.";
        exitcode=0
        ;;
     *ut*of*emory*)
-        echo "*** Test is INCONCLUSIVE (ran out of heap before stack 
overflow)";
+       echo "*** Test is INCONCLUSIVE (ran out of heap before stack overflow)";
        ;;
     *) echo "*** Test FAILED.  $M4 aborted unexpectedly.  Output:";
        ;;
diff --git a/gnulib b/gnulib
index 8fdb848..7cf183c 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 8fdb8486e14c433b2b277eb11c97e859b282e7d1
+Subproject commit 7cf183c33ef0c792b5c93dbb4ac5b7858ee03986
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index 1ad5a8d..d3e4d73 100644
--- a/m4/gnulib-cache.m4
+++ b/m4/gnulib-cache.m4
@@ -15,7 +15,7 @@
 
 
 # Specification in the form of a command-line invocation:
-#   gnulib-tool --import --dir=. --local-dir=local --lib=libm4 
--source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests 
--aux-dir=build-aux --with-tests --no-libtool --macro-prefix=M4 announce-gen 
assert autobuild avltree-oset binary-io clean-temp cloexec close-stream closein 
config-h dirname error execute fdl-1.3 fflush filenamecat flexmember fopen 
fopen-safer freadptr freadseek fseeko gendocs getopt git-version-gen 
gnumakefile gnupload gpl-3.0 hash intprops memchr2 memcmp2 memmem mkstemp 
obstack obstack-printf-posix pipe progname quote regex rename stdbool stdint 
stdlib-safer strtod strtol unlocked-io vasnprintf-posix verror version-etc 
version-etc-fsf wait-process xalloc xmemdup0 xprintf xvasprintf-posix
+#   gnulib-tool --import --dir=. --local-dir=local --lib=libm4 
--source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests 
--aux-dir=build-aux --with-tests --no-libtool --macro-prefix=M4 announce-gen 
assert autobuild avltree-oset binary-io clean-temp cloexec close-stream closein 
config-h dirname error execute fdl-1.3 fflush filenamecat flexmember fopen 
fopen-safer freadptr freadseek fseeko gendocs getopt git-version-gen 
gnumakefile gnupload gpl-3.0 hash intprops maintainer-makefile memchr2 memcmp2 
memmem mkstemp obstack obstack-printf-posix pipe progname quote regex rename 
snprintf-posix stdbool stdint stdlib-safer strtod strtol unlocked-io 
vasnprintf-posix verror version-etc version-etc-fsf wait-process xalloc 
xmemdup0 xprintf xvasprintf-posix
 
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([local])
@@ -50,6 +50,7 @@ gl_MODULES([
   gpl-3.0
   hash
   intprops
+  maintainer-makefile
   memchr2
   memcmp2
   memmem
@@ -61,6 +62,7 @@ gl_MODULES([
   quote
   regex
   rename
+  snprintf-posix
   stdbool
   stdint
   stdlib-safer
diff --git a/maint.mk b/maint.mk
deleted file mode 100644
index 5fa32a5..0000000
--- a/maint.mk
+++ /dev/null
@@ -1,199 +0,0 @@
-## maint.mk -- Makefile rules for m4 maintainers -*-Makefile-*-
-##
-## Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation
-##
-## This file is part of GNU M4.
-##
-## GNU M4 is free software: you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation, either version 3 of the License, or
-## (at your option) any later version.
-##
-## GNU M4 is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# This is reported not to work with make-3.79.1
-# ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-ME := maint.mk
-
-# Do not save the original name or timestamp in the .tar.gz file.
-# Use --rsyncable if available.
-gzip_rsyncable := \
-  $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null && echo 
--rsyncable)
-GZIP_ENV = '--no-name --best $(gzip_rsyncable)'
-
-GIT = git
-VC = $(GIT)
-VC-tag = git tag -s -m '$(VERSION)' -u $(gpg_key_ID)
-
-VERSION_REGEXP = $(subst .,\.,$(VERSION))
-my_distdir = $(PACKAGE)-$(VERSION)
-
-# Ensure that we use only the standard $(VAR) notation,
-# not @...@ in Makefile.am, now that we can rely on automake
-# to emit a definition for each substituted variable.
-makefile-check:
-       grep -nE '@[A-Z_0-9]+@' `find $(srcdir) -name Makefile.am` \
-         && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
-
-news-date-check: NEWS version-check
-       today=`date +%Y-%m-%d`;                                         \
-       if head $(srcdir)/NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')'     
\
-           >/dev/null; then                                            \
-         :;                                                            \
-       else                                                            \
-         echo "version or today's date is not in NEWS" 1>&2;           \
-         exit 1;                                                       \
-       fi
-
-changelog-check:
-       if head $(srcdir)/ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$'      
\
-           >/dev/null; then                                            \
-         :;                                                            \
-       else                                                            \
-         echo "$(VERSION) not in ChangeLog" 1>&2;                      \
-         exit 1;                                                       \
-       fi
-
-m4-check:
-       @grep -n 'AC_DEFUN([^[]' $(srcdir)/m4/*.m4 \
-         && { echo '$(ME): quote the first arg to AC_DEFUN' 1>&2; \
-              exit 1; } || :
-
-vc-diff-check:
-       (CDPATH=; cd $(srcdir) && $(VC) diff) > vc-diffs || :
-       if test -s vc-diffs; then                               \
-         cat vc-diffs;                                         \
-         echo "Some files are locally modified:" 1>&2;         \
-         exit 1;                                               \
-       else                                                    \
-         rm vc-diffs;                                          \
-       fi
-
-maintainer-distcheck:
-       $(MAKE) distcheck
-       $(MAKE) my-distcheck
-
-# Don't make a distribution if checks fail.
-# Also, make sure the NEWS file is up-to-date.
-vc-dist: $(local-check) vc-diff-check maintainer-distcheck
-       $(MAKE) dist
-
-# Use this to make sure we don't run these programs when building
-# from a virgin tgz file, below.
-null_AM_MAKEFLAGS = \
-  ACLOCAL=false \
-  AUTOCONF=false \
-  AUTOMAKE=false \
-  AUTOHEADER=false \
-  MAKEINFO=false
-
-# Use -Wformat -Werror to detect format-string/arg-list mismatches.
-# Also, check for shadowing problems with -Wshadow, and for pointer
-# arithmetic problems with -Wpointer-arith.
-# These CFLAGS are pretty strict.  If you build this target, you probably
-# have to have a recent version of gcc and glibc headers.
-TMPDIR ?= /tmp
-t=$(TMPDIR)/$(PACKAGE)/test
-my-distcheck: $(local-check) check
-       -rm -rf $(t)
-       mkdir -p $(t)
-       GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
-       cd $(t)/$(distdir)                              \
-         && ./configure                                \
-         && $(MAKE) CFLAGS='$(warn_cflags)'            \
-             AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)'       \
-         && $(MAKE) dvi                                \
-         && $(MAKE) check                              \
-         && $(MAKE) distclean
-       (cd $(t) && mv $(distdir) $(distdir).old        \
-         && $(AMTAR) -zxf - ) < $(distdir).tar.gz
-       diff -ur $(t)/$(distdir).old $(t)/$(distdir)
-       -rm -rf $(t)
-       @echo "========================"; \
-       echo "$(distdir).tar.gz is ready for distribution"; \
-       echo "========================"
-
-gnulib-version = $$(cd $(gnulib_dir) && git describe)
-
-announcement: NEWS ChangeLog $(rel-files)
-       @$(srcdir)/build-aux/announce-gen                               \
-           --release-type=$(RELEASE_TYPE)                              \
-           --package=$(PACKAGE)                                        \
-           --prev=$(PREV_VERSION)                                      \
-           --curr=$(VERSION)                                           \
-           --gpg-key-id=$(gpg_key_ID)                                  \
-           --news=$(srcdir)/NEWS                                       \
-           --bootstrap-tools=autoconf,automake,gnulib                  \
-           --gnulib-version=$(gnulib-version)                          \
-           $(addprefix --url-dir=, $(url_dir_list))
-
-.PHONY: alpha beta major
-alpha beta major: $(local-check) version-check
-       test $@ = major                                         \
-         && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \
-              || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
-         || :
-       $(MAKE) vc-dist
-       $(MAKE) news-date-check changelog-check
-       $(MAKE) deltas
-       $(MAKE) -s announcement RELEASE_TYPE=$@ > /tmp/announce-$(my_distdir)
-
-.PHONY: version-check
-version-check:
-       @case $(VERSION) in \
-       *[acegikmoqsuwy]) \
-         echo "Version \`$(VERSION)' is not a releasable version, please 
read:"; \
-         echo "    http://www.gnu.org/software/libtool/contribute.html";; \
-         exit 1; \
-         ;; \
-       esac
-       @if test -z "$(PREV_VERSION)"; \
-               then echo "PREV_VERSION is not set"; exit 1; fi
-
-.PHONY: prev-tarball
-prev-tarball: version-check
-## Make sure we have the previous release tarball in the tree.
-       @ofile="$(PACKAGE)-$(PREV_VERSION).tar.gz"; \
-       if test -f $$ofile; then :; \
-       else echo "Cannot make deltas without $$ofile"; exit 1; fi
-
-.PHONY: new-tarball
-new-tarball:
-## Make sure we have the new release tarball in the tree.
-       @ofile="$(PACKAGE)-$(VERSION).tar.gz"; \
-       if test -f $$ofile; then :; \
-       else echo "Cannot make deltas without $$ofile"; exit 1; fi
-
-.PHONY: deltas
-deltas: delta-diff
-
-DIFF = diff
-DIFF_OPTIONS = -ruNp
-
-.PHONY: delta-diff
-delta-diff: prev-tarball new-tarball
-## Unpack the tarballs somewhere to diff them
-       rm -rf delta-diff
-       mkdir delta-diff
-       ofile="../$(PACKAGE)-$(PREV_VERSION)-$(VERSION).diff.gz"; \
-       cd delta-diff \
-       && tar xzf "../$(PACKAGE)-$(PREV_VERSION).tar.gz" \
-       && tar xzf "../$(PACKAGE)-$(VERSION).tar.gz" \
-       && $(DIFF) $(DIFF_OPTIONS) \
-               $(PACKAGE)-$(PREV_VERSION) $(PACKAGE)-$(VERSION) \
-               | GZIP=$(GZIP_ENV) gzip -c > $$ofile
-       rm -rf delta-diff
-
-.PHONY: web-manual
-web-manual:
-       @cd '$(srcdir)/doc' ; \
-         $(SHELL) ../build-aux/gendocs.sh -o '$(abs_builddir)/doc/manual' \
-           --email $(PACKAGE_BUGREPORT) $(PACKAGE) \
-           "$(PACKAGE_NAME) - $(manual_title)"
-       @echo " *** Upload the doc/manual directory to web-cvs."
diff --git a/src/.cvsignore b/src/.cvsignore
deleted file mode 100644
index 9b593c0..0000000
--- a/src/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.deps
-*.o
-Makefile.in
-Makefile
-m4
-m4.exe
diff --git a/src/.gitignore b/src/.gitignore
deleted file mode 100644
index 9b593c0..0000000
--- a/src/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.deps
-*.o
-Makefile.in
-Makefile
-m4
-m4.exe
diff --git a/src/builtin.c b/src/builtin.c
index a28535b..191e05d 100644
--- a/src/builtin.c
+++ b/src/builtin.c
@@ -196,8 +196,8 @@ find_builtin_by_name (const char *name)
 {
   const builtin *bp;
 
-  for (bp = &builtin_tab[0]; bp->name != NULL; bp++)
-    if (strcmp (bp->name, name) == 0)
+  for (bp = &builtin_tab[0]; bp->name; bp++)
+    if (STREQ (bp->name, name))
       return bp;
   return bp + 1;
 }
diff --git a/src/m4.c b/src/m4.c
index ef244e3..0caf868 100644
--- a/src/m4.c
+++ b/src/m4.c
@@ -84,7 +84,7 @@ typedef struct macro_definition macro_definition;
 | behalf of CALLER (if any), otherwise at the global current       |
 | location.  If ERRNUM, decode the errno value that caused the      |
 | error.  If STATUS, exit immediately with that status.  If WARN,   |
-| prepend 'Warning: '.                                             |
+| prepend 'warning: '.                                             |
 `------------------------------------------------------------------*/
 
 static void
@@ -123,9 +123,9 @@ m4_verror_at_line (bool warn, int status, int errnum, const 
call_info *caller,
      for non-memory reasons (unlikely), then still use the original
      format.  */
   if (warn && macro)
-    full = xasprintf (_("Warning: %s: %s"), macro, format);
+    full = xasprintf (_("warning: %s: %s"), macro, format);
   else if (warn)
-    full = xasprintf (_("Warning: %s"), format);
+    full = xasprintf (_("warning: %s"), format);
   else if (macro)
     full = xasprintf (_("%s: %s"), macro, format);
   verror_at_line (status, errnum, line ? file : NULL, line,
@@ -184,7 +184,7 @@ static void
 stackovf_handler (void)
 {
   m4_error (EXIT_FAILURE, 0, NULL,
-           _("ERROR: stack overflow.  (Infinite define recursion?)"));
+           _("FATAL: stack overflow.  (Infinite define recursion?)"));
 }
 
 #endif /* USE_STACKOVF */
@@ -350,7 +350,7 @@ static const struct option long_options[] =
 static void
 process_file (const char *name)
 {
-  if (strcmp (name, "-") == 0)
+  if (STREQ (name, "-"))
     {
       /* If stdin is a terminal, we want to allow 'm4 - file -'
         to read input from stdin twice, like GNU cat.  Besides,
@@ -366,7 +366,7 @@ process_file (const char *name)
       FILE *fp = m4_path_search (name, &full_name);
       if (fp == NULL)
        {
-         error (0, errno, "cannot open %s",
+         error (0, errno, _("cannot open %s"),
                 quotearg_style (locale_quoting_style, name));
          /* Set the status to EXIT_FAILURE, even though we
             continue to process files after a missing file.  */
@@ -451,7 +451,7 @@ main (int argc, char *const *argv, char *const *envp)
        /* Compatibility junk: options that other implementations
           support, but which we ignore as no-ops and don't list in
           --help.  */
-       error (0, 0, "Warning: `m4 -%c' may be removed in a future release",
+       error (0, 0, _("warning: `m4 -%c' may be removed in a future release"),
               optchar);
        break;
 
@@ -496,7 +496,10 @@ main (int argc, char *const *argv, char *const *envp)
        break;
 
       case 'H':
-       hash_table_size = atol (optarg);
+        {
+         long tmp = strtol (optarg, NULL, 10);
+          hash_table_size = tmp;
+        }
        if (hash_table_size == 0)
          hash_table_size = HASHMAX;
        break;
@@ -506,7 +509,10 @@ main (int argc, char *const *argv, char *const *envp)
        break;
 
       case 'L':
-       nesting_limit = atoi (optarg);
+        {
+          long tmp = strtol (optarg, NULL, 10);
+          nesting_limit = tmp;
+        }
        break;
 
       case 'P':
@@ -531,12 +537,12 @@ main (int argc, char *const *argv, char *const *envp)
        if (seen_file)
          goto defer;
        if (debug_decode (optarg, SIZE_MAX) < 0)
-         error (0, 0, "bad debug flags: %s",
+         error (0, 0, _("bad debug flags: %s"),
                 quotearg_style (locale_quoting_style, optarg));
        break;
 
       case 'e':
-       error (0, 0, _("Warning: `%s' is deprecated, use `%s' instead"),
+       error (0, 0, _("warning: `%s' is deprecated, use `%s' instead"),
                       "-e", "-i");
        /* fall through */
       case 'i':
@@ -558,7 +564,7 @@ main (int argc, char *const *argv, char *const *envp)
        /* -o/--error-output are deprecated synonyms of --debugfile,
           so issue a warning.  Don't call debug_set_output here, as
           it has side effects.  */
-       error (0, 0, _("Warning: `%s' is deprecated, use `%s' instead"),
+       error (0, 0, _("warning: `%s' is deprecated, use `%s' instead"),
               optchar == 'o' ? "-o" : "--error-output", "--debugfile");
        debugfile = optarg;
        break;
@@ -633,7 +639,7 @@ main (int argc, char *const *argv, char *const *envp)
 
        case 'd':
          if (debug_decode (arg, SIZE_MAX) < 0)
-           error (0, 0, "bad debug flags: %s",
+           error (0, 0, _("bad debug flags: %s"),
                   quotearg_style (locale_quoting_style, optarg));
          break;
 
diff --git a/src/m4.h b/src/m4.h
index 5407d10..17184b2 100644
--- a/src/m4.h
+++ b/src/m4.h
@@ -581,6 +581,8 @@ void reload_frozen_state (const char *);
 # define DEBUG_SYM    1
 #endif
 
+/* Generic utilties.  */
+
 /* Convert a possibly-signed character to an unsigned character.  This is
    a bit safer than casting to unsigned char, since it catches some type
    errors that the cast doesn't.  */
@@ -589,3 +591,6 @@ static inline unsigned char to_uchar (char ch) { return ch; 
}
 #else
 # define to_uchar(C) ((unsigned char) (C))
 #endif
+
+/* Avoid negative logic when comparing two strings.  */
+#define STREQ(a, b) (strcmp (a, b) == 0)
diff --git a/src/output.c b/src/output.c
index 99a9f0a..e31f94b 100644
--- a/src/output.c
+++ b/src/output.c
@@ -1018,7 +1018,7 @@ freeze_diversions (FILE *file)
              if (file_stat.st_size < 0
                  || file_stat.st_size != (unsigned long int) file_stat.st_size)
                m4_error (EXIT_FAILURE, 0, NULL, _("diversion too large"));
-             xfprintf (file, "D%d,%lu\n", diversion->divnum,
+             xfprintf (file, "%c%d,%lu\n", 'D', diversion->divnum,
                        (unsigned long int) file_stat.st_size);
            }
 
diff --git a/src/stackovf.c b/src/stackovf.c
index 514e806..47164a8 100644
--- a/src/stackovf.c
+++ b/src/stackovf.c
@@ -1,6 +1,6 @@
 /* Detect stack overflow (when getrlimit and sigaction or sigvec are available)
 
-   Copyright (C) 1993, 1994, 2006, 2007, 2008 Free Software
+   Copyright (C) 1993, 1994, 2006, 2007, 2008, 2009 Free Software
    Foundation, Inc.
    Jim Avera <address@hidden>, October 1993.
 
@@ -79,7 +79,6 @@
 
 #include "m4.h"                        /* stdlib.h, xmalloc() */
 
-#include <assert.h>
 #include <sys/time.h>
 #include <sys/resource.h>
 #include <signal.h>
@@ -156,8 +155,8 @@ process_sigsegv (int signo, const char *p)
     char buf[140];
 
     snprintf (buf, sizeof buf,
-              "process_sigsegv: p=%#lx stackend=%#lx diff=%ld bot=%#lx\n",
-              (long) p, (long) stackend, (long) diff, (long) stackbot);
+             "process_sigsegv: p=%#lx stackend=%#lx diff=%ld bot=%#lx\n",
+             (long) p, (long) stackend, (long) diff, (long) stackbot);
     write (2, buf, strlen (buf));
   }
 #endif
@@ -292,7 +291,7 @@ Error - Do not know how to set up stack-ovf trap handler...
   /* Calculate the approximate expected addr for a stack-ovf trap.  */
 
   if (getrlimit (RLIMIT_STACK, &rl) < 0)
-    error (EXIT_FAILURE, errno, "getrlimit");
+    error (EXIT_FAILURE, errno, _("getrlimit"));
   stack_len = (rl.rlim_cur < rl.rlim_max ? rl.rlim_cur : rl.rlim_max);
   stackbot = (char *) argv;
   grows_upward = ((char *) &stack_len > stackbot);
@@ -363,7 +362,7 @@ Error - Do not know how to set up stack-ovf trap handler...
        free (ss.ss_sp);
        if (errno == ENOSYS)
          return;
-       error (EXIT_FAILURE, errno, "sigaltstack");
+       error (EXIT_FAILURE, errno, _("sigaltstack"));
       }
   }
 
@@ -385,7 +384,7 @@ Error - Do not know how to set up stack-ovf trap handler...
        free (stackbuf);
        if (errno == ENOSYS)
          return;
-       error (EXIT_FAILURE, errno, "sigstack");
+       error (EXIT_FAILURE, errno, _("sigstack"));
       }
   }
 
@@ -408,7 +407,7 @@ Error - Do not know how to set up stack-ovf trap handler...
   sigemptyset (&act.sa_mask);
   act.sa_flags = (SA_ONSTACK | SA_RESETHAND | SA_SIGINFO);
   if (sigaction (SIGSEGV, &act, NULL) < 0)
-    error (EXIT_FAILURE, errno, "sigaction");
+    error (EXIT_FAILURE, errno, _("sigaction"));
 
 #else /* ! HAVE_SIGACTION */
 
@@ -416,7 +415,7 @@ Error - Do not know how to set up stack-ovf trap handler...
   vec.sv_mask = 0;
   vec.sv_flags = (SV_ONSTACK | SV_RESETHAND);
   if (sigvec (SIGSEGV, &vec, NULL) < 0)
-    error (EXIT_FAILURE, errno, "sigvec");
+    error (EXIT_FAILURE, errno, _("sigvec"));
 
 #endif /* ! HAVE_SIGACTION */
 


hooks/post-receive
-- 
GNU M4 source repository




reply via email to

[Prev in Thread] Current Thread [Next in Thread]