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-154


From: Eric Blake
Subject: [SCM] GNU M4 source repository branch, branch-1.6, updated. v1.5.89a-154-g7dc48f1
Date: Thu, 07 Jan 2010 14:18:59 +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=7dc48f180aac7ce31282ba337a71167d40f9eda1

The branch, branch-1.6 has been updated
       via  7dc48f180aac7ce31282ba337a71167d40f9eda1 (commit)
       via  b30b61aa1be7659c155272135fa17a8d7528f80e (commit)
       via  e6869c6bcfbf4d6d30c536af3ef71bcf8fc5050c (commit)
       via  94cd4e6b3bdf9b672a7f3fdd3faa05e75c6224e9 (commit)
       via  cfec49993614e515543048521620fe3da0dac213 (commit)
       via  f0c112629a85426f24c881fdbb8da8ba0232938e (commit)
      from  da026e34279bffd8f29ff5325628a74fe80c5d0b (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 7dc48f180aac7ce31282ba337a71167d40f9eda1
Author: Eric Blake <address@hidden>
Date:   Thu Jan 7 06:25:50 2010 -0700

    Use correct license on auxiliary documentation.
    
    Finish the work started by commit 6e722223ea.
    
    * gnulib: Update to latest.
    * AUTHORS: Use GFDL 1.3, not 1.2.
    * README: Likewise.
    * THANKS: Likewise.
    * TODO: Likewise.
    * NEWS: Place under GFDL.
    * cfg.mk (old_NEWS_hash): Update.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 6ba66f1202d607726e72e17e1fc778cdafee1941)

commit b30b61aa1be7659c155272135fa17a8d7528f80e
Author: Eric Blake <address@hidden>
Date:   Tue Jan 5 15:19:14 2010 -0700

    Remove more TAB characters.
    
    * THANKS: Use space for alignment.
    * bootstrap: Likewise.
    * configure.ac: Likewise.
    * examples/stackovf.sh: Likewise.
    * src/builtin.c: Likewise.  Also update some stale comments.
    * 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.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 26291e22e0a2c6ffaf65b0c182ec6d6f6fb61cd5)

commit e6869c6bcfbf4d6d30c536af3ef71bcf8fc5050c
Author: Eric Blake <address@hidden>
Date:   Tue Jan 5 14:36:41 2010 -0700

    Use consistent comment style.
    
    * c-boxes.el: Delete.
    * Makefile.am (EXTRA_DIST): Drop unused file.
    * src/builtin.c: Reformat all old boxed comments into a more
    consistent style.  Fix some typos in the process.
    * 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/macro.c: Likewise.
    * src/output.c: Likewise.
    * src/symtab.c: Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 0a7af6da176dd12bcb96b52a6cbc60cea12202b6)

commit 94cd4e6b3bdf9b672a7f3fdd3faa05e75c6224e9
Author: Eric Blake <address@hidden>
Date:   Tue Jan 5 10:49:43 2010 -0700

    Security fix by requiring newer automake features.
    
    * configure.ac (AM_INIT_AUTOMAKE): Bump minimum to 1.11.1.
    (AC_PREREQ): Bump autoconf requirement to 2.62, per automake.
    * HACKING: Update minimum requirements.
    * NEWS: Document the fix.
    * bootstrap: Avoid out-of-date duplicated data.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit e673fde780548fcdd5bd13358cc5a8a46e27d8e0)

commit cfec49993614e515543048521620fe3da0dac213
Author: Eric Blake <address@hidden>
Date:   Mon Jan 4 14:29:24 2010 -0700

    Drop hard-coding of GPG id.
    
    * gnulib: Update to latest.
    * m4/gnulib-cache.m4: Regenerate.
    * cfg.mk (gnulib_dir, gnu_rel_host, url_dir_list, gpg_key_ID):
    Delete, now that maint.mk provides sensible defaults.
    (update-copyright-env): Don't let environment interfere with wrap
    column.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 30e611c67724bf8dafc01d65622242bcb354ed7e)

commit f0c112629a85426f24c881fdbb8da8ba0232938e
Author: Eric Blake <address@hidden>
Date:   Mon Jan 4 14:12:22 2010 -0700

    Update copyright year.
    
    All files impacted, via 'make update-copyright'.  Additionally:
    * .gitignore: Ignore backup files.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 5f42c4dabb6858601abce7b38ca78f4c3069f301)

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

Summary of changes:
 .gitignore           |    1 +
 AUTHORS              |    5 +-
 ChangeLog            |   67 ++++++-
 HACKING              |    8 +-
 Makefile.am          |    6 +-
 NEWS                 |   22 ++-
 README               |    4 +-
 THANKS               |  244 ++++++++++----------
 TODO                 |    5 +-
 acinclude.m4         |    2 +-
 bootstrap            |   27 ++-
 c-boxes.el           |  422 ---------------------------------
 cfg.mk               |   22 +--
 checks/Makefile.in   |    4 +-
 checks/check-them    |    4 +-
 checks/get-them      |    2 +-
 configure.ac         |   14 +-
 doc/Makefile.am      |    3 +-
 doc/m4.texinfo       |    2 +-
 examples/COPYING     |    2 +-
 examples/Makefile.am |    3 +-
 examples/stackovf.sh |    2 +-
 gnulib               |    2 +-
 lib/Makefile.am      |    2 +-
 m4/gnulib-cache.m4   |    2 +-
 src/Makefile.am      |    3 +-
 src/builtin.c        |  627 +++++++++++++++++++-------------------------------
 src/debug.c          |   96 +++-----
 src/eval.c           |   16 +-
 src/format.c         |   73 +++---
 src/freeze.c         |  168 ++++++--------
 src/input.c          |  459 +++++++++++++++---------------------
 src/m4.c             |   69 ++----
 src/m4.h             |  152 ++++++------
 src/macro.c          |  119 ++++------
 src/output.c         |  135 ++++-------
 src/path.c           |   14 +-
 src/stackovf.c       |    6 +-
 src/symtab.c         |   76 +++----
 tests/Makefile.am    |    2 +-
 40 files changed, 1090 insertions(+), 1802 deletions(-)
 delete mode 100644 c-boxes.el

diff --git a/.gitignore b/.gitignore
index edef086..2a97a86 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 *~
 *.a
+*.bak
 *.exe
 *.o
 *.orig
diff --git a/AUTHORS b/AUTHORS
index 56ad838..c0a0903 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -30,10 +30,11 @@ Joel E. Denny               address@hidden            
2009-08-18
 
 ========================================================================
 
-Copyright (C) 2000, 2006, 2007, 2009 Free Software Foundation, Inc.
+Copyright (C) 2000, 2006, 2007, 2009, 2010 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
+under the terms of the GNU Free Documentation License, Version 1.3 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
diff --git a/ChangeLog b/ChangeLog
index aa2a36c..3af316c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,67 @@
+2010-01-07  Eric Blake  <address@hidden>
+
+       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  <address@hidden>
+
+       Remove more TAB characters.
+       * THANKS: Use space for alignment.
+       * bootstrap: Likewise.
+       * configure.ac: Likewise.
+       * examples/stackovf.sh: Likewise.
+       * src/builtin.c: Likewise.  Also update some stale comments.
+       * 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.
+
+       Use consistent comment style.
+       * c-boxes.el: Delete.
+       * Makefile.am (EXTRA_DIST): Drop unused file.
+       * src/builtin.c: Reformat all old boxed comments into a more
+       consistent style.  Fix some typos in the process.
+       * 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/macro.c: Likewise.
+       * src/output.c: Likewise.
+       * src/symtab.c: Likewise.
+
+       Security fix by requiring newer automake features.
+       * configure.ac (AM_INIT_AUTOMAKE): Bump minimum to 1.11.1.
+       (AC_PREREQ): Bump autoconf requirement to 2.62, per automake.
+       * HACKING: Update minimum requirements.
+       * NEWS: Document the fix.
+       * bootstrap: Avoid out-of-date duplicated data.
+
+       Drop hard-coding of GPG id.
+       * gnulib: Update to latest.
+       * m4/gnulib-cache.m4: Regenerate.
+       * cfg.mk (gnulib_dir, gnu_rel_host, url_dir_list, gpg_key_ID):
+       Delete, now that maint.mk provides sensible defaults.
+       (update-copyright-env): Don't let environment interfere with wrap
+       column.
+
+       Update copyright year.
+       All files impacted, via 'make update-copyright'.  Additionally:
+       * .gitignore: Ignore backup files.
+
 2009-12-29  Eric Blake  <address@hidden>
 
        Document new indentation policy.
@@ -6406,7 +6470,8 @@ Mon Jan 22 21:08:52 1990  Rene' Seindal (seindal at 
diku.dk)
        End:
 
        Copyright (C) 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2003,
-       2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+       2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+       Inc.
 
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice
diff --git a/HACKING b/HACKING
index c9ab48e..c7dec76 100644
--- a/HACKING
+++ b/HACKING
@@ -41,9 +41,9 @@ and is not part of a release distribution.
 * The master M4 repository is stored in git.
 
 * Before you can build from git, you need to bootstrap.  This requires:
-  - A pre-installed version of GNU M4 1.4.5 or later, built from a package
-  - Autoconf 2.60 or later
-  - Automake 1.10b or later
+  - A pre-installed version of GNU M4 1.4.6 or later, built from a package
+  - Autoconf 2.62 or later
+  - Automake 1.11.1 or later
   - Help2man 1.29 or later
   - Xz 4.999.8beta or later (from <http://tukaani.org/xz/>)
   - Texinfo 4.8 or later
@@ -318,7 +318,7 @@ yyyy-mm-dd  Name of Author  <address@hidden>  (tiny change)
   After making edits, mail the diff to <address@hidden>.
 
 -----------
-Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
 Foundation, Inc.
 
 The canonical source of this file is maintained with the
diff --git a/Makefile.am b/Makefile.am
index 1d50592..425bcc8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
 ## Makefile.am - template for generating Makefile via Automake
 ##
-## Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-## Free Software Foundation, Inc.
+## Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+## 2010 Free Software Foundation, Inc.
 ##
 ## This file is part of GNU M4.
 ##
@@ -26,7 +26,7 @@ syntax_check_exceptions =             \
   .x-sc_prohibit_tab_based_indentation \
   .x-update-copyright
 
-EXTRA_DIST = bootstrap c-boxes.el cfg.mk maint.mk \
+EXTRA_DIST = bootstrap cfg.mk maint.mk \
        .prev-version .version m4/gnulib-cache.m4 $(syntax_check_exceptions)
 DISTCLEANFILES = stamp-h
 ## maintainer-clean should remove as much as possible that ./bootstrap can
diff --git a/NEWS b/NEWS
index 63da9f9..7039e31 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,4 @@
 GNU M4 NEWS - User visible changes.
-Copyright (C) 1992, 1993, 1994, 2004, 2005, 2006, 2007, 2008, 2009 Free
-Software Foundation, Inc.
 
 * Noteworthy changes in Version 1.6 (????-??-??) [stable]
   Released by ????, based on git versions 1.4.10b.x-* and 1.5.*
@@ -149,7 +147,7 @@ contains the following beta features that were deemed worth 
deferring until
 
 ** A number of portability improvements inherited from gnulib.
 
-* Noteworthy changes in Version 1.4.14 (2009-??-??) [stable]
+* Noteworthy changes in Version 1.4.14 (2010-??-??) [stable]
   Released by Eric Blake, based on git version 1.4.13.*
 
 ** Fix regression introduced in 1.4.12 where executing with stdout closed
@@ -159,6 +157,10 @@ contains the following beta features that were deemed 
worth deferring until
    closed file descriptors could interfere with child execution, and where
    a child status of 127 made m4 print a spurious message to stderr.
 
+** Fix a security hole in 'make dist', present since at least M4 1.4, that
+   could affect anybody attempting to redistribute modified sources (see
+   Automake CVE-2009-4029).
+
 ** A number of portability improvements inherited from gnulib.
 
 * Noteworthy changes in Version 1.4.13 (2009-04-01) [stable]
@@ -819,8 +821,20 @@ not used.  With -G, `unix' is still defined.
 Version 0.50 - January 1990, by Rene' Seindal
 
 * Initial beta release.
-
+
+========================================================================
+
 Local Variables:
 mode: outline
 fill-column: 75
 End:
+
+Copyright (C) 1992, 1993, 1994, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+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.3 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/README b/README
index 66807c8..fc25537 100644
--- a/README
+++ b/README
@@ -53,11 +53,11 @@ solution, from which the problem might be uneasy to infer.
 
 ========================================================================
 
-Copyright (C) 2000, 2005, 2006, 2007, 2008, 2009 Free Software
+Copyright (C) 2000, 2005, 2006, 2007, 2008, 2009, 2010 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
+under the terms of the GNU Free Documentation License, Version 1.3 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
diff --git a/THANKS b/THANKS
index 95e841f..8ace38c 100644
--- a/THANKS
+++ b/THANKS
@@ -5,125 +5,125 @@ further contributed to GNU M4 by reporting problems, 
suggesting
 various improvements or submitting actual code.  Here is a list of
 these people.  Help me keep it complete and exempt of errors.
 
-Akiko Matsushita       address@hidden
-Akim Demaille          address@hidden
-Alan Magnuson          address@hidden
-Albert Chin            address@hidden
-Alexander Lehmann      address@hidden
-Amos Shapira           address@hidden
-Andreas Büning                address@hidden
-Andreas Gustafsson     address@hidden
-Andreas Schultz                address@hidden
-Andreas Schwab         address@hidden
-Assar Westerlund       address@hidden
-Ben A. Mesander                address@hidden
-Bengt Mertensson       address@hidden
-Bernhard Daeubler      address@hidden
-Bjorn R. Bjornsson     address@hidden
-Bob Badour             address@hidden
-Bob Proulx             address@hidden
-Brendan Kehoe          address@hidden
-Bruno Haible           address@hidden
-Cesar Strauss          address@hidden
-Chris McGuire          address@hidden
-Damian Menscher                address@hidden
-Dan Jacobson           address@hidden
-Daniel Richard G.      address@hidden
-David J. MacKenzie     address@hidden
-David Perlin           address@hidden
-Elbert Pol             address@hidden
-Elias Benali           address@hidden
-Erez Zadok             address@hidden
-Eric Allman            address@hidden
-Eric Backus            address@hidden
-Eric Blake             address@hidden
-Fernando Carrijo       address@hidden
-François Pinard               address@hidden
-Frank Schwidom         address@hidden
-Gary V. Vaughan                address@hidden
-Geoff Russell          address@hidden
-Giovanni Toffetti      address@hidden
-Greg A. Woods          address@hidden
-Hal Peterson           address@hidden
-Hoang Uong             address@hidden
-Ian Taylor             address@hidden
-Ilya N. Golubev                address@hidden
-Jason Merrill          address@hidden
-Jay Krell              address@hidden
-Jean-Charles Longuet   address@hidden
-Jens Rehsack           address@hidden
-Jim Avera              address@hidden
-Jim Kingdom            address@hidden
-Jim Meyering           address@hidden
-Joel E. Denny          address@hidden
-Joel Sherrill          address@hidden
-John Brzustowski       address@hidden
-John David Anglin      address@hidden
-John Gatewood Ham      address@hidden
-Josef T. Burger                address@hidden
-Joseph E. Sacco                address@hidden
-Karl Berry             address@hidden
-Karl Nelson            address@hidden
-Karl Vogel             address@hidden
-Kaveh R. Ghazi         address@hidden
-Konrad Schwarz         address@hidden
-Kristine Lund          address@hidden
-Krste Asanovic         address@hidden
-Lawson Chan            address@hidden
-Marion Hakanson                address@hidden
-Mark Seiden            address@hidden
-Martin Koeppe          address@hidden
-Matt Kraai             address@hidden
-Matthew Woehlke                address@hidden
-Matthias Rabe          address@hidden
-Mehul Sanghvi          address@hidden
-Michael Fetterman      address@hidden
-Michael L. Welcome     address@hidden
-Mike Frysinger         address@hidden
-Mike Lijewski          address@hidden
-Mike R.                        address@hidden
-Mikhail Teterin                address@hidden
-Nelson H. F. Beebe     address@hidden
-Nick S. Kanakakorn     address@hidden
-Nicolas Lichtmaier     address@hidden
-Nicolas Pioch          address@hidden
-Noah Friedman          address@hidden
-Noah Misch             address@hidden
-Paolo Bonzini          address@hidden
-Paul Eggert            address@hidden
-Pete Chown             address@hidden
-Pierre Gaumond         address@hidden
-Pierre Mathieu         address@hidden
-Ralf Wildenhues                address@hidden
-René Seindal          address@hidden
-Richard A Nelson       address@hidden
-Richard Stallman       address@hidden
-Robert Bernstein       address@hidden
-Robert Bihlmeyer       address@hidden
-Roland H. Pesch                address@hidden
-Roland McGrath         address@hidden
-Ronny Peine            address@hidden
-Sami Liedes            address@hidden
-Santiago Vila          address@hidden
-Scott Bartram          deneb!scottb
-Sergey Poznyakoff      address@hidden
-Simon Leinen           address@hidden
-Skip Montanaro         address@hidden
-Stepan Kasal           address@hidden
-Stephen Perkins                address@hidden
-Steve Williamson       address@hidden
-Steven Augart          address@hidden
-Thomas Klausner                address@hidden
-Thorsten Ohl           address@hidden
-Tom G. Christensen     address@hidden
-Tom McConnell          address@hidden
-Tom Quinn              address@hidden
-Tom Tromey             address@hidden
-Ulrich Drepper         address@hidden
-Vern Paxson            address@hidden
-Vincent Lonngren       address@hidden
-Vivek P. Singhal       address@hidden
-Walter Wong            address@hidden
+Akiko Matsushita        address@hidden
+Akim Demaille           address@hidden
+Alan Magnuson           address@hidden
+Albert Chin             address@hidden
+Alexander Lehmann       address@hidden
+Amos Shapira            address@hidden
+Andreas Büning          address@hidden
+Andreas Gustafsson      address@hidden
+Andreas Schultz         address@hidden
+Andreas Schwab          address@hidden
+Assar Westerlund        address@hidden
+Ben A. Mesander         address@hidden
+Bengt Mertensson        address@hidden
+Bernhard Daeubler       address@hidden
+Bjorn R. Bjornsson      address@hidden
+Bob Badour              address@hidden
+Bob Proulx              address@hidden
+Brendan Kehoe           address@hidden
+Bruno Haible            address@hidden
+Cesar Strauss           address@hidden
+Chris McGuire           address@hidden
+Damian Menscher         address@hidden
+Dan Jacobson            address@hidden
+Daniel Richard G.       address@hidden
+David J. MacKenzie      address@hidden
+David Perlin            address@hidden
+Elbert Pol              address@hidden
+Elias Benali            address@hidden
+Erez Zadok              address@hidden
+Eric Allman             address@hidden
+Eric Backus             address@hidden
+Eric Blake              address@hidden
+Fernando Carrijo        address@hidden
+François Pinard         address@hidden
+Frank Schwidom          address@hidden
+Gary V. Vaughan         address@hidden
+Geoff Russell           address@hidden
+Giovanni Toffetti       address@hidden
+Greg A. Woods           address@hidden
+Hal Peterson            address@hidden
+Hoang Uong              address@hidden
+Ian Taylor              address@hidden
+Ilya N. Golubev         address@hidden
+Jason Merrill           address@hidden
+Jay Krell               address@hidden
+Jean-Charles Longuet    address@hidden
+Jens Rehsack            address@hidden
+Jim Avera               address@hidden
+Jim Kingdom             address@hidden
+Jim Meyering            address@hidden
+Joel E. Denny           address@hidden
+Joel Sherrill           address@hidden
+John Brzustowski        address@hidden
+John David Anglin       address@hidden
+John Gatewood Ham       address@hidden
+Josef T. Burger         address@hidden
+Joseph E. Sacco         address@hidden
+Karl Berry              address@hidden
+Karl Nelson             address@hidden
+Karl Vogel              address@hidden
+Kaveh R. Ghazi          address@hidden
+Konrad Schwarz          address@hidden
+Kristine Lund           address@hidden
+Krste Asanovic          address@hidden
+Lawson Chan             address@hidden
+Marion Hakanson         address@hidden
+Mark Seiden             address@hidden
+Martin Koeppe           address@hidden
+Matt Kraai              address@hidden
+Matthew Woehlke         address@hidden
+Matthias Rabe           address@hidden
+Mehul Sanghvi           address@hidden
+Michael Fetterman       address@hidden
+Michael L. Welcome      address@hidden
+Mike Frysinger          address@hidden
+Mike Lijewski           address@hidden
+Mike R.                 address@hidden
+Mikhail Teterin         address@hidden
+Nelson H. F. Beebe      address@hidden
+Nick S. Kanakakorn      address@hidden
+Nicolas Lichtmaier      address@hidden
+Nicolas Pioch           address@hidden
+Noah Friedman           address@hidden
+Noah Misch              address@hidden
+Paolo Bonzini           address@hidden
+Paul Eggert             address@hidden
+Pete Chown              address@hidden
+Pierre Gaumond          address@hidden
+Pierre Mathieu          address@hidden
+Ralf Wildenhues         address@hidden
+René Seindal            address@hidden
+Richard A Nelson        address@hidden
+Richard Stallman        address@hidden
+Robert Bernstein        address@hidden
+Robert Bihlmeyer        address@hidden
+Roland H. Pesch         address@hidden
+Roland McGrath          address@hidden
+Ronny Peine             address@hidden
+Sami Liedes             address@hidden
+Santiago Vila           address@hidden
+Scott Bartram           deneb!scottb
+Sergey Poznyakoff       address@hidden
+Simon Leinen            address@hidden
+Skip Montanaro          address@hidden
+Stepan Kasal            address@hidden
+Stephen Perkins         address@hidden
+Steve Williamson        address@hidden
+Steven Augart           address@hidden
+Thomas Klausner         address@hidden
+Thorsten Ohl            address@hidden
+Tom G. Christensen      address@hidden
+Tom McConnell           address@hidden
+Tom Quinn               address@hidden
+Tom Tromey              address@hidden
+Ulrich Drepper          address@hidden
+Vern Paxson             address@hidden
+Vincent Lonngren        address@hidden
+Vivek P. Singhal        address@hidden
+Walter Wong             address@hidden
 
 ========================================================================
 
@@ -131,11 +131,11 @@ Local Variables:
 coding: utf-8
 End:
 
-Copyright (C) 2000, 2006, 2007, 2008, 2009 Free Software Foundation,
-Inc.
+Copyright (C) 2000, 2006, 2007, 2008, 2009, 2010 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
+under the terms of the GNU Free Documentation License, Version 1.3 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
diff --git a/TODO b/TODO
index 134f4c3..5964d1f 100644
--- a/TODO
+++ b/TODO
@@ -37,10 +37,11 @@ mode: outline
 outline-regexp: " *[-+*.] \\|"
 End:
 
-Copyright (C) 2000, 2006, 2007, 2009 Free Software Foundation, Inc.
+Copyright (C) 2000, 2006, 2007, 2009, 2010 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
+under the terms of the GNU Free Documentation License, Version 1.3 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
diff --git a/acinclude.m4 b/acinclude.m4
index cb4fc2f..4322e94 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1,5 +1,5 @@
 # Local additions to Autoconf macros.
-# Copyright (C) 1992, 1994, 2004, 2006, 2008, 2009 Free Software
+# Copyright (C) 1992, 1994, 2004, 2006, 2008, 2009, 2010 Free Software
 # Foundation, Inc.
 # Francois Pinard <address@hidden>, 1992.
 #
diff --git a/bootstrap b/bootstrap
index 7addfd3..058eb1c 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,9 +1,9 @@
 #! /bin/sh
 
-# bootstrap (GNU M4) version 2009-12-14
+# bootstrap (GNU M4) version 2010-01-05
 # Written by Gary V. Vaughan  <address@hidden>
 
-# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
 # Foundation, Inc.
 
 # This file is part of GNU M4.
@@ -31,10 +31,11 @@
 # locate the right tools:
 #   AUTORECONF, CONFIG_SHELL, GNULIB_SRCDIR, M4, RM, SED
 
-# This script bootstraps a git or CVS checkout of GNU M4 by correctly
-# calling out to parts of the GNU Build Platform.  Currently this
-# requires GNU Autoconf 2.60, GNU Automake 1.10.1, and bleeding edge
-# git or CVS snapshots of GNU Gnulib.
+# This script bootstraps a git checkout of GNU M4 by correctly calling
+# out to parts of the GNU Build Platform.  See HACKING for a list of
+# prerequisite tools and versions required.  If you are re-running
+# bootstrap on a release tarball rather than using a git checkout,
+# then see the release announcement for the prerequisite tools used.
 
 # Report bugs to <address@hidden>
 
@@ -188,13 +189,13 @@ func_update ()
     shift
     case $opt in
       # Separate optargs to short options:
-      -f|--force)      vcs_only_file=                                  ;;
-      -\?|-h)          func_usage                                      ;;
-      --help)          func_help                                       ;;
-      --version)       func_version                                    ;;
-      --)              break                                           ;;
-      -*)              func_fatal_help "unrecognized option \`$opt'"   ;;
-      *)               set -- "$opt" ${1+"$@"};        break           ;;
+      -f|--force)       vcs_only_file=                                  ;;
+      -\?|-h)           func_usage                                      ;;
+      --help)           func_help                                       ;;
+      --version)        func_version                                    ;;
+      --)               break                                           ;;
+      -*)               func_fatal_help "unrecognized option \`$opt'"   ;;
+      *)                set -- "$opt" ${1+"$@"};        break           ;;
     esac
   done
 
diff --git a/c-boxes.el b/c-boxes.el
deleted file mode 100644
index 0dcd1fc..0000000
--- a/c-boxes.el
+++ /dev/null
@@ -1,422 +0,0 @@
-;;; Boxed comments for C mode.
-;;; Copyright (C) 1991, 1992, 1993, 1994, 2008, 2009 Free Software
-;;; Foundation, Inc.
-;;; Francois Pinard <address@hidden>, April 1991.
-;;;
-;;; 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/>.
-
-;;; I often refill paragraphs inside C comments, while stretching or
-;;; shrinking the surrounding box as needed.  This is a real pain to
-;;; do by hand.  Here is the code I made to ease my life on this,
-;;; usable from within GNU Emacs.  It would not be fair giving all
-;;; sources for a product without also giving the means for nicely
-;;; modifying them.
-;;;
-;;; The function rebox-c-comment adjust comment boxes without
-;;; refilling comment paragraphs, while reindent-c-comment adjust
-;;; comment boxes after refilling.  Numeric prefixes are used to add,
-;;; remove, or change the style of the box surrounding the comment.
-;;; Since refilling paragraphs in C mode does make sense only for
-;;; comments, this code redefines the M-q command in C mode.  I use
-;;; this hack by putting, in my .emacs file:
-;;;
-;;;    (setq c-mode-hook
-;;;          '(lambda ()
-;;;             (define-key c-mode-map "\M-q" 'reindent-c-comment)))
-;;;    (autoload 'rebox-c-comment "c-boxes" nil t)
-;;;    (autoload 'reindent-c-comment "c-boxes" nil t)
-;;;
-;;; The cursor should be within a comment before any of these
-;;; commands, or else it should be between two comments, in which case
-;;; the command applies to the next comment.  When the command is
-;;; given without prefix, the current comment box type is recognized
-;;; and preserved.  Given 0 as a prefix, the comment box disappears
-;;; and the comment stays between a single opening `/*' and a single
-;;; closing `*/'.  Given 1 or 2 as a prefix, a single or doubled lined
-;;; comment box is forced.  Given 3 as a prefix, a Taarna style box is
-;;; forced, but you do not even want to hear about those.  When a
-;;; negative prefix is given, the absolute value is used, but the
-;;; default style is changed.  Any other value (like C-u alone) forces
-;;; the default box style.
-;;;
-;;; I observed rounded corners first in some code from Warren Tucker
-;;; <address@hidden>.
-
-(defvar c-box-default-style 'single "*Preferred style for box comments.")
-(defvar c-mode-taarna-style nil "*Non-nil for Taarna team C-style.")
-
-;;; Set or reset the Taarna team's own way for a C style.
-
-(defun taarna-mode ()
-  (interactive)
-  (if c-mode-taarna-style
-      (progn
-
-        (setq c-mode-taarna-style nil)
-        (setq c-indent-level 2)
-        (setq c-continued-statement-offset 2)
-        (setq c-brace-offset 0)
-        (setq c-argdecl-indent 5)
-        (setq c-label-offset -2)
-        (setq c-tab-always-indent t)
-        (setq c-box-default-style 'single)
-        (message "C mode: GNU style"))
-
-    (setq c-mode-taarna-style t)
-    (setq c-indent-level 4)
-    (setq c-continued-statement-offset 4)
-    (setq c-brace-offset -4)
-    (setq c-argdecl-indent 4)
-    (setq c-label-offset -4)
-    (setq c-tab-always-indent t)
-    (setq c-box-default-style 'taarna)
-    (message "C mode: Taarna style")))
-
-;;; Return the minimum value of the left margin of all lines, or -1 if
-;;; all lines are empty.
-
-(defun buffer-left-margin ()
-  (let ((margin -1))
-    (goto-char (point-min))
-    (while (not (eobp))
-      (skip-chars-forward " \t")
-      (if (not (looking-at "\n"))
-          (setq margin
-                (if (< margin 0)
-                    (current-column)
-                  (min margin (current-column)))))
-      (forward-line 1))
-    margin))
-
-;;; Return the maximum value of the right margin of all lines.  Any
-;;; sentence ending a line has a space guaranteed before the margin.
-
-(defun buffer-right-margin ()
-  (let ((margin 0) period)
-    (goto-char (point-min))
-    (while (not (eobp))
-      (end-of-line)
-      (if (bobp)
-          (setq period 0)
-        (backward-char 1)
-        (setq period (if (looking-at "[.?!]") 1 0))
-        (forward-char 1))
-      (setq margin (max margin (+ (current-column) period)))
-      (forward-char 1))
-    margin))
-
-;;; Add, delete or adjust a C comment box.  If FLAG is nil, the
-;;; current boxing style is recognized and preserved.  When 0, the box
-;;; is removed; when 1, a single lined box is forced; when 2, a double
-;;; lined box is forced; when 3, a Taarna style box is forced.  If
-;;; negative, the absolute value is used, but the default style is
-;;; changed.  For any other value (like C-u), the default style is
-;;; forced.  If REFILL is not nil, refill the comment paragraphs prior
-;;; to reboxing.
-
-(defun rebox-c-comment-engine (flag refill)
-  (save-restriction
-    (let ((undo-list buffer-undo-list)
-          (marked-point (point-marker))
-          (saved-point (point))
-          box-style left-margin right-margin)
-
-      ;; First, find the limits of the block of comments following or
-      ;; enclosing the cursor, or return an error if the cursor is not
-      ;; within such a block of comments, narrow the buffer, and
-      ;; untabify it.
-
-      ;; - insure the point is into the following comment, if any
-
-      (skip-chars-forward " \t\n")
-      (if (looking-at "/\\*")
-          (forward-char 2))
-
-      (let ((here (point)) start end temp)
-
-        ;; - identify a minimal comment block
-
-        (search-backward "/*")
-        (setq temp (point))
-        (beginning-of-line)
-        (setq start (point))
-        (skip-chars-forward " \t")
-        (if (< (point) temp)
-            (progn
-              (goto-char saved-point)
-              (error "text before comment's start")))
-        (search-forward "*/")
-        (setq temp (point))
-        (end-of-line)
-        (if (looking-at "\n")
-            (forward-char 1))
-        (setq end (point))
-        (skip-chars-backward " \t\n")
-        (if (> (point) temp)
-            (progn
-              (goto-char saved-point)
-              (error "text after comment's end")))
-        (if (< end here)
-            (progn
-              (goto-char saved-point)
-              (error "outside any comment block")))
-
-        ;; - try to extend the comment block backwards
-
-        (goto-char start)
-        (while (and (not (bobp))
-                    (progn (previous-line 1)
-                           (beginning-of-line)
-                           (looking-at "[ \t]*/\\*.*\\*/[ \t]*$")))
-          (setq start (point)))
-
-        ;; - try to extend the comment block forward
-
-        (goto-char end)
-        (while (looking-at "[ \t]*/\\*.*\\*/[ \t]*$")
-          (forward-line 1)
-          (beginning-of-line)
-          (setq end (point)))
-
-        ;; - narrow to the whole block of comments
-
-        (narrow-to-region start end))
-
-      ;; Second, remove all the comment marks, and move all the text
-      ;; rigidly to the left to insure the left margin stays at the
-      ;; same place.  At the same time, recognize and save the box
-      ;; style in BOX-STYLE.
-
-      (let ((previous-margin (buffer-left-margin))
-            actual-margin)
-
-        ;; - remove all comment marks
-
-        (goto-char (point-min))
-        (replace-regexp "^\\([ \t]*\\)/\\*" "\\1  ")
-        (goto-char (point-min))
-        (replace-regexp "^\\([ \t]*\\)|" "\\1 ")
-        (goto-char (point-min))
-        (replace-regexp "\\(\\*/\\||\\)[ \t]*" "")
-        (goto-char (point-min))
-        (replace-regexp "\\*/[ \t]*/\\*" " ")
-
-        ;; - remove the first and last dashed lines
-
-        (setq box-style 'plain)
-        (goto-char (point-min))
-        (if (looking-at "^[ \t]*-*[.\+\\]?[ \t]*\n")
-            (progn
-              (setq box-style 'single)
-              (replace-match ""))
-          (if (looking-at "^[ \t]*=*[.\+\\]?[ \t]*\n")
-              (progn
-                (setq box-style 'double)
-                (replace-match ""))))
-        (goto-char (point-max))
-        (previous-line 1)
-        (beginning-of-line)
-        (if (looking-at "^[ \t]*[`\+\\]?*[-=]+[ \t]*\n")
-            (progn
-              (if (eq box-style 'plain)
-                  (setq box-style 'taarna))
-              (replace-match "")))
-
-        ;; - remove all spurious whitespace
-
-        (goto-char (point-min))
-        (replace-regexp "[ \t]+$" "")
-        (goto-char (point-min))
-        (if (looking-at "\n+")
-            (replace-match ""))
-        (goto-char (point-max))
-        (skip-chars-backward "\n")
-        (if (looking-at "\n\n+")
-            (replace-match "\n"))
-        (goto-char (point-min))
-        (replace-regexp "\n\n\n+" "\n\n")
-
-        ;; - move the text left is adequate
-
-        (setq actual-margin (buffer-left-margin))
-        (if (not (= previous-margin actual-margin))
-            (indent-rigidly (point-min) (point-max)
-                            (- previous-margin actual-margin))))
-
-      ;; Third, select the new box style from the old box style and
-      ;; the argument, choose the margins for this style and refill
-      ;; each paragraph.
-
-      ;; - modify box-style only if flag is defined
-
-      (if flag
-          (setq box-style
-                (cond ((eq flag 0) 'plain)
-                      ((eq flag 1) 'single)
-                      ((eq flag 2) 'double)
-                      ((eq flag 3) 'taarna)
-                      ((eq flag '-) (setq c-box-default-style 'plain) 'plain)
-                      ((eq flag -1) (setq c-box-default-style 'single) 'single)
-                      ((eq flag -2) (setq c-box-default-style 'double) 'double)
-                      ((eq flag -3) (setq c-box-default-style 'taarna) 'taarna)
-                      (t c-box-default-style))))
-
-      ;; - compute the left margin
-
-      (setq left-margin (buffer-left-margin))
-
-      ;; - temporarily set the fill prefix and column, then refill
-
-      (untabify (point-min) (point-max))
-
-      (if refill
-          (let ((fill-prefix (make-string left-margin ? ))
-                (fill-column (- fill-column
-                                (if (memq box-style '(single double)) 4 6))))
-            (fill-region (point-min) (point-max))))
-
-      ;; - compute the right margin after refill
-
-      (setq right-margin (buffer-right-margin))
-
-      ;; Fourth, put the narrowed buffer back into a comment box,
-      ;; according to the value of box-style.  Values may be:
-      ;;    plain: insert between a single pair of comment delimiters
-      ;;    single: complete box, overline and underline with dashes
-      ;;    double: complete box, overline and underline with equal signs
-      ;;    taarna: comment delimiters on each line, underline with dashes
-
-      ;; - move the right margin to account for left inserts
-
-      (setq right-margin (+ right-margin
-                            (if (memq box-style '(single double))
-                                2
-                              3)))
-
-      ;; - construct the box comment, from top to bottom
-
-      (goto-char (point-min))
-      (cond ((eq box-style 'plain)
-
-             ;; - construct a plain style comment
-
-             (skip-chars-forward " " (+ (point) left-margin))
-             (insert (make-string (- left-margin (current-column)) ? )
-                     "/* ")
-             (end-of-line)
-             (forward-char 1)
-             (while (not (eobp))
-               (skip-chars-forward " " (+ (point) left-margin))
-               (insert (make-string (- left-margin (current-column)) ? )
-                       "   ")
-               (end-of-line)
-               (forward-char 1))
-             (backward-char 1)
-             (insert "  */"))
-            ((eq box-style 'single)
-
-             ;; - construct a single line style comment
-
-             (indent-to left-margin)
-             (insert "/*")
-             (insert (make-string (- right-margin (current-column)) ?-)
-                     "-.\n")
-             (while (not (eobp))
-               (skip-chars-forward " " (+ (point) left-margin))
-               (insert (make-string (- left-margin (current-column)) ? )
-                       "| ")
-               (end-of-line)
-               (indent-to right-margin)
-               (insert " |")
-               (forward-char 1))
-             (indent-to left-margin)
-             (insert "`")
-             (insert (make-string (- right-margin (current-column)) ?-)
-                     "*/\n"))
-            ((eq box-style 'double)
-
-             ;; - construct a double line style comment
-
-             (indent-to left-margin)
-             (insert "/*")
-             (insert (make-string (- right-margin (current-column)) ?=)
-                     "=\\\n")
-             (while (not (eobp))
-               (skip-chars-forward " " (+ (point) left-margin))
-               (insert (make-string (- left-margin (current-column)) ? )
-                       "| ")
-               (end-of-line)
-               (indent-to right-margin)
-               (insert " |")
-               (forward-char 1))
-             (indent-to left-margin)
-             (insert "\\")
-             (insert (make-string (- right-margin (current-column)) ?=)
-                     "*/\n"))
-            ((eq box-style 'taarna)
-
-             ;; - construct a Taarna style comment
-
-             (while (not (eobp))
-               (skip-chars-forward " " (+ (point) left-margin))
-               (insert (make-string (- left-margin (current-column)) ? )
-                       "/* ")
-               (end-of-line)
-               (indent-to right-margin)
-               (insert " */")
-               (forward-char 1))
-             (indent-to left-margin)
-             (insert "/* ")
-             (insert (make-string (- right-margin (current-column)) ?-)
-                     " */\n"))
-            (t (error "unknown box style")))
-
-      ;; Fifth, retabify, restore the point position, then cleanup the
-      ;; undo list of any boundary since we started.
-
-      ;; - retabify before left margin only (adapted from tabify.el)
-
-      (goto-char (point-min))
-      (while (re-search-forward "^[ \t][ \t][ \t]*" nil t)
-        (let ((column (current-column))
-              (indent-tabs-mode t))
-          (delete-region (match-beginning 0) (point))
-          (indent-to column)))
-
-      ;; - restore the point position
-
-      (goto-char (marker-position marked-point))
-
-      ;; - remove all intermediate boundaries from the undo list
-
-      (if (not (eq buffer-undo-list undo-list))
-          (let ((cursor buffer-undo-list))
-            (while (not (eq (cdr cursor) undo-list))
-              (if (car (cdr cursor))
-                  (setq cursor (cdr cursor))
-                (rplacd cursor (cdr (cdr cursor))))))))))
-
-;;; Rebox a C comment without refilling it.
-
-(defun rebox-c-comment (flag)
-  (interactive "P")
-  (rebox-c-comment-engine flag nil))
-
-;;; Rebox a C comment after refilling.
-
-(defun reindent-c-comment (flag)
-  (interactive "P")
-  (rebox-c-comment-engine flag t))
diff --git a/cfg.mk b/cfg.mk
index 24ebd87..1d41d29 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -1,6 +1,6 @@
 # Customize maint.mk.                           -*- makefile -*-
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
-# Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+# Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -15,21 +15,9 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Use alpha.gnu.org for alpha and beta releases.
-# Use ftp.gnu.org for major releases.
-gnu_ftp_host-alpha = alpha.gnu.org
-gnu_ftp_host-beta = alpha.gnu.org
-gnu_ftp_host-major = ftp.gnu.org
-gnu_rel_host = $(gnu_ftp_host-$(RELEASE_TYPE))
-
 # Used in maint.mk's web-manual rule
 manual_title = GNU macro processor
 
-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 syntax-check".
 # M4 intentionally uses a coding style that compiles under C++.
 local-checks-to-skip = sc_cast_of_x_alloc_return_value
@@ -38,10 +26,12 @@ local-checks-to-skip = sc_cast_of_x_alloc_return_value
 config_h_header = "m4\.h"
 
 # Hash of NEWS contents, to ensure we don't add entries to wrong section.
-old_NEWS_hash = 0330971054cd4fb4e94b85fe367980f2
+old_NEWS_hash = cc336e70015e3f8faf575099f18e4129
 
 # Always use longhand copyrights.
-update-copyright-env = UPDATE_COPYRIGHT_USE_INTERVALS=0
+update-copyright-env = \
+  UPDATE_COPYRIGHT_USE_INTERVALS=0 \
+  UPDATE_COPYRIGHT_MAX_LINE_LENGTH=72
 
 # Indent only with spaces.
 sc_prohibit_tab_based_indentation:
diff --git a/checks/Makefile.in b/checks/Makefile.in
index 86b634b..965099d 100644
--- a/checks/Makefile.in
+++ b/checks/Makefile.in
@@ -1,7 +1,7 @@
 ## Makefile.in - template for building Makefile for M4 testsuite.
 ##
-## Copyright (C) 1992, 1993, 1994, 2006, 2007, 2008, 2009 Free Software
-## Foundation, Inc.
+## Copyright (C) 1992, 1993, 1994, 2006, 2007, 2008, 2009, 2010 Free
+## Software Foundation, Inc.
 ##
 ## This file is part of GNU M4.
 ##
diff --git a/checks/check-them b/checks/check-them
index 893548b..d0b1135 100755
--- a/checks/check-them
+++ b/checks/check-them
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Check GNU m4 against examples from the manual source.
-# Copyright (C) 1992, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1992, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
 #
 # This file is part of GNU M4.
 #
diff --git a/checks/get-them b/checks/get-them
index f2eba80..0ec6079 100755
--- a/checks/get-them
+++ b/checks/get-them
@@ -1,7 +1,7 @@
 #!/bin/sh
 # -*- AWK -*-
 # Extract all examples from the manual source.
-# Copyright (C) 1992, 2005, 2006, 2007, 2008, 2009 Free Software
+# Copyright (C) 1992, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
 # Foundation, Inc.
 #
 # This file is part of GNU M4.
diff --git a/configure.ac b/configure.ac
index 162a5e0..2dfebc8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
-# Configure template for GNU M4.                       -*-Autoconf-*-
-# Copyright (C) 1991, 1993, 1994, 2004, 2005, 2006, 2007, 2008, 2009
-# Free Software Foundation, Inc.
+# Configure template for GNU M4.           -*-Autoconf-*-
+# Copyright (C) 1991, 1993, 1994, 2004, 2005, 2006, 2007, 2008, 2009,
+# 2010 Free Software Foundation, Inc.
 #
 # This file is part of GNU M4.
 #
@@ -17,13 +17,13 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_PREREQ([2.60])
+AC_PREREQ([2.62])
 AC_INIT([GNU M4], m4_esyscmd([build-aux/git-version-gen .tarball-version]),
   address@hidden)
 AC_CONFIG_AUX_DIR([build-aux])
 
-AM_INIT_AUTOMAKE([1.10b dist-bzip2 dist-xz color-tests
-parallel-tests silent-rules gnu])
+AM_INIT_AUTOMAKE([1.11.1 dist-bzip2 dist-xz color-tests parallel-tests
+silent-rules gnu])
 
 m4_pattern_forbid([^M4_[A-Z]])
 
@@ -133,7 +133,7 @@ if test "$ac_cv_func_sigaction" = yes || test 
"$ac_cv_func_sigvec" = yes; then
 ]], [[struct rlimit r; getrlimit (RLIMIT_STACK, &r);
 #if (!defined HAVE_SIGACTION || !defined SA_ONSTACK) \
     && (!defined HAVE_SIGVEC || !defined SV_ONSTACK)
-choke me               /* SA_ONSTACK and/or SV_ONSTACK are not defined */
+choke me /* SA_ONSTACK and/or SV_ONSTACK are not defined */
 #endif
 ]])], [M4_cv_use_stackovf=yes])
   fi
diff --git a/doc/Makefile.am b/doc/Makefile.am
index e217237..7eaa5a9 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,6 +1,7 @@
 ## Makefile.am - template for generating Makefile via Automake
 ##
-## Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+## Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+## Inc.
 ##
 ## This file is part of GNU M4.
 ##
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index e594128..37b10c7 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -44,7 +44,7 @@ This manual (@value{UPDATED}) is for @acronym{GNU} M4 (version
 language.
 
 Copyright @copyright{} 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005,
-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/examples/COPYING b/examples/COPYING
index c79fe3e..452416d 100644
--- a/examples/COPYING
+++ b/examples/COPYING
@@ -2,7 +2,7 @@ The files in this directory provide example uses of GNU M4.
 The following copyright notice applies to each of these
 description files.
 
-Copyright (C) 2006 Free Software Foundation, Inc.
+Copyright (C) 2006, 2010 Free Software Foundation, Inc.
 This file is free software; the Free Software Foundation
 gives unlimited permission to copy and/or distribute it,
 with or without modifications, as long as this notice is preserved.
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 54e773d..6e4d6f9 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -1,6 +1,7 @@
 ## Makefile.am - template for generating Makefile via Automake
 ##
-## Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+## Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+## Inc.
 ##
 ## This file is part of GNU M4.
 ##
diff --git a/examples/stackovf.sh b/examples/stackovf.sh
index 28dbaf1..8aaf57c 100644
--- a/examples/stackovf.sh
+++ b/examples/stackovf.sh
@@ -67,7 +67,7 @@ else
     *ut*of*emory*)
         echo "*** Test is INCONCLUSIVE (ran out of heap before stack 
overflow)";
         ;;
-    *) echo "*** Test FAILED.  $M4 aborted unexpectedly.  Output:";
+    *)  echo "*** Test FAILED.  $M4 aborted unexpectedly.  Output:";
         ;;
     esac
 fi
diff --git a/gnulib b/gnulib
index 9c40f34..cb361c9 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 9c40f34443ba034ee7890ab10c369a903417765d
+Subproject commit cb361c968d771304ab68ed5cb8016a6b0c1b8cf2
diff --git a/lib/Makefile.am b/lib/Makefile.am
index eb04128..cec3f9a 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -1,6 +1,6 @@
 ## Makefile.am - template for generating Makefile via Automake
 ##
-## Copyright (C) 2009 Free Software Foundation, Inc.
+## Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 ##
 ## This file is part of GNU M4.
 ##
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index 44d9255..5805acf 100644
--- a/m4/gnulib-cache.m4
+++ b/m4/gnulib-cache.m4
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2009 Free Software Foundation, Inc.
+# Copyright (C) 2002-2010 Free Software Foundation, Inc.
 #
 # This file is free software, distributed under the terms of the GNU
 # General Public License.  As a special exception to the GNU General
diff --git a/src/Makefile.am b/src/Makefile.am
index 7477a16..0e621c8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,6 +1,7 @@
 ## Makefile.am - template for generating Makefile via Automake
 ##
-## Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+## Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+## Inc.
 ##
 ## This file is part of GNU M4.
 ##
diff --git a/src/builtin.c b/src/builtin.c
index bf111fb..77e4ab0 100644
--- a/src/builtin.c
+++ b/src/builtin.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2000, 2004, 2006,
-   2007, 2008, 2009 Free Software Foundation, Inc.
+   2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -91,88 +91,86 @@ DECLARE (m4_undivert);
 static builtin const builtin_tab[] =
 {
 
-  /* name              GNUext  macros  blind   function */
+  /* name               GNUext  macros  blind   function */
 
-  { "__file__",                true,   false,  false,  m4___file__ },
-  { "__line__",                true,   false,  false,  m4___line__ },
-  { "__program__",     true,   false,  false,  m4___program__ },
-  { "builtin",         true,   true,   true,   m4_builtin },
-  { "changecom",       false,  false,  false,  m4_changecom },
-  { "changequote",     false,  false,  false,  m4_changequote },
+  { "__file__",         true,   false,  false,  m4___file__ },
+  { "__line__",         true,   false,  false,  m4___line__ },
+  { "__program__",      true,   false,  false,  m4___program__ },
+  { "builtin",          true,   true,   true,   m4_builtin },
+  { "changecom",        false,  false,  false,  m4_changecom },
+  { "changequote",      false,  false,  false,  m4_changequote },
 #ifdef ENABLE_CHANGEWORD
-  { "changeword",      true,   false,  true,   m4_changeword },
+  { "changeword",       true,   false,  true,   m4_changeword },
 #endif
-  { "debugmode",       true,   false,  false,  m4_debugmode },
-  { "debugfile",       true,   false,  false,  m4_debugfile },
-  { "decr",            false,  false,  true,   m4_decr },
-  { "define",          false,  true,   true,   m4_define },
-  { "defn",            false,  true,   true,   m4_defn },
-  { "divert",          false,  false,  false,  m4_divert },
-  { "divnum",          false,  false,  false,  m4_divnum },
-  { "dnl",             false,  false,  false,  m4_dnl },
-  { "dumpdef",         false,  true,   false,  m4_dumpdef },
-  { "errprint",                false,  false,  true,   m4_errprint },
-  { "esyscmd",         true,   false,  true,   m4_esyscmd },
-  { "eval",            false,  false,  true,   m4_eval },
-  { "format",          true,   false,  true,   m4_format },
-  { "ifdef",           false,  true,   true,   m4_ifdef },
-  { "ifelse",          false,  true,   true,   m4_ifelse },
-  { "include",         false,  false,  true,   m4_include },
-  { "incr",            false,  false,  true,   m4_incr },
-  { "index",           false,  false,  true,   m4_index },
-  { "indir",           true,   true,   true,   m4_indir },
-  { "len",             false,  false,  true,   m4_len },
-  { "m4exit",          false,  false,  false,  m4_m4exit },
-  { "m4wrap",          false,  true,   true,   m4_m4wrap },
-  { "maketemp",                false,  false,  true,   m4_maketemp },
-  { "mkstemp",         false,  false,  true,   m4_mkstemp },
-  { "patsubst",                true,   false,  true,   m4_patsubst },
-  { "popdef",          false,  true,   true,   m4_popdef },
-  { "pushdef",         false,  true,   true,   m4_pushdef },
-  { "regexp",          true,   false,  true,   m4_regexp },
-  { "shift",           false,  true,   true,   m4_shift },
-  { "sinclude",                false,  false,  true,   m4_sinclude },
-  { "substr",          false,  false,  true,   m4_substr },
-  { "syscmd",          false,  false,  true,   m4_syscmd },
-  { "sysval",          false,  false,  false,  m4_sysval },
-  { "traceoff",                false,  true,   false,  m4_traceoff },
-  { "traceon",         false,  true,   false,  m4_traceon },
-  { "translit",                false,  false,  true,   m4_translit },
-  { "undefine",                false,  true,   true,   m4_undefine },
-  { "undivert",                false,  false,  false,  m4_undivert },
-
-  { 0,                 false,  false,  false,  0 },
+  { "debugmode",        true,   false,  false,  m4_debugmode },
+  { "debugfile",        true,   false,  false,  m4_debugfile },
+  { "decr",             false,  false,  true,   m4_decr },
+  { "define",           false,  true,   true,   m4_define },
+  { "defn",             false,  true,   true,   m4_defn },
+  { "divert",           false,  false,  false,  m4_divert },
+  { "divnum",           false,  false,  false,  m4_divnum },
+  { "dnl",              false,  false,  false,  m4_dnl },
+  { "dumpdef",          false,  true,   false,  m4_dumpdef },
+  { "errprint",         false,  false,  true,   m4_errprint },
+  { "esyscmd",          true,   false,  true,   m4_esyscmd },
+  { "eval",             false,  false,  true,   m4_eval },
+  { "format",           true,   false,  true,   m4_format },
+  { "ifdef",            false,  true,   true,   m4_ifdef },
+  { "ifelse",           false,  true,   true,   m4_ifelse },
+  { "include",          false,  false,  true,   m4_include },
+  { "incr",             false,  false,  true,   m4_incr },
+  { "index",            false,  false,  true,   m4_index },
+  { "indir",            true,   true,   true,   m4_indir },
+  { "len",              false,  false,  true,   m4_len },
+  { "m4exit",           false,  false,  false,  m4_m4exit },
+  { "m4wrap",           false,  true,   true,   m4_m4wrap },
+  { "maketemp",         false,  false,  true,   m4_maketemp },
+  { "mkstemp",          false,  false,  true,   m4_mkstemp },
+  { "patsubst",         true,   false,  true,   m4_patsubst },
+  { "popdef",           false,  true,   true,   m4_popdef },
+  { "pushdef",          false,  true,   true,   m4_pushdef },
+  { "regexp",           true,   false,  true,   m4_regexp },
+  { "shift",            false,  true,   true,   m4_shift },
+  { "sinclude",         false,  false,  true,   m4_sinclude },
+  { "substr",           false,  false,  true,   m4_substr },
+  { "syscmd",           false,  false,  true,   m4_syscmd },
+  { "sysval",           false,  false,  false,  m4_sysval },
+  { "traceoff",         false,  true,   false,  m4_traceoff },
+  { "traceon",          false,  true,   false,  m4_traceon },
+  { "translit",         false,  false,  true,   m4_translit },
+  { "undefine",         false,  true,   true,   m4_undefine },
+  { "undivert",         false,  false,  false,  m4_undivert },
+
+  { 0,                  false,  false,  false,  0 },
 
   /* placeholder is intentionally stuck after the table end delimiter,
      so that we can easily find it, while not treating it as a real
      builtin.  */
-  { "placeholder",     true,   false,  false,  m4_placeholder },
+  { "placeholder",      true,   false,  false,  m4_placeholder },
 };
 
 static predefined const predefined_tab[] =
 {
 #if UNIX
-  { "unix",    "__unix__",     "" },
+  { "unix",     "__unix__",     "" },
 #endif
 #if W32_NATIVE
-  { "windows", "__windows__",  "" },
+  { "windows",  "__windows__",  "" },
 #endif
 #if OS2
-  { "os2",     "__os2__",      "" },
+  { "os2",      "__os2__",      "" },
 #endif
 #if !UNIX && !W32_NATIVE && !OS2
 # warning Platform macro not provided
 #endif
-  { NULL,      "__gnu__",      "" },
-  { NULL,      "__m4_version__", VERSION },
+  { NULL,       "__gnu__",      "" },
+  { NULL,       "__m4_version__", VERSION },
 
-  { NULL,      NULL,           NULL },
+  { NULL,       NULL,           NULL },
 };
 
-/*----------------------------------------.
-| Find the builtin, which lives on ADDR.  |
-`----------------------------------------*/
 
+/* Find the builtin that owns FUNC.  */
 const builtin *
 find_builtin_by_addr (builtin_func *func)
 {
@@ -186,11 +184,8 @@ find_builtin_by_addr (builtin_func *func)
   return NULL;
 }
 
-/*----------------------------------------------------------.
-| Find the builtin, which has NAME.  On failure, return the |
-| placeholder builtin.                                      |
-`----------------------------------------------------------*/
-
+/* Find the builtin matching NAME.  On failure, return the placeholder
+   builtin.  */
 const builtin *
 find_builtin_by_name (const char *name)
 {
@@ -202,11 +197,9 @@ find_builtin_by_name (const char *name)
   return bp + 1;
 }
 
-/*------------------------------------------------------------------.
-| Print a representation of FUNC to OBS.  If FLATTEN, output QUOTES |
-| around an empty string instead; else if CHAIN, append the builtin |
-| to the chain; otherwise print the name of FUNC.                   |
-`------------------------------------------------------------------*/
+/* Print a representation of FUNC to OBS.  If FLATTEN, output QUOTES
+   around an empty string instead; else if CHAIN, append the builtin
+   to the chain; otherwise print the name of FUNC.  */
 void
 func_print (struct obstack *obs, const builtin *func, bool flatten,
             token_chain **chain, const string_pair *quotes)
@@ -230,12 +223,10 @@ func_print (struct obstack *obs, const builtin *func, 
bool flatten,
     }
 }
 
-/*----------------------------------------------------------------.
-| Install a builtin macro with name NAME and length LEN, bound to |
-| the C function given in BP.  MODE is SYMBOL_INSERT or                  |
-| SYMBOL_PUSHDEF.                                                |
-`----------------------------------------------------------------*/
 
+/* Install a builtin macro with name NAME and length LEN, bound to the
+   C function given in BP.  MODE is SYMBOL_INSERT or
+   SYMBOL_PUSHDEF.  */
 void
 define_builtin (const char *name, size_t len, const builtin *bp,
                 symbol_lookup mode)
@@ -269,11 +260,11 @@ static bool macro_sequence_inuse;
 
 /* Structure for caching compiled regex.  */
 struct m4_regex {
-  unsigned count;                      /* usage counter */
-  size_t len;                          /* length of string */
-  char *str;                           /* copy of compiled string */
-  struct re_pattern_buffer *buf;       /* compiled regex, allocated */
-  struct re_registers regs;            /* match registers, reused */
+  unsigned count;                       /* usage counter */
+  size_t len;                           /* length of string */
+  char *str;                            /* copy of compiled string */
+  struct re_pattern_buffer *buf;        /* compiled regex, allocated */
+  struct re_registers regs;             /* match registers, reused */
 };
 typedef struct m4_regex m4_regex;
 
@@ -284,12 +275,10 @@ static m4_regex regex_cache[REGEX_CACHE_SIZE];
 extern FILE *trace_file;
 #endif /* DEBUG_REGEX */
 
-/*------------------------------------------------------------------.
-| Compile STR, with length LEN, into a regex.  On success, set BUF  |
-| and REGS to the compiled regex.  Compilation is cached, so do not |
-| free the results here; rather, use free_regex at the end of the   |
-| program.  Return NULL on success, or an error message.           |
-`------------------------------------------------------------------*/
+/* Compile STR, with length LEN, into a regex.  On success, set BUF
+   and REGS to the compiled regex.  Compilation is cached, so do not
+   free the results here; rather, use free_regex at the end of the
+   program.  Return NULL on success, or an error message.  */
 static const char *
 compile_pattern (const char *str, size_t len, struct re_pattern_buffer **buf,
                  struct re_registers **regs)
@@ -385,10 +374,7 @@ compile_pattern (const char *str, size_t len, struct 
re_pattern_buffer **buf,
   return NULL;
 }
 
-/*----------------------------------------.
-| Clean up regular expression variables.  |
-`----------------------------------------*/
-
+/* Clean up regular expression variables BUF and REGS.  */
 static void
 free_pattern_buffer (struct re_pattern_buffer *buf, struct re_registers *regs)
 {
@@ -397,10 +383,8 @@ free_pattern_buffer (struct re_pattern_buffer *buf, struct 
re_registers *regs)
   free (regs->end);
 }
 
-/*-----------------------------------------------------------------.
-| Set the regular expression of --warn-macro-sequence that will be |
-| checked during define and pushdef.  Exit on failure.             |
-`-----------------------------------------------------------------*/
+/* Set the regular expression of --warn-macro-sequence that will be
+   checked during define and pushdef to REGEXP.  Exit on failure.  */
 void
 set_macro_sequence (const char *regexp)
 {
@@ -425,9 +409,7 @@ set_macro_sequence (const char *regexp)
   macro_sequence_inuse = true;
 }
 
-/*------------------------------------------------------.
-| Free dynamic memory utilized by regular expressions.  |
-`------------------------------------------------------*/
+/* Free dynamic memory utilized by regular expressions.  */
 void
 free_regex (void)
 {
@@ -442,14 +424,11 @@ free_regex (void)
       }
 }
 
-/*------------------------------------------------------------------.
-| Define a predefined or user-defined macro, with name NAME of      |
-| length NAME_LEN, and expansion TEXT of length LEN.  LEN may be    |
-| SIZE_MAX, to use the string length of TEXT instead.  MODE is      |
-| SYMBOL_INSERT for "define" or SYMBOL_PUSHDEF for "pushdef".  This |
-| function is also used from main ().                               |
-`------------------------------------------------------------------*/
-
+/* Define a predefined or user-defined macro, with name NAME of length
+   NAME_LEN, and expansion TEXT of length LEN.  LEN may be SIZE_MAX,
+   to use the string length of TEXT instead.  MODE is SYMBOL_INSERT
+   for "define" or SYMBOL_PUSHDEF for "pushdef".  This function is
+   also used from main ().  */
 void
 define_user_macro (const char *name, size_t name_len, const char *text,
                    size_t len, symbol_lookup mode)
@@ -503,10 +482,7 @@ define_user_macro (const char *name, size_t name_len, 
const char *text,
     }
 }
 
-/*-----------------------------------------------.
-| Initialize all builtin and predefined macros.         |
-`-----------------------------------------------*/
-
+/* Initialize all builtin and predefined macros.  */
 void
 builtin_init (void)
 {
@@ -543,15 +519,12 @@ builtin_init (void)
       }
 }
 
-/*------------------------------------------------------------------.
-| Give friendly warnings if a builtin macro is passed an            |
-| inappropriate number of arguments.  NAME is macro name for        |
-| messages.  ARGC is one more than the number of arguments.  MIN is |
-| the 0-based minimum number of acceptable arguments.  MAX is the   |
-| 0-based maximum number of arguments, UINT_MAX if not applicable.  |
-| Return true if there are not enough arguments.                    |
-`------------------------------------------------------------------*/
-
+/* Give friendly warnings if a builtin macro is passed an
+   inappropriate number of arguments.  NAME is the macro name for
+   messages.  ARGC is one more than the number of arguments.  MIN is
+   the 0-based minimum number of acceptable arguments.  MAX is the
+   0-based maximum number of arguments, UINT_MAX if not applicable.
+   Return true if there are not enough arguments.  */
 bool
 bad_argc (const call_info *name, int argc, unsigned int min, unsigned int max)
 {
@@ -565,12 +538,9 @@ bad_argc (const call_info *name, int argc, unsigned int 
min, unsigned int max)
   return false;
 }
 
-/*------------------------------------------------------------------.
-| The function numeric_arg () converts ARG of length LEN to an int  |
-| pointed to by VALUEP.  If the conversion fails, print error       |
-| message on behalf of NAME.  Return true iff conversion succeeds.  |
-`------------------------------------------------------------------*/
-
+/* The function numeric_arg () converts ARG of length LEN to an int
+   pointed to by VALUEP.  If the conversion fails, print error message
+   on behalf of NAME.  Return true iff conversion succeeds.  */
 static bool
 numeric_arg (const call_info *name, const char *arg, size_t len, int *valuep)
 {
@@ -599,14 +569,11 @@ numeric_arg (const call_info *name, const char *arg, 
size_t len, int *valuep)
   return true;
 }
 
-/*------------------------------------------------------------------------.
-| The function ntoa () converts VALUE to a signed ASCII representation in |
-| radix RADIX.                                                           |
-`------------------------------------------------------------------------*/
-
 /* Digits for number to ASCII conversions.  */
 static char const digits[] = "0123456789abcdefghijklmnopqrstuvwxyz";
 
+/* The function ntoa () converts VALUE to a signed ASCII
+   representation in radix RADIX.  */
 static const char *
 ntoa (int32_t value, int radix)
 {
@@ -641,11 +608,8 @@ ntoa (int32_t value, int radix)
   return s;
 }
 
-/*----------------------------------------------------------------------.
-| Format an int VAL, and stuff it into an obstack OBS.  Used for macros |
-| expanding to numbers.                                                        
|
-`----------------------------------------------------------------------*/
-
+/* Format an int VAL, and stuff it into an obstack OBS.  Used for
+   macros expanding to numbers.  */
 static void
 shipout_int (struct obstack *obs, int val)
 {
@@ -670,13 +634,10 @@ shipout_int (struct obstack *obs, int val)
 /* The first section are macros for defining, undefining, examining,
    changing, ... other macros.  */
 
-/*-------------------------------------------------------------------------.
-| The function define_macro is common for the builtins "define",          |
-| "undefine", "pushdef" and "popdef".  ARGC and ARGV is as for the caller, |
-| and MODE argument determines how the macro name is entered into the     |
-| symbol table.                                                                
   |
-`-------------------------------------------------------------------------*/
-
+/* The function define_macro is common for the builtins "define",
+   "undefine", "pushdef" and "popdef".  ARGC and ARGV is as for the
+   caller, and MODE argument determines how the macro name is entered
+   into the symbol table.  */
 static void
 define_macro (int argc, macro_arguments *argv, symbol_lookup mode)
 {
@@ -770,9 +731,7 @@ m4_popdef (struct obstack *obs M4_GNUC_UNUSED, int argc, 
macro_arguments *argv)
                                    ARG_LEN (i)));
 }
 
-/*---------------------.
-| Conditionals of m4.  |
-`---------------------*/
+/* Conditionals of m4.  */
 
 static void
 m4_ifdef (struct obstack *obs, int argc, macro_arguments *argv)
@@ -831,19 +790,17 @@ m4_ifelse (struct obstack *obs, int argc, macro_arguments 
*argv)
     }
 }
 
-/*---------------------------------------------------------------------.
-| The function dump_symbol () is for use by "dumpdef".  It builds up a |
-| table of all defined, un-shadowed, symbols.                         |
-`---------------------------------------------------------------------*/
+/* The function dump_symbol () is for use by "dumpdef".  It builds
+   up a table of all defined, un-shadowed, symbols.  */
 
 /* The structure dump_symbol_data is used to pass the information needed
    from call to call to dump_symbol.  */
 
 struct dump_symbol_data
 {
-  struct obstack *obs;         /* obstack for table */
-  symbol **base;               /* base of table */
-  int size;                    /* size of table */
+  struct obstack *obs;          /* obstack for table */
+  symbol **base;                /* base of table */
+  int size;                     /* size of table */
 };
 
 static void
@@ -858,9 +815,8 @@ dump_symbol (symbol *sym, void *arg)
     }
 }
 
-/*------------------------------------------------------------------------.
-| qsort comparison routine, for sorting the table made in m4_dumpdef ().  |
-`------------------------------------------------------------------------*/
+/* qsort comparison routine, for sorting the table made in
+   m4_dumpdef ().  */
 
 static int
 dumpdef_cmp (const void *s1, const void *s2)
@@ -871,11 +827,8 @@ dumpdef_cmp (const void *s1, const void *s2)
                   SYMBOL_NAME (sym2), SYMBOL_NAME_LEN (sym2));
 }
 
-/*-------------------------------------------------------------------------.
-| Implementation of "dumpdef" itself.  It builds up a table of pointers to |
-| symbols, sorts it and prints the sorted table.                          |
-`-------------------------------------------------------------------------*/
-
+/* Implementation of "dumpdef" itself.  It builds up a table of
+   pointers to symbols, sorts it and prints the sorted table.  */
 static void
 m4_dumpdef (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -960,13 +913,10 @@ m4_dumpdef (struct obstack *obs, int argc, 
macro_arguments *argv)
     }
 }
 
-/*---------------------------------------------------------------------.
-| The builtin "builtin" allows calls to builtin macros, even if their  |
-| definition has been overridden or shadowed.  It is thus possible to  |
-| redefine builtins, and still access their original definition.  This |
-| macro is not available in compatibility mode.                               |
-`---------------------------------------------------------------------*/
-
+/* The builtin "builtin" allows calls to builtin macros, even if their
+   definition has been overridden or shadowed.  It is thus possible to
+   redefine builtins, and still access their original definition.
+   This macro is not available in compatibility mode.  */
 static void
 m4_builtin (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -998,13 +948,10 @@ m4_builtin (struct obstack *obs, int argc, 
macro_arguments *argv)
     }
 }
 
-/*------------------------------------------------------------------------.
-| The builtin "indir" allows indirect calls to macros, even if their name |
-| is not a proper macro name.  It is thus possible to define macros with  |
-| ill-formed names for internal use in larger macro packages.  This macro |
-| is not available in compatibility mode.                                |
-`------------------------------------------------------------------------*/
-
+/* The builtin "indir" allows indirect calls to macros, even if their
+   name is not a proper macro name.  It is thus possible to define
+   macros with ill-formed names for internal use in larger macro
+   packages.  This macro is not available in compatibility mode.  */
 static void
 m4_indir (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -1040,12 +987,9 @@ m4_indir (struct obstack *obs, int argc, macro_arguments 
*argv)
     }
 }
 
-/*-------------------------------------------------------------------------.
-| The macro "defn" returns the quoted definition of the macro named by the |
-| first argument.  If the macro is builtin, it will push a special        |
-| macro-definition token on the input stack.                              |
-`-------------------------------------------------------------------------*/
-
+/* The macro "defn" returns the quoted definition of the macro named
+   by the first argument.  If the macro is builtin, it will push a
+   special macro-definition token on the input stack.  */
 static void
 m4_defn (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -1100,10 +1044,8 @@ m4_defn (struct obstack *obs, int argc, macro_arguments 
*argv)
     }
 }
 
-/*------------------------------------------------------------------------.
-| This section contains macros to handle the builtins "syscmd", "esyscmd" |
-| and "sysval".  "esyscmd" is GNU specific.                              |
-`------------------------------------------------------------------------*/
+/* This section contains macros to handle the builtins "syscmd",
+   "esyscmd" and "sysval".  "esyscmd" is GNU specific.  */
 
 /* Exit code from last "syscmd" command.  */
 static int sysval;
@@ -1254,11 +1196,9 @@ m4_sysval (struct obstack *obs, int argc M4_GNUC_UNUSED,
   shipout_int (obs, sysval);
 }
 
-/*-------------------------------------------------------------------------.
-| This section contains the top level code for the "eval" builtin.  The        
   |
-| actual work is done in the function evaluate (), which lives in eval.c.  |
-`-------------------------------------------------------------------------*/
-
+/* This section contains the top level code for the "eval" builtin.
+   The actual work is done in the function evaluate (), which lives in
+   eval.c.  */
 static void
 m4_eval (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -1360,11 +1300,8 @@ m4_decr (struct obstack *obs, int argc, macro_arguments 
*argv)
 /* This section contains the macros "divert", "undivert" and "divnum" for
    handling diversion.  The utility functions used lives in output.c.  */
 
-/*-----------------------------------------------------------------------.
-| Divert further output to the diversion given by ARGV[1].  Out of range |
-| means discard further output.                                                
 |
-`-----------------------------------------------------------------------*/
-
+/* Divert further output to the diversion given by ARGV[1].  Out of
+   range means discard further output.  */
 static void
 m4_divert (struct obstack *obs M4_GNUC_UNUSED, int argc, macro_arguments *argv)
 {
@@ -1379,10 +1316,7 @@ m4_divert (struct obstack *obs M4_GNUC_UNUSED, int argc, 
macro_arguments *argv)
   divert_text (NULL, ARG (2), ARG_LEN (2), current_line);
 }
 
-/*-----------------------------------------------------.
-| Expand to the current diversion number, -1 if none.  |
-`-----------------------------------------------------*/
-
+/* Expand to the current diversion number, -1 if none.  */
 static void
 m4_divnum (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -1390,13 +1324,10 @@ m4_divnum (struct obstack *obs, int argc, 
macro_arguments *argv)
   shipout_int (obs, current_diversion);
 }
 
-/*-----------------------------------------------------------------------.
-| Bring back the diversion given by the argument list.  If none is      |
-| specified, bring back all diversions.  GNU specific is the option of  |
-| undiverting named files, by passing a non-numeric argument to undivert |
-| ().                                                                   |
-`-----------------------------------------------------------------------*/
-
+/* Bring back the diversion given by the argument list.  If none is
+   specified, bring back all diversions.  GNU specific is the option
+   of undiverting named files, by passing a non-numeric argument to
+   undivert ().  */
 static void
 m4_undivert (struct obstack *obs M4_GNUC_UNUSED, int argc,
              macro_arguments *argv)
@@ -1444,11 +1375,8 @@ m4_undivert (struct obstack *obs M4_GNUC_UNUSED, int 
argc,
    specific group.  These are "dnl", "shift", "changequote", "changecom"
    and "changeword".  */
 
-/*------------------------------------------------------------------------.
-| Delete all subsequent whitespace from input.  The function skip_line () |
-| lives in input.c.                                                      |
-`------------------------------------------------------------------------*/
-
+/* Delete all subsequent whitespace from input.  The function
+   skip_line () lives in input.c.  */
 static void
 m4_dnl (struct obstack *obs M4_GNUC_UNUSED, int argc, macro_arguments *argv)
 {
@@ -1458,11 +1386,8 @@ m4_dnl (struct obstack *obs M4_GNUC_UNUSED, int argc, 
macro_arguments *argv)
   skip_line (me);
 }
 
-/*--------------------------------------------------------------------.
-| Shift all arguments one to the left, discarding the first          |
-| argument.  Each output argument is quoted with the current quotes.  |
-`--------------------------------------------------------------------*/
-
+/* Shift all arguments one to the left, discarding the first argument.
+   Each output argument is quoted with the current quotes.  */
 static void
 m4_shift (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -1471,10 +1396,8 @@ m4_shift (struct obstack *obs, int argc, macro_arguments 
*argv)
   push_args (obs, argv, true, true);
 }
 
-/*--------------------------------------------------------------------------.
-| Change the current quotes.  The function set_quotes () lives in input.c.  |
-`--------------------------------------------------------------------------*/
-
+/* Change the current quotes.  The function set_quotes () lives in
+   input.c.  */
 static void
 m4_changequote (struct obstack *obs M4_GNUC_UNUSED, int argc,
                 macro_arguments *argv)
@@ -1486,11 +1409,8 @@ m4_changequote (struct obstack *obs M4_GNUC_UNUSED, int 
argc,
               (argc >= 3) ? ARG (2) : NULL, ARG_LEN (2));
 }
 
-/*--------------------------------------------------------------------.
-| Change the current comment delimiters.  The function set_comment () |
-| lives in input.c.                                                  |
-`--------------------------------------------------------------------*/
-
+/* Change the current comment delimiters.  The function set_comment ()
+   lives in input.c.  */
 static void
 m4_changecom (struct obstack *obs M4_GNUC_UNUSED, int argc,
               macro_arguments *argv)
@@ -1504,11 +1424,8 @@ m4_changecom (struct obstack *obs M4_GNUC_UNUSED, int 
argc,
 
 #ifdef ENABLE_CHANGEWORD
 
-/*-----------------------------------------------------------------------.
-| Change the regular expression used for breaking the input into words.        
 |
-| The function set_word_regexp () lives in input.c.                     |
-`-----------------------------------------------------------------------*/
-
+/* Change the regular expression used for breaking the input into
+   words.  The function set_word_regexp () lives in input.c.  */
 static void
 m4_changeword (struct obstack *obs M4_GNUC_UNUSED, int argc,
                macro_arguments *argv)
@@ -1526,11 +1443,9 @@ m4_changeword (struct obstack *obs M4_GNUC_UNUSED, int 
argc,
    and "sinclude".  This differs from bringing back diversions, in that
    the input is scanned before being copied to the output.  */
 
-/*-------------------------------------------------------------------------.
-| Generic include function.  Include the file given by the first argument, |
-| if it exists.  Complain about inaccessible files iff SILENT is false.    |
-`-------------------------------------------------------------------------*/
-
+/* Generic include function.  Include the file given by the first
+   argument, if it exists.  Complain about inaccessible files iff
+   SILENT is false.  */
 static void
 include (int argc, macro_arguments *argv, bool silent)
 {
@@ -1561,10 +1476,7 @@ include (int argc, macro_arguments *argv, bool silent)
   free (name);
 }
 
-/*------------------------------------------------.
-| Include a file, complaining in case of errors.  |
-`------------------------------------------------*/
-
+/* Include a file, complaining in case of errors.  */
 static void
 m4_include (struct obstack *obs M4_GNUC_UNUSED, int argc,
             macro_arguments *argv)
@@ -1572,10 +1484,7 @@ m4_include (struct obstack *obs M4_GNUC_UNUSED, int argc,
   include (argc, argv, false);
 }
 
-/*----------------------------------.
-| Include a file, ignoring errors.  |
-`----------------------------------*/
-
+/* Include a file, ignoring errors.  */
 static void
 m4_sinclude (struct obstack *obs M4_GNUC_UNUSED, int argc,
              macro_arguments *argv)
@@ -1586,11 +1495,8 @@ m4_sinclude (struct obstack *obs M4_GNUC_UNUSED, int 
argc,
 /* More miscellaneous builtins -- "maketemp", "errprint", "__file__",
    "__line__", and "__program__".  The last three are GNU specific.  */
 
-/*-----------------------------------------------------------------.
-| Use the first argument as a template for a temporary file name.  |
-`-----------------------------------------------------------------*/
-
-/* Add trailing 'X' to PATTERN of length LEN as necessary, then
+/* Use the first argument as a template for a temporary file name.
+   Add trailing 'X' to PATTERN of length LEN as necessary, then
    securely create the file, and place the quoted new file name on
    OBS.  Report errors on behalf of ME.  */
 static void
@@ -1687,10 +1593,7 @@ m4_mkstemp (struct obstack *obs, int argc, 
macro_arguments *argv)
   mkstemp_helper (obs, me, ARG (1), ARG_LEN (1));
 }
 
-/*----------------------------------------.
-| Print all arguments on standard error.  |
-`----------------------------------------*/
-
+/* Print all arguments on standard error.  */
 static void
 m4_errprint (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -1736,11 +1639,8 @@ m4___program__ (struct obstack *obs, int argc, 
macro_arguments *argv)
    EOF is seen, and tracing macro calls.  That is: "m4exit", "m4wrap",
    "traceon" and "traceoff".  */
 
-/*-------------------------------------------------------------------------.
-| Exit immediately, with exitcode specified by the first argument, 0 if no |
-| arguments are present.                                                  |
-`-------------------------------------------------------------------------*/
-
+/* Exit immediately, with exit status specified by the first argument,
+   or 0 if no arguments are present.  */
 static void M4_GNUC_NORETURN
 m4_m4exit (struct obstack *obs M4_GNUC_UNUSED, int argc, macro_arguments *argv)
 {
@@ -1768,12 +1668,9 @@ m4_m4exit (struct obstack *obs M4_GNUC_UNUSED, int argc, 
macro_arguments *argv)
   exit (exit_code);
 }
 
-/*-----------------------------------------------------------------.
-| Save the argument text in FIFO order until EOF has been seen,    |
-| allowing for user specified cleanup action.  Extra arguments are |
-| saved when not in POSIX mode.                                    |
-`-----------------------------------------------------------------*/
-
+/* Save the argument text in FIFO order until EOF has been seen,
+   allowing for user specified cleanup action.  Extra arguments are
+   saved when not in POSIX mode.  */
 static void
 m4_m4wrap (struct obstack *obs M4_GNUC_UNUSED, int argc, macro_arguments *argv)
 {
@@ -1787,12 +1684,9 @@ m4_m4wrap (struct obstack *obs M4_GNUC_UNUSED, int argc, 
macro_arguments *argv)
    Tracing is disabled by default, when a macro is defined.  This can be
    overridden by the "t" debug flag.  */
 
-/*-----------------------------------------------------------------------.
-| Set_trace () is used by "traceon" and "traceoff" to enable and disable |
-| tracing of a macro.  It disables tracing if DATA is NULL, otherwise it |
-| enable tracing.                                                       |
-`-----------------------------------------------------------------------*/
-
+/* Set_trace () is used by "traceon" and "traceoff" to enable and
+   disable tracing of a macro.  It disables tracing if DATA is NULL,
+   otherwise it enables tracing.  */
 static void
 set_trace (symbol *sym, void *data)
 {
@@ -1826,10 +1720,8 @@ m4_traceon (struct obstack *obs, int argc, 
macro_arguments *argv)
       }
 }
 
-/*------------------------------------------------------------------------.
-| Disable tracing of all specified macros, or all, if none is specified.  |
-`------------------------------------------------------------------------*/
-
+/* Disable tracing of all specified macros, or all, if none is
+   specified.  */
 static void
 m4_traceoff (struct obstack *obs M4_GNUC_UNUSED, int argc,
              macro_arguments *argv)
@@ -1854,12 +1746,9 @@ m4_traceoff (struct obstack *obs M4_GNUC_UNUSED, int 
argc,
       }
 }
 
-/*----------------------------------------------------------------------.
-| On-the-fly control of the format of the tracing output.  It takes one |
-| argument, which is a character string like given to the -d option, or |
-| none in which case the debug_level is zeroed.                                
|
-`----------------------------------------------------------------------*/
-
+/* On-the-fly control of the format of the tracing output.  It takes
+   one argument, which is a character string like that given to the -d
+   option, or none in which case the debug_level is zeroed.  */
 static void
 m4_debugmode (struct obstack *obs M4_GNUC_UNUSED, int argc,
               macro_arguments *argv)
@@ -1877,11 +1766,9 @@ m4_debugmode (struct obstack *obs M4_GNUC_UNUSED, int 
argc,
              quotearg_style_mem (locale_quoting_style, str, len));
 }
 
-/*-------------------------------------------------------------------------.
-| Specify the destination of the debugging output.  With one argument, the |
-| argument is taken as a file name, with no arguments, revert to stderr.   |
-`-------------------------------------------------------------------------*/
-
+/* Specify the destination of the debugging output.  With one
+   argument, the argument is taken as a file name, with no arguments,
+   revert to stderr.  */
 static void
 m4_debugfile (struct obstack *obs M4_GNUC_UNUSED, int argc,
               macro_arguments *argv)
@@ -1909,10 +1796,7 @@ m4_debugfile (struct obstack *obs M4_GNUC_UNUSED, int 
argc,
    "substr", "translit", "format", "regexp" and "patsubst".  The last
    three are GNU specific.  */
 
-/*---------------------------------------------.
-| Expand to the length of the first argument.  |
-`---------------------------------------------*/
-
+/* Expand to the length of the first argument.  */
 static void
 m4_len (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -1921,12 +1805,9 @@ m4_len (struct obstack *obs, int argc, macro_arguments 
*argv)
   shipout_int (obs, ARG_LEN (1));
 }
 
-/*-------------------------------------------------------------------.
-| The macro expands to the first index of the second argument in the |
-| first argument.  As an extension, start the search at the index    |
-| indicated by the third argument.                                  |
-`-------------------------------------------------------------------*/
-
+/* The macro expands to the first index of the second argument in the
+   first argument.  As an extension, start the search at the index
+   indicated by the third argument.  */
 static void
 m4_index (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -1973,17 +1854,14 @@ m4_index (struct obstack *obs, int argc, 
macro_arguments *argv)
   shipout_int (obs, retval);
 }
 
-/*-------------------------------------------------------------------.
-| The macro "substr" extracts substrings from the first argument,    |
-| starting from the index given by the second argument, extending    |
-| for a length given by the third argument.  If the third argument   |
-| is missing or empty, the substring extends to the end of the first |
-| argument.  As an extension, negative arguments are treated as             |
-| indices relative to the string length.  Also, if a fourth argument |
-| is supplied, the original string is output with the selected      |
-| substring replaced by the argument.                               |
-`-------------------------------------------------------------------*/
-
+/* The macro "substr" extracts substrings from the first argument,
+   starting from the index given by the second argument, extending for
+   a length given by the third argument.  If the third argument is
+   missing or empty, the substring extends to the end of the first
+   argument.  As an extension, negative arguments are treated as
+   indices relative to the string length.  Also, if a fourth argument
+   is supplied, the original string is output with the selected
+   substring replaced by the argument.  */
 static void
 m4_substr (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -2048,19 +1926,16 @@ m4_substr (struct obstack *obs, int argc, 
macro_arguments *argv)
   obstack_grow (obs, ARG (1) + start, end - start);
 }
 
-/*------------------------------------------------------------------.
-| For "translit", ranges are allowed in the second and third        |
-| argument.  They are expanded in the following function, and the   |
-| expanded strings, without any ranges left, are used to translate  |
-| the characters of the first argument.  A single - (dash) can be   |
-| included in the strings by being the first or the last character  |
-| in the string.  If the first character in a range is after the    |
-| first in the character set, the range is made backwards, thus 9-0 |
-| is the string 9876543210.  This function expands S of length *LEN |
-| using OBS for the expansion, sets *LEN to the new length, and     |
-| returns the expansion.                                            |
-`------------------------------------------------------------------*/
-
+/* For "translit", ranges are allowed in the second and third
+   argument.  They are expanded in the following function, and the
+   expanded strings, without any ranges left, are used to translate
+   the characters of the first argument.  A single - (dash) can be
+   included in the strings by being the first or the last character in
+   the string.  If the first character in a range is after the first
+   in the character set, the range is made backwards, thus 9-0 is the
+   string 9876543210.  This function expands S of length *LEN using
+   OBS for the expansion, sets *LEN to the new length, and returns the
+   expansion.  */
 static const char *
 expand_ranges (const char *s, size_t *len, struct obstack *obs)
 {
@@ -2101,14 +1976,11 @@ expand_ranges (const char *s, size_t *len, struct 
obstack *obs)
   return (char *) obstack_finish (obs);
 }
 
-/*----------------------------------------------------------------------.
-| The macro "translit" translates all characters in the first argument, |
-| which are present in the second argument, into the corresponding      |
-| character from the third argument.  If the third argument is shorter  |
-| than the second, the extra characters in the second argument, are     |
-| deleted from the first (pueh).                                       |
-`----------------------------------------------------------------------*/
-
+/* The macro "translit" translates all characters in the first
+   argument, which are present in the second argument, into the
+   corresponding character from the third argument.  If the third
+   argument is shorter than the second, the extra characters in the
+   second argument are deleted from the first.  */
 static void
 m4_translit (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -2216,11 +2088,8 @@ m4_translit (struct obstack *obs, int argc, 
macro_arguments *argv)
     }
 }
 
-/*--------------------------------------------------------------.
-| Frontend for *printf like formatting.  The function format () |
-| lives in the file format.c.                                   |
-`--------------------------------------------------------------*/
-
+/* Frontend for *printf like formatting.  The function format () lives
+   in the file format.c.  */
 static void
 m4_format (struct obstack *obs, int argc, macro_arguments *argv)
 {
@@ -2229,15 +2098,12 @@ m4_format (struct obstack *obs, int argc, 
macro_arguments *argv)
   expand_format (obs, argc, argv);
 }
 
-/*-------------------------------------------------------------------------.
-| Function to perform substitution by regular expressions.  Used by the        
   |
-| builtins regexp and patsubst.  The changed text is placed on the        |
-| obstack.  The substitution is REPL, with \& substituted by this part of  |
-| VICTIM matched by the last whole regular expression, taken from REGS[0], |
-| and \N substituted by the text matched by the Nth parenthesized         |
-| sub-expression, taken from REGS[N].                                     |
-`-------------------------------------------------------------------------*/
-
+/* Function to perform substitution by regular expressions.  Used by
+   the builtins regexp and patsubst.  The changed text is placed on
+   the obstack.  The substitution is REPL, with \& substituted by this
+   part of VICTIM matched by the last whole regular expression, taken
+   from REGS[0], and \N substituted by the text matched by the Nth
+   parenthesized sub-expression, taken from REGS[N].  */
 static int substitute_warned = 0;
 
 static void
@@ -2298,10 +2164,7 @@ substitute (struct obstack *obs, const call_info *me, 
const char *victim,
     }
 }
 
-/*------------------------------------------.
-| Initialize regular expression variables.  |
-`------------------------------------------*/
-
+/* Initialize regular expression variables.  */
 void
 init_pattern_buffer (struct re_pattern_buffer *buf, struct re_registers *regs)
 {
@@ -2316,26 +2179,23 @@ init_pattern_buffer (struct re_pattern_buffer *buf, 
struct re_registers *regs)
     }
 }
 
-/*------------------------------------------------------------------.
-| Regular expression version of index.  Given two arguments, expand |
-| to the index of the first match of the second argument (a regexp) |
-| in the first.  Expand to -1 if there is no match.  Given a third  |
-| argument, a match is substituted according to this argument.      |
-`------------------------------------------------------------------*/
-
+/* Regular expression version of index.  Given two arguments, expand
+   to the index of the first match of the second argument (a regexp)
+   in the first.  Expand to -1 if there is no match.  Given a third
+   argument, a match is substituted according to this argument.  */
 static void
 m4_regexp (struct obstack *obs, int argc, macro_arguments *argv)
 {
   const call_info *me = arg_info (argv);
-  const char *victim;          /* first argument */
-  const char *regexp;          /* regular expression */
-  const char *repl;            /* replacement string */
+  const char *victim;           /* first argument */
+  const char *regexp;           /* regular expression */
+  const char *repl;             /* replacement string */
 
   struct re_pattern_buffer *buf;/* compiled regular expression */
-  struct re_registers *regs;   /* for subexpression matches */
-  const char *msg;             /* error message from re_compile_pattern */
-  int startpos;                        /* start position of match */
-  int length;                  /* length of first argument */
+  struct re_registers *regs;    /* for subexpression matches */
+  const char *msg;              /* error message from re_compile_pattern */
+  int startpos;                 /* start position of match */
+  int length;                   /* length of first argument */
 
   if (bad_argc (me, argc, 2, 3))
     {
@@ -2396,29 +2256,26 @@ m4_regexp (struct obstack *obs, int argc, 
macro_arguments *argv)
     substitute (obs, me, victim, repl, ARG_LEN (3), regs);
 }
 
-/*------------------------------------------------------------------.
-| Substitute all matches of a regexp occurring in a string.  Each   |
-| match of the second argument (a regexp) in the first argument is  |
-| changed to the third argument, with \& substituted by the matched |
-| text, and \N substituted by the text matched by the Nth           |
-| parenthesized sub-expression.                                     |
-`------------------------------------------------------------------*/
-
+/* Substitute all matches of a regexp occurring in a string.  Each
+   match of the second argument (a regexp) in the first argument is
+   changed to the third argument, with \& substituted by the matched
+   text, and \N substituted by the text matched by the Nth
+   parenthesized sub-expression.  */
 static void
 m4_patsubst (struct obstack *obs, int argc, macro_arguments *argv)
 {
   const call_info *me = arg_info (argv);
-  const char *victim;          /* First argument.  */
-  const char *regexp;          /* Regular expression.  */
-  const char *repl;            /* Replacement text.  */
+  const char *victim;           /* First argument.  */
+  const char *regexp;           /* Regular expression.  */
+  const char *repl;             /* Replacement text.  */
 
   struct re_pattern_buffer *buf;/* Compiled regular expression.  */
-  struct re_registers *regs;   /* For subexpression matches.  */
-  const char *msg;             /* Error message from re_compile_pattern.  */
-  int matchpos;                        /* Start position of match.  */
-  int offset;                  /* Current match offset.  */
-  int length;                  /* Length of first argument.  */
-  size_t repl_len;             /* Length of replacement.  */
+  struct re_registers *regs;    /* For subexpression matches.  */
+  const char *msg;              /* Error message from re_compile_pattern.  */
+  int matchpos;                 /* Start position of match.  */
+  int offset;                   /* Current match offset.  */
+  int length;                   /* Length of first argument.  */
+  size_t repl_len;              /* Length of replacement.  */
 
   if (bad_argc (me, argc, 2, 3))
     {
@@ -2518,11 +2375,8 @@ m4_patsubst (struct obstack *obs, int argc, 
macro_arguments *argv)
    while still flagging it as a potential error if an attempt is made
    to actually use the builtin.  */
 
-/*--------------------------------------------------------------------.
-| Issue a warning that this macro is a placeholder for an unsupported |
-| builtin that was requested while reloading a frozen file.           |
-`--------------------------------------------------------------------*/
-
+/* Issue a warning that this macro is a placeholder for an unsupported
+   builtin that was requested while reloading a frozen file.  */
 void
 m4_placeholder (struct obstack *obs M4_GNUC_UNUSED, int argc M4_GNUC_UNUSED,
                 macro_arguments *argv)
@@ -2531,14 +2385,11 @@ m4_placeholder (struct obstack *obs M4_GNUC_UNUSED, int 
argc M4_GNUC_UNUSED,
            quotearg_style_mem (locale_quoting_style, ARG (0), ARG_LEN (0)));
 }
 
-/*-------------------------------------------------------------------------.
-| This function handles all expansion of user defined and predefined      |
-| macros.  It is called with an obstack OBS, where the macros expansion        
   |
-| will be placed, as an unfinished object.  SYM points to the macro       |
-| definition, giving the expansion text.  ARGC and ARGV are the arguments, |
-| as usual.                                                               |
-`-------------------------------------------------------------------------*/
-
+/* This function handles all expansion of user defined and predefined
+   macros.  It is called with an obstack OBS, where the macros
+   expansion will be placed, as an unfinished object.  SYM points to
+   the macro definition, giving the expansion text.  ARGC and ARGV are
+   the arguments, as usual.  */
 void
 expand_user_macro (struct obstack *obs, symbol *sym,
                    int argc, macro_arguments *argv)
@@ -2580,14 +2431,14 @@ expand_user_macro (struct obstack *obs, symbol *sym,
           push_arg (obs, argv, i);
           break;
 
-        case '#':              /* number of arguments */
+        case '#': /* number of arguments */
           shipout_int (obs, argc - 1);
           text++;
           len--;
           break;
 
-        case '*':              /* all arguments */
-        case '@':              /* ... same, but quoted */
+        case '*': /* all arguments */
+        case '@': /* ... same, but quoted */
           push_args (obs, argv, false, *text == '@');
           text++;
           len--;
diff --git a/src/debug.c b/src/debug.c
index 831178b..75e5558 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
-   Copyright (C) 1991, 1992, 1993, 1994, 2004, 2006, 2007, 2008, 2009
-   Free Software Foundation, Inc.
+   Copyright (C) 1991, 1992, 1993, 1994, 2004, 2006, 2007, 2008, 2009,
+   2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -32,10 +32,7 @@ static struct obstack trace;
 
 static void debug_set_file (const call_info *, FILE *);
 
-/*----------------------------------.
-| Initialize the debugging module.  |
-`----------------------------------*/
-
+/* Initialize the debugging module.  */
 void
 debug_init (void)
 {
@@ -43,13 +40,10 @@ debug_init (void)
   obstack_init (&trace);
 }
 
-/*-------------------------------------------------------------------.
-| Function to decode the debugging flags OPTS of length LEN.  If LEN |
-| is SIZE_MAX, use strlen (OPTS) instead.  Used by main while       |
-| processing option -d, and by the builtin debugmode.  Return -1 if  |
-| the parse failed, otherwise change the debug level.               |
-`-------------------------------------------------------------------*/
-
+/* Function to decode the debugging flags OPTS of length LEN.  If LEN
+   is SIZE_MAX, use strlen (OPTS) instead.  Used by main while
+   processing option -d, and by the builtin debugmode.  Return -1 if
+   the parse failed, otherwise change the debug level.  */
 int
 debug_decode (const char *opts, size_t len)
 {
@@ -154,13 +148,10 @@ debug_decode (const char *opts, size_t len)
   return level;
 }
 
-/*-----------------------------------------------------------------.
-| Change the debug output stream to FP.  If the underlying file is |
-| the same as stdout, use stdout instead so that debug messages    |
-| appear in the correct relative position.  Report any failure on  |
-| behalf of CALLER.                                                |
-`-----------------------------------------------------------------*/
-
+/* Change the debug output stream to FP.  If the underlying file is
+   the same as stdout, use stdout instead so that debug messages
+   appear in the correct relative position.  Report any failure on
+   behalf of CALLER.  */
 static void
 debug_set_file (const call_info *caller, FILE *fp)
 {
@@ -191,10 +182,7 @@ debug_set_file (const call_info *caller, FILE *fp)
     }
 }
 
-/*-----------------------------------------------------------.
-| Serialize files.  Used before executing a system command.  |
-`-----------------------------------------------------------*/
-
+/* Serialize files.  Used before executing a system command.  */
 void
 debug_flush_files (void)
 {
@@ -222,13 +210,10 @@ debug_flush_files (void)
     }
 }
 
-/*-------------------------------------------------------------------.
-| Change the debug output to file NAME.  If NAME is NULL, debug             |
-| output is reverted to stderr, and if empty, debug output is       |
-| discarded.  Return true iff the output stream was changed.  Report |
-| errors on behalf of CALLER.                                       |
-`-------------------------------------------------------------------*/
-
+/* Change the debug output to file NAME.  If NAME is NULL, debug
+   output is reverted to stderr, and if empty, debug output is
+   discarded.  Return true iff the output stream was changed.  Report
+   errors on behalf of CALLER.  */
 bool
 debug_set_output (const call_info *caller, const char *name)
 {
@@ -251,10 +236,8 @@ debug_set_output (const call_info *caller, const char 
*name)
   return true;
 }
 
-/*-----------------------------------------------------------------------.
-| Print the header of a one-line debug message, starting by "m4debug:".        
 |
-`-----------------------------------------------------------------------*/
-
+/* Print the header of a one-line debug message, starting by
+   "m4debug:".  */
 void
 debug_message (const char *format, ...)
 {
@@ -283,12 +266,9 @@ debug_message (const char *format, ...)
    output from interfering with other debug messages generated by the
    various builtins.  */
 
-/*------------------------------------------------------------------.
-| Format the standard header attached to all tracing output lines,  |
-| using the context in INFO as appropriate.  Return the offset into |
-| the trace obstack where this particular trace begins.             |
-`------------------------------------------------------------------*/
-
+/* Format the standard header attached to all tracing output lines,
+   using the context in INFO as appropriate.  Return the offset into
+   the trace obstack where this particular trace begins.  */
 static unsigned int
 trace_header (const call_info *info)
 {
@@ -306,11 +286,8 @@ trace_header (const call_info *info)
   return result;
 }
 
-/*-----------------------------------------------------------------.
-| Print current tracing line starting at offset START, as returned |
-| from an earlier trace_header(), then clear the obstack.          |
-`-----------------------------------------------------------------*/
-
+/* Print current tracing line starting at offset START, as returned
+   from an earlier trace_header(), then clear the obstack.  */
 static void
 trace_flush (unsigned int start)
 {
@@ -326,11 +303,8 @@ trace_flush (unsigned int start)
   obstack_blank (&trace, start - len);
 }
 
-/*-------------------------------------------------------------------.
-| Do pre-argument-collection tracing for the macro call described in |
-| INFO.  Used from expand_macro ().                                  |
-`-------------------------------------------------------------------*/
-
+/* Do pre-argument-collection tracing for the macro call described in
+   INFO.  Used from expand_macro ().  */
 void
 trace_prepre (const call_info *info)
 {
@@ -343,13 +317,10 @@ trace_prepre (const call_info *info)
     }
 }
 
-/*------------------------------------------------------------------.
-| Format the parts of a trace line that are known via ARGV before   |
-| the macro is actually expanded.  Used from call_macro ().  Return |
-| the start of the current trace, in case other traces are printed  |
-| before this trace completes trace_post.                           |
-`------------------------------------------------------------------*/
-
+/* Format the parts of a trace line that are known via ARGV before the
+   macro is actually expanded.  Used from call_macro ().  Return the
+   start of the current trace, in case other traces are printed before
+   this trace completes trace_post.  */
 unsigned int
 trace_pre (macro_arguments *argv)
 {
@@ -371,12 +342,9 @@ trace_pre (macro_arguments *argv)
   return start;
 }
 
-/*------------------------------------------------------------------.
-| If requested by the trace state in INFO, format the final part of |
-| a trace line.  Then print all collected information from START,   |
-| returned from a prior trace_pre().  Used from call_macro ().      |
-`------------------------------------------------------------------*/
-
+/* If requested by the trace state in INFO, format the final part of a
+   trace line.  Then print all collected information from START,
+   returned from a prior trace_pre().  Used from call_macro ().  */
 void
 trace_post (unsigned int start, const call_info *info)
 {
diff --git a/src/eval.c b/src/eval.c
index 19b74d4..ac2c83b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2006, 2007, 2008,
-   2009 Free Software Foundation, Inc.
+   2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -80,9 +80,7 @@ static eval_error exp_term (const call_info *, eval_token, 
int32_t *);
 static eval_error unary_term (const call_info *, eval_token, int32_t *);
 static eval_error simple_term (const call_info *, eval_token, int32_t *);
 
-/*--------------------.
-| Lexical functions.  |
-`--------------------*/
+/* Lexical functions.  */
 
 /* Pointer to next character of input text.  */
 static const char *eval_text;
@@ -295,10 +293,7 @@ eval_lex (int32_t *val)
     }
 }
 
-/*---------------------------------------.
-| Main entry point, called from "eval".         |
-`---------------------------------------*/
-
+/* Main entry point, called from "eval".  */
 bool
 evaluate (const call_info *me, const char *expr, size_t len, int32_t *val)
 {
@@ -377,10 +372,7 @@ evaluate (const call_info *me, const char *expr, size_t 
len, int32_t *val)
   return true;
 }
 
-/*---------------------------.
-| Recursive descent parser.  |
-`---------------------------*/
-
+/* Recursive descent parser.  */
 static eval_error
 condition_term (const call_info *me, eval_token et, int32_t *v1)
 {
diff --git a/src/format.c b/src/format.c
index 7ebae7f..41bc3c9 100644
--- a/src/format.c
+++ b/src/format.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2006, 2007, 2008,
-   2009 Free Software Foundation, Inc.
+   2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -117,56 +117,53 @@ arg_double (const call_info *me, const char *str, size_t 
len)
   return value;
 }
 
-#define ARG_INT(i, argc, argv)                                         \
+#define ARG_INT(i, argc, argv)                                          \
   ((argc <= ++i) ? 0 : arg_int (me, ARG (i), ARG_LEN (i)))
 
-#define ARG_LONG(i, argc, argv)                                                
\
+#define ARG_LONG(i, argc, argv)                                         \
   ((argc <= ++i) ? 0L : arg_long (me, ARG (i), ARG_LEN (i)))
 
-#define ARG_STR(i, argc, argv)                                         \
+#define ARG_STR(i, argc, argv)                                          \
   ((argc <= ++i) ? "" : arg_string (me, ARG (i), ARG_LEN (i)))
 
-#define ARG_DOUBLE(i, argc, argv)                                      \
+#define ARG_DOUBLE(i, argc, argv)                                       \
   ((argc <= ++i) ? 0.0 : arg_double (me, ARG (i), ARG_LEN (i)))
 
 
-/*------------------------------------------------------------------.
-| The main formatting function.  Output is placed on the obstack    |
-| OBS, the first argument in ARGV is the formatting string, and the |
-| rest is arguments for the string.  Warn rather than invoke       |
-| unspecified behavior in the underlying printf when we do not     |
-| recognize a format.                                              |
-`------------------------------------------------------------------*/
-
+/* The main formatting function.  Output is placed on the obstack OBS,
+   the first argument in ARGV is the formatting string, and the rest
+   is arguments for the string.  Warn, rather than invoke unspecified
+   behavior in the underlying printf, when we do not recognize a
+   format.  */
 void
 expand_format (struct obstack *obs, int argc, macro_arguments *argv)
 {
   const call_info *me = arg_info (argv);/* Macro name.  */
-  const char *f;                       /* Format control string.  */
-  size_t f_len;                                /* Length of f.  */
-  const char *fmt;                     /* Position within f.  */
-  char fstart[] = "%'+- 0#*.*hhd";     /* Current format spec.  */
-  char *p;                             /* Position within fstart.  */
-  unsigned char c;                     /* A simple character.  */
-  int i = 1;                           /* Index within argc used so far.  */
-  bool valid_format = true;            /* True if entire format string ok.  */
+  const char *f;                        /* Format control string.  */
+  size_t f_len;                         /* Length of f.  */
+  const char *fmt;                      /* Position within f.  */
+  char fstart[] = "%'+- 0#*.*hhd";      /* Current format spec.  */
+  char *p;                              /* Position within fstart.  */
+  unsigned char c;                      /* A simple character.  */
+  int i = 1;                            /* Index within argc used so far.  */
+  bool valid_format = true;             /* True if entire format string ok.  */
 
   /* Flags.  */
-  char flags;                          /* Flags to use in fstart.  */
+  char flags;                           /* Flags to use in fstart.  */
   enum {
-    THOUSANDS  = 0x01, /* '\''. */
-    PLUS       = 0x02, /* '+'. */
-    MINUS      = 0x04, /* '-'. */
-    SPACE      = 0x08, /* ' '. */
-    ZERO       = 0x10, /* '0'. */
-    ALT                = 0x20, /* '#'. */
-    DONE       = 0x40  /* No more flags.  */
+    THOUSANDS   = 0x01, /* '\''. */
+    PLUS        = 0x02, /* '+'. */
+    MINUS       = 0x04, /* '-'. */
+    SPACE       = 0x08, /* ' '. */
+    ZERO        = 0x10, /* '0'. */
+    ALT         = 0x20, /* '#'. */
+    DONE        = 0x40  /* No more flags.  */
   };
 
   /* Precision specifiers.  */
-  int width;                   /* Minimum field width.  */
-  int prec;                    /* Precision.  */
-  char lflag;                  /* Long flag.  */
+  int width;                    /* Minimum field width.  */
+  int prec;                     /* Precision.  */
+  char lflag;                   /* Long flag.  */
 
   /* Specifiers we are willing to accept.  ok['x'] implies %x is ok.
      Various modifiers reduce the set, in order to avoid undefined
@@ -213,33 +210,33 @@ expand_format (struct obstack *obs, int argc, 
macro_arguments *argv)
         {
           switch (*fmt)
             {
-            case '\'':         /* thousands separator */
+            case '\'': /* thousands separator */
               ok['a'] = ok['A'] = ok['c'] = ok['e'] = ok['E']
                 = ok['o'] = ok['s'] = ok['x'] = ok['X'] = 0;
               flags |= THOUSANDS;
               break;
 
-            case '+':          /* mandatory sign */
+            case '+': /* mandatory sign */
               ok['c'] = ok['o'] = ok['s'] = ok['u'] = ok['x'] = ok['X'] = 0;
               flags |= PLUS;
               break;
 
-            case ' ':          /* space instead of positive sign */
+            case ' ': /* space instead of positive sign */
               ok['c'] = ok['o'] = ok['s'] = ok['u'] = ok['x'] = ok['X'] = 0;
               flags |= SPACE;
               break;
 
-            case '0':          /* zero padding */
+            case '0': /* zero padding */
               ok['c'] = ok['s'] = 0;
               flags |= ZERO;
               break;
 
-            case '#':          /* alternate output */
+            case '#': /* alternate output */
               ok['c'] = ok['d'] = ok['i'] = ok['s'] = ok['u'] = 0;
               flags |= ALT;
               break;
 
-            case '-':          /* left justification */
+            case '-': /* left justification */
               flags |= MINUS;
               break;
 
diff --git a/src/freeze.c b/src/freeze.c
index d4e3989..ec71a74 100644
--- a/src/freeze.c
+++ b/src/freeze.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2006, 2007, 2008,
-   2009 Free Software Foundation, Inc.
+   2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -23,10 +23,8 @@
 
 #include "m4.h"
 
-/*-------------------------------------------------------------------.
-| Destructively reverse a symbol list and return the reversed list.  |
-`-------------------------------------------------------------------*/
-
+/* Destructively reverse a symbol list and return the reversed
+   list.  */
 static symbol *
 reverse_symbol_list (symbol *sym)
 {
@@ -51,11 +49,8 @@ reverse_symbol_list (symbol *sym)
   return result;
 }
 
-/*-------------------------------------------------------------------.
-| Dump a stack of pushdef references to the stream F.  Designed as a |
-| callback for hack_all_symbols.                                     |
-`-------------------------------------------------------------------*/
-
+/* Dump a stack of pushdef references to the stream F.  Designed as a
+   callback for hack_all_symbols.  */
 static void
 dump_symbol_CB (symbol *sym, void *f)
 {
@@ -112,10 +107,7 @@ dump_symbol_CB (symbol *sym, void *f)
   reverse_symbol_list (stack);
 }
 
-/*------------------------------------------------.
-| Produce a frozen state to the given file NAME.  |
-`------------------------------------------------*/
-
+/* Produce a frozen state to the given file NAME.  */
 void
 produce_frozen_state (const char *name)
 {
@@ -175,10 +167,8 @@ produce_frozen_state (const char *name)
     m4_error (EXIT_FAILURE, errno, NULL, _("unable to create frozen state"));
 }
 
-/*----------------------------------------------------------------------.
-| Issue a message saying that some character is an EXPECTED character.  |
-`----------------------------------------------------------------------*/
-
+/* Issue a message saying that some character is an EXPECTED
+   character.  */
 static void
 issue_expect_message (int expected)
 {
@@ -189,12 +179,8 @@ issue_expect_message (int expected)
               _("expecting character `%c' in frozen file"), expected);
 }
 
-/*-------------------------------------------------.
-| Reload a frozen state from the given file NAME.  |
-`-------------------------------------------------*/
-
-/* We are seeking speed, here.  */
-
+/* Reload a frozen state from the given file NAME.  We are seeking
+   speed, here.  */
 void
 reload_frozen_state (const char *name)
 {
@@ -207,84 +193,84 @@ reload_frozen_state (const char *name)
   const builtin *bp;
   bool advance_line = true;
 
-#define GET_CHARACTER                                          \
-  do                                                           \
-    {                                                          \
-      if (advance_line)                                                \
-        {                                                      \
-          current_line++;                                      \
-          advance_line = false;                                        \
-        }                                                      \
-      (character = getc (file));                               \
-      if (character == '\n')                                   \
-        advance_line = true;                                   \
-    }                                                          \
+#define GET_CHARACTER                                           \
+  do                                                            \
+    {                                                           \
+      if (advance_line)                                         \
+        {                                                       \
+          current_line++;                                       \
+          advance_line = false;                                 \
+        }                                                       \
+      (character = getc (file));                                \
+      if (character == '\n')                                    \
+        advance_line = true;                                    \
+    }                                                           \
   while (0)
 
-#define GET_NUMBER(Number, AllowNeg)                           \
-  do                                                           \
-    {                                                          \
-      unsigned int n = 0;                                      \
-      while (isdigit (character) && n <= INT_MAX / 10U)                \
-        {                                                      \
-          n = 10 * n + character - '0';                                \
-          GET_CHARACTER;                                       \
-        }                                                      \
-      if (((AllowNeg) ? INT_MIN : INT_MAX) + 0U < n            \
-          || isdigit (character))                              \
-        m4_error (EXIT_FAILURE, 0, NULL,                       \
-                  _("integer overflow in frozen file"));       \
-      (Number) = n;                                            \
-    }                                                          \
+#define GET_NUMBER(Number, AllowNeg)                            \
+  do                                                            \
+    {                                                           \
+      unsigned int n = 0;                                       \
+      while (isdigit (character) && n <= INT_MAX / 10U)         \
+        {                                                       \
+          n = 10 * n + character - '0';                         \
+          GET_CHARACTER;                                        \
+        }                                                       \
+      if (((AllowNeg) ? INT_MIN : INT_MAX) + 0U < n             \
+          || isdigit (character))                               \
+        m4_error (EXIT_FAILURE, 0, NULL,                        \
+                  _("integer overflow in frozen file"));        \
+      (Number) = n;                                             \
+    }                                                           \
   while (0)
 
-#define VALIDATE(Expected)                                     \
-  do                                                           \
-    {                                                          \
-      if (character != (Expected))                             \
-        issue_expect_message (Expected);                       \
-    }                                                          \
+#define VALIDATE(Expected)                                      \
+  do                                                            \
+    {                                                           \
+      if (character != (Expected))                              \
+        issue_expect_message (Expected);                        \
+    }                                                           \
   while (0)
 
   /* Skip comments (`#' at beginning of line) and blank lines, setting
      character to the next directive or to EOF.  */
 
-#define GET_DIRECTIVE                                          \
-  do                                                           \
-    {                                                          \
-      GET_CHARACTER;                                           \
-      if (character == '#')                                    \
-        {                                                      \
-          while (character != EOF && character != '\n')                \
-            GET_CHARACTER;                                     \
-          VALIDATE ('\n');                                     \
-        }                                                      \
-    }                                                          \
+#define GET_DIRECTIVE                                           \
+  do                                                            \
+    {                                                           \
+      GET_CHARACTER;                                            \
+      if (character == '#')                                     \
+        {                                                       \
+          while (character != EOF && character != '\n')         \
+            GET_CHARACTER;                                      \
+          VALIDATE ('\n');                                      \
+        }                                                       \
+    }                                                           \
   while (character == '\n')
 
-#define GET_STRING(i)                                                  \
-  do                                                                   \
-    {                                                                  \
-      void *tmp;                                                       \
-      char *p;                                                         \
-      if (number[(i)] + 1 > allocated[(i)])                            \
-        {                                                              \
-          free (string[(i)]);                                          \
-          allocated[(i)] = number[(i)] + 1;                            \
-          string[(i)] = xcharalloc ((size_t) allocated[(i)]);          \
-        }                                                              \
-      if (number[(i)] > 0                                              \
-          && !fread (string[(i)], (size_t) number[(i)], 1, file))      \
-        m4_error (EXIT_FAILURE, 0, NULL,                               \
-                  _("premature end of frozen file"));                  \
-      string[(i)][number[(i)]] = '\0';                                 \
-      p = string[(i)];                                                 \
-      while ((tmp = memchr(p, '\n', number[(i)] - (p - string[(i)])))) \
-        {                                                              \
-          current_line++;                                              \
-          p = (char *) tmp + 1;                                                
\
-        }                                                              \
-    }                                                                  \
+#define GET_STRING(i)                                                   \
+  do                                                                    \
+    {                                                                   \
+      void *tmp;                                                        \
+      char *p;                                                          \
+      if (number[(i)] + 1 > allocated[(i)])                             \
+        {                                                               \
+          free (string[(i)]);                                           \
+          allocated[(i)] = number[(i)] + 1;                             \
+          string[(i)] = xcharalloc ((size_t) allocated[(i)]);           \
+        }                                                               \
+      if (number[(i)] > 0                                               \
+          && !fread (string[(i)], (size_t) number[(i)], 1, file))       \
+        m4_error (EXIT_FAILURE, 0, NULL,                                \
+                  _("premature end of frozen file"));                   \
+      string[(i)][number[(i)]] = '\0';                                  \
+      p = string[(i)];                                                  \
+      while ((tmp = memchr(p, '\n', number[(i)] - (p - string[(i)]))))  \
+        {                                                               \
+          current_line++;                                               \
+          p = (char *) tmp + 1;                                         \
+        }                                                               \
+    }                                                                   \
   while (0)
 
   file = m4_path_search (name, NULL);
diff --git a/src/input.c b/src/input.c
index cf4a068..5ffdbe3 100644
--- a/src/input.c
+++ b/src/input.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005, 2006,
-   2007, 2008, 2009 Free Software Foundation, Inc.
+   2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -76,10 +76,10 @@
 /* Type of an input block.  */
 enum input_type
 {
-  INPUT_STRING,        /* String resulting from macro expansion.  */
-  INPUT_FILE,  /* File from command line or include.  */
-  INPUT_CHAIN, /* FIFO chain of separate strings, builtins, and $@ refs.  */
-  INPUT_EOF    /* Placeholder at bottom of input stack.  */
+  INPUT_STRING, /* String resulting from macro expansion.  */
+  INPUT_FILE,   /* File from command line or include.  */
+  INPUT_CHAIN,  /* FIFO chain of separate strings, builtins, and $@ refs.  */
+  INPUT_EOF     /* Placeholder at bottom of input stack.  */
 };
 
 typedef enum input_type input_type;
@@ -89,32 +89,32 @@ typedef struct input_block input_block;
 /* A block of input to be scanned.  */
 struct input_block
 {
-  input_block *prev;           /* Previous input_block on the input stack.  */
-  input_type type;             /* See enum values.  */
-  const char *file;            /* File where this input is from.  */
-  int line;                    /* Line where this input is from.  */
+  input_block *prev;            /* Previous input_block on the input stack.  */
+  input_type type;              /* See enum values.  */
+  const char *file;             /* File where this input is from.  */
+  int line;                     /* Line where this input is from.  */
   union
     {
       struct
         {
-          char *str;           /* Remaining string value.  */
-          size_t len;          /* Remaining length.  */
+          char *str;            /* Remaining string value.  */
+          size_t len;           /* Remaining length.  */
         }
-        u_s;   /* INPUT_STRING */
+        u_s;    /* INPUT_STRING */
       struct
         {
-          FILE *fp;                 /* Input file handle.  */
+          FILE *fp;                  /* Input file handle.  */
           bool_bitfield end : 1;     /* True if peek has seen EOF.  */
           bool_bitfield close : 1;   /* True to close file on pop.  */
           bool_bitfield advance : 1; /* Track previous start_of_input_line.  */
         }
-        u_f;   /* INPUT_FILE */
+        u_f;    /* INPUT_FILE */
       struct
         {
-          token_chain *chain;  /* Current link in chain.  */
-          token_chain *end;    /* Last link in chain.  */
+          token_chain *chain;   /* Current link in chain.  */
+          token_chain *end;     /* Last link in chain.  */
         }
-        u_c;   /* INPUT_CHAIN */
+        u_c;    /* INPUT_CHAIN */
     }
   u;
 };
@@ -160,10 +160,10 @@ static bool start_of_input_line;
 /* Flag for next_char () to recognize change in input block.  */
 static bool input_change;
 
-#define CHAR_EOF       (UCHAR_MAX + 1) /* Return on EOF.  */
-#define CHAR_MACRO     (UCHAR_MAX + 2) /* Return for MACRO token.  */
-#define CHAR_QUOTE     (UCHAR_MAX + 3) /* Return for quoted string.  */
-#define CHAR_ARGV      (UCHAR_MAX + 4) /* Return for $@ reference.  */
+#define CHAR_EOF        (UCHAR_MAX + 1) /* Return on EOF.  */
+#define CHAR_MACRO      (UCHAR_MAX + 2) /* Return for MACRO token.  */
+#define CHAR_QUOTE      (UCHAR_MAX + 3) /* Return for quoted string.  */
+#define CHAR_ARGV       (UCHAR_MAX + 4) /* Return for $@ reference.  */
 
 /* Quote chars.  */
 string_pair curr_quote;
@@ -205,11 +205,9 @@ static const char *token_type_string (token_type);
 #endif /* DEBUG_INPUT */
 
 
-/*-------------------------------------------------------------------.
-| Given an obstack OBS, capture any unfinished text as a link in the |
-| chain that starts at *START and ends at *END.  START may be NULL   |
-| if *END is non-NULL.                                               |
-`-------------------------------------------------------------------*/
+/* Given an obstack OBS, capture any unfinished text as a link in the
+   chain that starts at *START and ends at *END.  START may be NULL if
+   *END is non-NULL.  */
 void
 make_text_link (struct obstack *obs, token_chain **start, token_chain **end)
 {
@@ -235,15 +233,12 @@ make_text_link (struct obstack *obs, token_chain **start, 
token_chain **end)
     }
 }
 
-/*-------------------------------------------------------------------.
-| push_file () pushes an input file on the input stack, saving the   |
-| current file name and line number.  If next is non-NULL, this push |
-| invalidates a call to push_string_init (), whose storage is       |
-| consequently released.  If CLOSE_WHEN_DONE, then close FP after    |
-| EOF is detected.  TITLE is used as the location for text parsed    |
-| from the file (not necessarily the file name).                    |
-`-------------------------------------------------------------------*/
-
+/* push_file () pushes an input file on the input stack, saving the
+   current file name and line number.  If next is non-NULL, this push
+   invalidates a call to push_string_init (), whose storage is
+   consequently released.  If CLOSE_WHEN_DONE, then close FP after EOF
+   is detected.  TITLE is used as the location for text parsed from
+   the file (not necessarily the file name).  */
 void
 push_file (FILE *fp, const char *title, bool close_when_done)
 {
@@ -275,12 +270,10 @@ push_file (FILE *fp, const char *title, bool 
close_when_done)
   isp = i;
 }
 
-/*------------------------------------------------------------------.
-| Given an obstack OBS, capture any unfinished text as a link, then |
-| append the builtin FUNC as the next link in the chain that starts |
-| at *START and ends at *END.  START may be NULL if *END is         |
-| non-NULL.                                                         |
-`------------------------------------------------------------------*/
+/* Given an obstack OBS, capture any unfinished text as a link, then
+   append the builtin FUNC as the next link in the chain that starts
+   at *START and ends at *END.  START may be NULL if *END is
+   non-NULL.  */
 void
 append_macro (struct obstack *obs, builtin_func *func, token_chain **start,
               token_chain **end)
@@ -301,11 +294,8 @@ append_macro (struct obstack *obs, builtin_func *func, 
token_chain **start,
   chain->u.func = func;
 }
 
-/*------------------------------------------------------------------.
-| push_macro () pushes the builtin FUNC onto the obstack OBS, which |
-| is either the input or wrapup stack.                              |
-`------------------------------------------------------------------*/
-
+/* push_macro () pushes the builtin FUNC onto the obstack OBS, which
+   is either the input or wrapup stack.  */
 void
 push_macro (struct obstack *obs, builtin_func *func)
 {
@@ -321,11 +311,8 @@ push_macro (struct obstack *obs, builtin_func *func)
   append_macro (obs, func, &block->u.u_c.chain, &block->u.u_c.end);
 }
 
-/*--------------------------------------------------------------.
-| First half of push_string ().  The return value points to the |
-| obstack where expansion text should be placed.                |
-`--------------------------------------------------------------*/
-
+/* First half of push_string ().  The return value points to the
+   obstack where expansion text should be placed.  */
 struct obstack *
 push_string_init (const char *file, int line)
 {
@@ -343,30 +330,29 @@ push_string_init (const char *file, int line)
   return current_input;
 }
 
-/*--------------------------------------------------------------------.
-| This function allows gathering input from multiple locations,              |
-| rather than copying everything consecutively onto the input stack.  |
-| Must be called between push_string_init and push_string_finish.     |
-|                                                                     |
-| Convert the current input block into a chain if it is not one              |
-| already, and add the contents of TOKEN as a new link in the chain.  |
-| LEVEL describes the current expansion level, or -1 if TOKEN is      |
-| composite, its contents reside entirely on the current_input       |
-| stack, and TOKEN lives in temporary storage.  If TOKEN is a simple  |
-| string, then it belongs to the current macro expansion.  If TOKEN   |
-| is composite, then each text link has a level of -1 if it belongs   |
-| to the current macro expansion, otherwise it is a back-reference    |
-| where level tracks which stack it came from.  The resulting input   |
-| block chain contains links with a level of -1 if the text belongs   |
-| to the input stack, otherwise the level where the back-reference    |
-| comes from.                                                        |
-|                                                                     |
-| Return true only if a reference was created to the contents of      |
-| TOKEN, in which case, LEVEL was non-negative and the lifetime of    |
-| TOKEN and its contents must last as long as the input engine can    |
-| parse references to it.  INUSE determines whether composite tokens  |
-| should favor creating back-references or copying text.             |
-`--------------------------------------------------------------------*/
+/* This function allows gathering input from multiple locations,
+   rather than copying everything consecutively onto the input
+   stack.  Must be called between push_string_init and
+   push_string_finish.
+
+   Convert the current input block into a chain if it is not one
+   already, and add the contents of TOKEN as a new link in the
+   chain.  LEVEL describes the current expansion level, or -1 if
+   TOKEN is composite, its contents reside entirely on the
+   current_input stack, and TOKEN lives in temporary storage.  If
+   TOKEN is a simple string, then it belongs to the current macro
+   expansion.  If TOKEN is composite, then each text link has a
+   level of -1 if it belongs to the current macro expansion,
+   otherwise it is a back-reference where level tracks which stack
+   it came from.  The resulting input block chain contains links
+   with a level of -1 if the text belongs to the input stack,
+   otherwise the level where the back-reference comes from.
+
+   Return true only if a reference was created to the contents of
+   TOKEN, in which case, LEVEL was non-negative and the lifetime of
+   TOKEN and its contents must last as long as the input engine can
+   parse references to it.  INUSE determines whether composite
+   tokens should favor creating back-references or copying text.  */
 bool
 push_token (token_data *token, int level, bool inuse)
 {
@@ -508,12 +494,9 @@ push_token (token_data *token, int level, bool inuse)
   return inuse;
 }
 
-/*-------------------------------------------------------------------.
-| Last half of push_string ().  All remaining unfinished text on the |
-| obstack returned from push_string_init is collected into the input |
-| stack.                                                             |
-`-------------------------------------------------------------------*/
-
+/* Last half of push_string ().  All remaining unfinished text on
+   the obstack returned from push_string_init is collected into the
+   input stack.  */
 void
 push_string_finish (void)
 {
@@ -543,12 +526,9 @@ push_string_finish (void)
   next = NULL;
 }
 
-/*--------------------------------------------------------------.
-| The function push_wrapup_init () returns an obstack ready for |
-| direct expansion of wrapup text, and should be followed by    |
-| push_wrapup_finish ().                                        |
-`--------------------------------------------------------------*/
-
+/* The function push_wrapup_init () returns an obstack ready for
+   direct expansion of wrapup text, and should be followed by
+   push_wrapup_finish ().  */
 struct obstack *
 push_wrapup_init (const call_info *caller, token_chain ***end)
 {
@@ -587,10 +567,8 @@ push_wrapup_init (const call_info *caller, token_chain 
***end)
   return wrapup_stack;
 }
 
-/*---------------------------------------------------------------.
-| After pushing wrapup text, push_wrapup_finish () completes the |
-| bookkeeping.                                                   |
-`---------------------------------------------------------------*/
+/* After pushing wrapup text, push_wrapup_finish () completes the
+   bookkeeping.  */
 void
 push_wrapup_finish (void)
 {
@@ -598,15 +576,12 @@ push_wrapup_finish (void)
 }
 
 
-/*-------------------------------------------------------------------.
-| The function pop_input () pops one level of input sources.  If     |
-| CLEANUP, and the popped input_block is a file, current_file and    |
-| current_line are reset to the saved values before the memory for   |
-| the input_block is released.  The return value is false if cleanup |
-| is still required, or if the current input source is not           |
-| exhausted.                                                         |
-`-------------------------------------------------------------------*/
-
+/* The function pop_input () pops one level of input sources.  If
+   CLEANUP, and the popped input_block is a file, current_file and
+   current_line are reset to the saved values before the memory for
+   the input_block is released.  The return value is false if cleanup
+   is still required, or if the current input source is not
+   exhausted.  */
 static bool
 pop_input (bool cleanup)
 {
@@ -686,19 +661,17 @@ pop_input (bool cleanup)
     }
   obstack_free (current_input, isp);
   cached_quote = NULL;
-  next = NULL;                 /* might be set in push_string_init () */
+  next = NULL; /* might be set in push_string_init () */
 
   isp = tmp;
   input_change = true;
   return true;
 }
 
-/*------------------------------------------------------------------------.
-| To switch input over to the wrapup stack, main () calls pop_wrapup ().  |
-| Since wrapup text can install new wrapup text, pop_wrapup () returns   |
-| false when there is no wrapup text on the stack, and true otherwise.   |
-`------------------------------------------------------------------------*/
-
+/* To switch input over to the wrapup stack, main () calls pop_wrapup
+   ().  Since wrapup text can install new wrapup text, pop_wrapup ()
+   returns false when there is no wrapup text on the stack, and true
+   otherwise.  */
 bool
 pop_wrapup (void)
 {
@@ -731,10 +704,8 @@ pop_wrapup (void)
   return true;
 }
 
-/*--------------------------------------------------------------.
-| Dump a representation of INPUT to the obstack OBS, for use in |
-| tracing.                                                      |
-`--------------------------------------------------------------*/
+/* Dump a representation of INPUT to the obstack OBS, for use in
+   tracing.  */
 void
 input_print (struct obstack *obs)
 {
@@ -798,20 +769,17 @@ input_print (struct obstack *obs)
 }
 
 
-/*-------------------------------------------------------------------.
-| Return a pointer to the available bytes of the current input       |
-| block, and set *LEN to the length of the result.  If ALLOW_QUOTE,  |
-| do not return a buffer for a quoted string.  If the result of      |
-| next_char() would not fit in an unsigned char (for example,        |
-| CHAR_EOF or CHAR_QUOTE), or if the input block does not have an    |
-| available buffer at the moment (for example, when hitting a buffer |
-| block boundary of a file), return NULL, and the caller must fall   |
-| back on using next_char().  The buffer is only valid until the     |
-| next consume_buffer() or next_char().  When searching for a        |
-| particular byte, it is more efficient to search a buffer at a time |
-| than it is to repeatedly call next_char.                           |
-`-------------------------------------------------------------------*/
-
+/* Return a pointer to the available bytes of the current input block,
+   and set *LEN to the length of the result.  If ALLOW_QUOTE, do not
+   return a buffer for a quoted string.  If the result of next_char()
+   would not fit in an unsigned char (for example, CHAR_EOF or
+   CHAR_QUOTE), or if the input block does not have an available
+   buffer at the moment (for example, when hitting a buffer block
+   boundary of a file), return NULL, and the caller must fall back on
+   using next_char().  The buffer is only valid until the next
+   consume_buffer() or next_char().  When searching for a particular
+   byte, it is more efficient to search a buffer at a time than it is
+   to repeatedly call next_char.  */
 static const char *
 next_buffer (size_t *len, bool allow_quote)
 {
@@ -902,12 +870,9 @@ next_buffer (size_t *len, bool allow_quote)
     }
 }
 
-/*-----------------------------------------------------------------.
-| Consume LEN bytes from the current input block, as though by LEN |
-| calls to next_char().  LEN must be less than or equal to the     |
-| previous length returned by a successful call to next_buffer().  |
-`-----------------------------------------------------------------*/
-
+/* Consume LEN bytes from the current input block, as though by LEN
+   calls to next_char().  LEN must be less than or equal to the
+   previous length returned by a successful call to next_buffer().  */
 static void
 consume_buffer (size_t len)
 {
@@ -957,16 +922,13 @@ consume_buffer (size_t len)
     }
 }
 
-/*------------------------------------------------------------------.
-| Low level input is done a character at a time.  The function      |
-| peek_input () is used to look at the next character in the input  |
-| stream.  At any given time, it reads from the input_block on the  |
-| top of the current input stack.  The return value is an unsigned  |
-| char, CHAR_EOF if there is no more input, CHAR_MACRO if a builtin |
-| token occurs next, or CHAR_ARGV if ALLOW_ARGV and the input is    |
-| visiting an argv reference with the correct quoting.              |
-`------------------------------------------------------------------*/
-
+/* Low level input is done a character at a time.  The function
+   peek_input () is used to look at the next character in the input
+   stream.  At any given time, it reads from the input_block on the
+   top of the current input stack.  The return value is an unsigned
+   char, CHAR_EOF if there is no more input, CHAR_MACRO if a builtin
+   token occurs next, or CHAR_ARGV if ALLOW_ARGV and the input is
+   visiting an argv reference with the correct quoting.  */
 static int
 peek_input (bool allow_argv)
 {
@@ -1054,24 +1016,21 @@ peek_input (bool allow_argv)
     }
 }
 
-/*-------------------------------------------------------------------.
-| The function next_char () is used to read and advance the input to |
-| the next character.  It also manages line numbers for error        |
-| messages, so they do not get wrong due to lookahead.  The token    |
-| consisting of a newline alone is taken as belonging to the line it |
-| ends, and the current line number is not incremented until the     |
-| next character is read.  99.9% of all calls will read from a       |
-| string, so factor that out into a macro for speed.  If             |
-| ALLOW_QUOTE, and the current input matches the current quote age,  |
-| return CHAR_QUOTE and leave consumption of data for                |
-| append_quote_token; otherwise, if ALLOW_ARGV and the current input |
-| matches an argv reference with the correct quoting, return         |
-| CHAR_ARGV and leave consumption of data for init_argv_token.       |
-`-------------------------------------------------------------------*/
-
-#define next_char(AQ, AA)                                              \
-  (isp->type == INPUT_STRING && isp->u.u_s.len && !input_change                
\
-   ? (isp->u.u_s.len--, to_uchar (*isp->u.u_s.str++))                  \
+/* The function next_char () is used to read and advance the input to
+   the next character.  It also manages line numbers for error
+   messages, so they do not get wrong due to lookahead.  The token
+   consisting of a newline alone is taken as belonging to the line it
+   ends, and the current line number is not incremented until the next
+   character is read.  99.9% of all calls will read from a string, so
+   factor that out into a macro for speed.  If ALLOW_QUOTE, and the
+   current input matches the current quote age, return CHAR_QUOTE and
+   leave consumption of data for append_quote_token; otherwise, if
+   ALLOW_ARGV and the current input matches an argv reference with the
+   correct quoting, return CHAR_ARGV and leave consumption of data for
+   init_argv_token.  */
+#define next_char(AQ, AA)                                               \
+  (isp->type == INPUT_STRING && isp->u.u_s.len && !input_change         \
+   ? (isp->u.u_s.len--, to_uchar (*isp->u.u_s.str++))                   \
    : next_char_1 (AQ, AA))
 
 static int
@@ -1198,12 +1157,9 @@ next_char_1 (bool allow_quote, bool allow_argv)
     }
 }
 
-/*-------------------------------------------------------------------.
-| skip_line () simply discards all immediately following characters, |
-| up to the first newline.  It is only used from m4_dnl ().  Report  |
-| warnings on behalf of NAME.                                        |
-`-------------------------------------------------------------------*/
-
+/* skip_line () simply discards all immediately following characters,
+   up to the first newline.  It is only used from m4_dnl ().  Report
+   warnings on behalf of NAME.  */
 void
 skip_line (const call_info *name)
 {
@@ -1235,15 +1191,12 @@ skip_line (const call_info *name)
     m4_warn (0, name, _("end of file treated as newline"));
 }
 
-/*------------------------------------------------------------------.
-| When next_token() sees a builtin token with peek_input, this     |
-| retrieves the value of the function pointer, stores it in TD, and |
-| consumes the input so the caller does not need to do next_char.   |
-| If OBS, TD will be converted to a composite token using storage   |
-| from OBS as necessary; otherwise, if TD is NULL, the builtin is   |
-| discarded.                                                        |
-`------------------------------------------------------------------*/
-
+/* When next_token() sees a builtin token with peek_input, this
+   retrieves the value of the function pointer, stores it in TD, and
+   consumes the input so the caller does not need to do next_char.  If
+   OBS, TD will be converted to a composite token using storage from
+   OBS as necessary; otherwise, if TD is NULL, the builtin is
+   discarded.  */
 static void
 init_macro_token (struct obstack *obs, token_data *td)
 {
@@ -1274,12 +1227,10 @@ init_macro_token (struct obstack *obs, token_data *td)
   chain->u.func = NULL;
 }
 
-/*-------------------------------------------------------------------.
-| When a QUOTE token is seen, convert TD to a composite (if it is    |
-| not one already), consisting of any unfinished text on OBS, as     |
-| well as the quoted token from the top of the input stack.  Use OBS |
-| for any additional allocations needed to store the token chain.    |
-`-------------------------------------------------------------------*/
+/* When a QUOTE token is seen, convert TD to a composite (if it is not
+   one already), consisting of any unfinished text on OBS, as well as
+   the quoted token from the top of the input stack.  Use OBS for any
+   additional allocations needed to store the token chain.  */
 static void
 append_quote_token (struct obstack *obs, token_data *td)
 {
@@ -1321,11 +1272,9 @@ append_quote_token (struct obstack *obs, token_data *td)
 }
 
 
-/*-------------------------------------------------------------------.
-| When an ARGV token is seen, convert TD to point to it via a       |
-| composite token.  Use OBS for any additional allocations needed to |
-| store the token chain.                                            |
-`-------------------------------------------------------------------*/
+/* When an ARGV token is seen, convert TD to point to it via a
+   composite token.  Use OBS for any additional allocations needed to
+   store the token chain.  */
 static void
 init_argv_token (struct obstack *obs, token_data *td)
 {
@@ -1381,20 +1330,17 @@ init_argv_token (struct obstack *obs, token_data *td)
 }
 
 
-/*------------------------------------------------------------------.
-| If the string S of length SLEN matches the next characters of the |
-| input stream, return true.  If CONSUME, the first character has   |
-| already been matched.  If a match is found and CONSUME is true,   |
-| the input is discarded; otherwise any characters read are pushed  |
-| back again.  The function is used only when multicharacter quotes |
-| or comment delimiters are used.                                   |
-`------------------------------------------------------------------*/
-
+/* If the string S of length SLEN matches the next characters of the
+   input stream, return true.  If CONSUME, the first character has
+   already been matched.  If a match is found and CONSUME is true, the
+   input is discarded; otherwise any characters read are pushed back
+   again.  The function is used only when multicharacter quotes or
+   comment delimiters are used.  */
 static bool
 match_input (const char *s, size_t slen, bool consume)
 {
-  int n;                       /* number of characters matched */
-  int ch;                      /* input character */
+  int n;                        /* number of characters matched */
+  int ch;                       /* input character */
   const char *t;
   bool result = false;
   size_t len;
@@ -1423,7 +1369,7 @@ match_input (const char *s, size_t slen, bool consume)
     {
       if (consume)
         next_char (false, false);
-      return true;                     /* short match */
+      return true;                      /* short match */
     }
 
   next_char (false, false);
@@ -1431,7 +1377,7 @@ match_input (const char *s, size_t slen, bool consume)
     {
       next_char (false, false);
       n++;
-      if (--slen == 1)         /* long match */
+      if (--slen == 1)          /* long match */
         {
           if (consume)
             return true;
@@ -1447,28 +1393,22 @@ match_input (const char *s, size_t slen, bool consume)
   return result;
 }
 
-/*--------------------------------------------------------------------.
-| The macro MATCH() is used to match a string S of length SLEN        |
-| against the input.  The first character is handled inline for       |
-| speed, and S[SLEN] must be safe to dereference (it is faster to do  |
-| character comparison prior to length checks).  This improves        |
-| efficiency for the common case of single character quotes and       |
-| comment delimiters, while being safe for disabled delimiters as     |
-| well as longer delimiters.  If CONSUME, then CH is the result of    |
-| next_char, and a successful match will discard the matched string.  |
-| Otherwise, CH is the result of peek_input, and the input stream is  |
-| effectively unchanged.                                              |
-`--------------------------------------------------------------------*/
-
-#define MATCH(ch, s, slen, consume)                                    \
-  (to_uchar ((s)[0]) == (ch)                                           \
+/* The macro MATCH() is used to match a string S of length SLEN
+   against the input.  The first character is handled inline for
+   speed, and S[SLEN] must be safe to dereference (it is faster to do
+   character comparison prior to length checks).  This improves
+   efficiency for the common case of single character quotes and
+   comment delimiters, while being safe for disabled delimiters as
+   well as longer delimiters.  If CONSUME, then CH is the result of
+   next_char, and a successful match will discard the matched string.
+   Otherwise, CH is the result of peek_input, and the input stream is
+   effectively unchanged.  */
+#define MATCH(ch, s, slen, consume)                                     \
+  (to_uchar ((s)[0]) == (ch)                                            \
    && ((slen) >> 1 ? match_input (s, slen, consume) : (slen)))
 
 
-/*--------------------------------------------------------.
-| Initialize input stacks, and quote/comment characters.  |
-`--------------------------------------------------------*/
-
+/* Initialize input stacks, and quote/comment characters.  */
 void
 input_init (void)
 {
@@ -1511,13 +1451,10 @@ input_init (void)
 }
 
 
-/*-----------------------------------------------------------------.
-| Set the quote delimiters to LQ and RQ, with respective lengths   |
-| LQ_LEN and RQ_LEN.  Used by m4_changequote ().  Pass NULL if the |
-| argument was not present, to distinguish from an explicit empty  |
-| string.                                                          |
-`-----------------------------------------------------------------*/
-
+/* Set the quote delimiters to LQ and RQ, with respective lengths
+   LQ_LEN and RQ_LEN.  Used by m4_changequote ().  Pass NULL if the
+   argument was not present, to distinguish from an explicit empty
+   string.  */
 void
 set_quotes (const char *lq, size_t lq_len, const char *rq, size_t rq_len)
 {
@@ -1556,13 +1493,10 @@ set_quotes (const char *lq, size_t lq_len, const char 
*rq, size_t rq_len)
   set_quote_age ();
 }
 
-/*-----------------------------------------------------------------.
-| Set the comment delimiters to BC and EC, with respective lengths |
-| BC_LEN and EC_LEN.  Used by m4_changecom ().  Pass NULL if the   |
-| argument was not present, to distinguish from an explicit empty  |
-| string.                                                          |
-`-----------------------------------------------------------------*/
-
+/* Set the comment delimiters to BC and EC, with respective lengths
+   BC_LEN and EC_LEN.  Used by m4_changecom ().  Pass NULL if the
+   argument was not present, to distinguish from an explicit empty
+   string.  */
 void
 set_comment (const char *bc, size_t bc_len, const char *ec, size_t ec_len)
 {
@@ -1601,13 +1535,10 @@ set_comment (const char *bc, size_t bc_len, const char 
*ec, size_t ec_len)
 
 #ifdef ENABLE_CHANGEWORD
 
-/*-----------------------------------------------------------------.
-| Set the regular expression for recognizing words to REGEXP of    |
-| length LEN, and report errors on behalf of CALLER.  If REGEXP is |
-| NULL, revert back to the default parsing rules.  If LEN is       |
-| SIZE_MAX, use strlen(REGEXP) instead.                            |
-`-----------------------------------------------------------------*/
-
+/* Set the regular expression for recognizing words to REGEXP of
+   length LEN, and report errors on behalf of CALLER.  If REGEXP is
+   NULL, revert back to the default parsing rules.  If LEN is
+   SIZE_MAX, use strlen(REGEXP) instead.  */
 void
 set_word_regexp (const call_info *caller, const char *regexp, size_t len)
 {
@@ -1788,29 +1719,26 @@ quote_cache (struct obstack *obs, unsigned int age, 
const string_pair *quotes)
 }
 
 
-/*--------------------------------------------------------------------.
-| Parse a single token from the input stream, set TD to its          |
-| contents, and return its type.  A token is TOKEN_EOF if the        |
-| input_stack is empty; TOKEN_STRING for a quoted string;            |
-| TOKEN_COMMENT for a comment; TOKEN_WORD for something that is a     |
-| potential macro name; and TOKEN_SIMPLE for any single character     |
-| that is not a part of any of the previous types.  If LINE is not    |
-| NULL, set *LINE to the line where the token starts.  If OBS is not  |
-| NULL, expand TOKEN_STRING and TOKEN_COMMENT directly into OBS              |
-| rather than in token_stack temporary storage area, and TD could be  |
-| a TOKEN_COMP instead of the usual TOKEN_TEXT.  If ALLOW_ARGV, OBS   |
-| must be non-NULL, and an entire series of arguments can be         |
-| returned as TOKEN_ARGV when a $@ reference is encountered.  Report  |
-| errors (unterminated comments or strings) on behalf of CALLER, if   |
-| non-NULL.                                                          |
-|                                                                    |
-| Next_token () returns the token type, and passes back a pointer to  |
-| the token data through TD.  Non-string token text is collected on   |
-| the obstack token_stack, which never contains more than one token   |
-| text at a time.  The storage pointed to by the fields in TD is      |
-| therefore subject to change the next time next_token () is called.  |
-`--------------------------------------------------------------------*/
-
+/* Parse a single token from the input stream, set TD to its contents,
+   and return its type.  A token is TOKEN_EOF if the input_stack is
+   empty; TOKEN_STRING for a quoted string; TOKEN_COMMENT for a
+   comment; TOKEN_WORD for something that is a potential macro name;
+   and TOKEN_SIMPLE for any single character that is not a part of any
+   of the previous types.  If LINE is not NULL, set *LINE to the line
+   where the token starts.  If OBS is not NULL, expand TOKEN_STRING
+   and TOKEN_COMMENT directly into OBS rather than in token_stack
+   temporary storage area, and TD could be a TOKEN_COMP instead of the
+   usual TOKEN_TEXT.  If ALLOW_ARGV, OBS must be non-NULL, and an
+   entire series of arguments can be returned as TOKEN_ARGV when a $@
+   reference is encountered.  Report errors (unterminated comments or
+   strings) on behalf of CALLER, if non-NULL.
+
+   Next_token () returns the token type, and passes back a pointer to
+   the token data through TD.  Non-string token text is collected on
+   the obstack token_stack, which never contains more than one token
+   text at a time.  The storage pointed to by the fields in TD is
+   therefore subject to change the next time next_token () is
+   called.  */
 token_type
 next_token (token_data *td, int *line, struct obstack *obs, bool allow_argv,
             const call_info *caller)
@@ -2163,10 +2091,7 @@ next_token (token_data *td, int *line, struct obstack 
*obs, bool allow_argv,
   return type;
 }
 
-/*-----------------------------------------------.
-| Peek at the next token from the input stream.  |
-`-----------------------------------------------*/
-
+/* Peek at the next token from the input stream.  */
 token_type
 peek_token (void)
 {
@@ -2226,7 +2151,7 @@ static const char *
 token_type_string (token_type t)
 {
  switch (t)
-    {                          /* TOKSW */
+    { /* TOKSW */
     case TOKEN_EOF:
       return "EOF";
     case TOKEN_STRING:
@@ -2255,7 +2180,7 @@ print_token (const char *s, token_type t, token_data *td)
 {
   xfprintf (stderr, "%s: ", s);
   switch (t)
-    {                          /* TOKSW */
+    { /* TOKSW */
     case TOKEN_OPEN:
     case TOKEN_COMMA:
     case TOKEN_CLOSE:
diff --git a/src/m4.c b/src/m4.c
index ccc350b..e4a941c 100644
--- a/src/m4.c
+++ b/src/m4.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005, 2006,
-   2007, 2008, 2009 Free Software Foundation, Inc.
+   2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -69,22 +69,19 @@ int retcode;
 struct macro_definition
 {
   struct macro_definition *next;
-  int code;                    /* See label `defer'.  */
+  int code;                     /* See label `defer'.  */
   const char *arg;
 };
 typedef struct macro_definition macro_definition;
 
 /* Error handling functions.  */
 
-/*------------------------------------------------------------------.
-| Helper for all the error reporting, as a wrapper around          |
-| error_at_line.  Report error message based on FORMAT and ARGS, on |
-| 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: '.                                             |
-`------------------------------------------------------------------*/
-
+/* Helper for all the error reporting, as a wrapper around
+   error_at_line.  Report error message based on FORMAT and ARGS, on
+   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: '.  */
 static void M4_GNUC_PRINTF (5, 0)
 m4_verror_at_line (bool warn, int status, int errnum, const call_info *caller,
                    const char *format, va_list args)
@@ -134,13 +131,10 @@ m4_verror_at_line (bool warn, int status, int errnum, 
const call_info *caller,
     retcode = EXIT_FAILURE;
 }
 
-/*------------------------------------------------------------------.
-| Wrapper around error.  Report error message based on FORMAT and   |
-| subsequent args, on behalf of CALLER (if any), and the current    |
-| input line (if any).  If ERRNUM, decode the errno value that      |
-| caused the error.  If STATUS, exit immediately with that status.  |
-`------------------------------------------------------------------*/
-
+/* Wrapper around error.  Report error message based on FORMAT and
+   subsequent args, on behalf of CALLER (if any), and the current
+   input line (if any).  If ERRNUM, decode the errno value that caused
+   the error.  If STATUS, exit immediately with that status.  */
 void
 m4_error (int status, int errnum, const call_info *caller,
           const char *format, ...)
@@ -153,13 +147,10 @@ m4_error (int status, int errnum, const call_info *caller,
   va_end (args);
 }
 
-/*------------------------------------------------------------------.
-| Wrapper around error.  Report warning message based on FORMAT and |
-| subsequent args, on behalf of CALLER (if any), and the current    |
-| input line (if any).  If ERRNUM, decode the errno value that      |
-| caused the warning.                                              |
-`------------------------------------------------------------------*/
-
+/* Wrapper around error.  Report warning message based on FORMAT and
+   subsequent args, on behalf of CALLER (if any), and the current
+   input line (if any).  If ERRNUM, decode the errno value that caused
+   the warning.  */
 void
 m4_warn (int errnum, const call_info *caller, const char *format, ...)
 {
@@ -174,10 +165,7 @@ m4_warn (int errnum, const call_info *caller, const char 
*format, ...)
 
 #ifdef USE_STACKOVF
 
-/*---------------------------------------.
-| Tell user stack overflowed and abort.         |
-`---------------------------------------*/
-
+/* Tell user stack overflowed and abort.  */
 static void
 stackovf_handler (void)
 {
@@ -188,10 +176,7 @@ stackovf_handler (void)
 #endif /* USE_STACKOVF */
 
 
-/*---------------------------------------------.
-| Print a usage message and exit with STATUS.  |
-`---------------------------------------------*/
-
+/* Print a usage message and exit with STATUS.  */
 static void M4_GNUC_NORETURN
 usage (int status)
 {
@@ -295,19 +280,17 @@ mismatch, or whatever value was passed to the m4exit 
macro.\n\
   exit (status);
 }
 
-/*--------------------------------------.
-| Decode options and launch execution.  |
-`--------------------------------------*/
+/* Decode options and launch execution.  */
 
 /* For long options that have no equivalent short option, use a
    non-character as a pseudo short option, starting with CHAR_MAX + 1.  */
 enum
 {
-  DEBUGFILE_OPTION = CHAR_MAX + 1,     /* no short opt */
-  WARN_MACRO_SEQUENCE_OPTION,          /* no short opt */
+  DEBUGFILE_OPTION = CHAR_MAX + 1,      /* no short opt */
+  WARN_MACRO_SEQUENCE_OPTION,           /* no short opt */
 
-  HELP_OPTION,                         /* no short opt */
-  VERSION_OPTION                       /* no short opt */
+  HELP_OPTION,                          /* no short opt */
+  VERSION_OPTION                        /* no short opt */
 };
 
 static const struct option long_options[] =
@@ -395,10 +378,10 @@ FILE *trace_file;
 int
 main (int argc, char *const *argv, char *const *envp M4_GNUC_UNUSED)
 {
-  macro_definition *head;      /* head of deferred argument list */
+  macro_definition *head;       /* head of deferred argument list */
   macro_definition *tail;
   macro_definition *defn;
-  int optchar;                 /* option character */
+  int optchar;                  /* option character */
 
   macro_definition *defines;
   bool interactive = false;
@@ -561,7 +544,7 @@ main (int argc, char *const *argv, char *const *envp 
M4_GNUC_UNUSED)
       case 'o':
         /* -o/--error-output are deprecated synonyms of --debugfile,
            so issue a warning.  Don't call debug_set_output here, as
-           it has side effects.         */
+           it has side effects.  */
         error (0, 0, _("warning: `%s' is deprecated, use `%s' instead"),
                optchar == 'o' ? "-o" : "--error-output", "--debugfile");
         debugfile = optarg;
diff --git a/src/m4.h b/src/m4.h
index d89e941..d48a140 100644
--- a/src/m4.h
+++ b/src/m4.h
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005, 2006,
-   2007, 2008, 2009 Free Software Foundation, Inc.
+   2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -96,8 +96,8 @@ struct string_pair
 typedef struct string_pair string_pair;
 
 /* Memory allocation.  */
-#define obstack_chunk_alloc    xmalloc
-#define obstack_chunk_free     free
+#define obstack_chunk_alloc     xmalloc
+#define obstack_chunk_free      free
 
 /* These must come first.  */
 typedef struct token_data token_data;
@@ -116,29 +116,29 @@ typedef unsigned int bool_bitfield;
 /* Take advantage of GNU C compiler source level optimization hints,
    using portable macros.  */
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 6)
-#  define M4_GNUC_ATTRIBUTE(args)      __attribute__ (args)
+#  define M4_GNUC_ATTRIBUTE(args)       __attribute__ (args)
 #else
 #  define M4_GNUC_ATTRIBUTE(args)
 #endif  /* __GNUC__ */
 
-#define M4_GNUC_UNUSED         M4_GNUC_ATTRIBUTE ((__unused__))
-#define M4_GNUC_PRINTF(fmt, arg)                       \
+#define M4_GNUC_UNUSED          M4_GNUC_ATTRIBUTE ((__unused__))
+#define M4_GNUC_PRINTF(fmt, arg)                        \
   M4_GNUC_ATTRIBUTE ((__format__ (__printf__, fmt, arg)))
-#define M4_GNUC_NORETURN       M4_GNUC_ATTRIBUTE ((__noreturn__))
+#define M4_GNUC_NORETURN        M4_GNUC_ATTRIBUTE ((__noreturn__))
 
 /* File: m4.c  --- global definitions.  */
 
 /* Option flags.  */
-extern int sync_output;                        /* -s */
-extern int debug_level;                        /* -d */
-extern int no_gnu_extensions;          /* -G */
-extern int prefix_all_builtins;                /* -P */
+extern int sync_output;                 /* -s */
+extern int debug_level;                 /* -d */
+extern int no_gnu_extensions;           /* -G */
+extern int prefix_all_builtins;         /* -P */
 extern size_t max_debug_argument_length;/* -l */
-extern int suppress_warnings;          /* -Q */
-extern int warning_status;             /* -E */
-extern int nesting_limit;              /* -L */
+extern int suppress_warnings;           /* -Q */
+extern int warning_status;              /* -E */
+extern int nesting_limit;               /* -L */
 #ifdef ENABLE_CHANGEWORD
-extern const char *user_word_regexp;   /* -W */
+extern const char *user_word_regexp;    /* -W */
 #endif
 
 /* Error handling.  */
@@ -148,13 +148,13 @@ extern const char *user_word_regexp;      /* -W */
    even when the global context changes in the meantime.  */
 struct call_info
 {
-  const char *file;    /* The file containing the macro invocation.  */
-  int line;            /* The line the macro was called on.  */
-  int call_id;         /* The unique sequence call id of the macro.  */
-  int trace : 1;       /* True to trace this macro.  */
-  int debug_level : 31;        /* The debug level for tracing the macro call.  
*/
-  const char *name;    /* The macro name.  */
-  size_t name_len;     /* The length of name.  */
+  const char *file;     /* The file containing the macro invocation.  */
+  int line;             /* The line the macro was called on.  */
+  int call_id;          /* The unique sequence call id of the macro.  */
+  int trace : 1;        /* True to trace this macro.  */
+  int debug_level : 31; /* The debug level for tracing the macro call.  */
+  const char *name;     /* The macro name.  */
+  size_t name_len;      /* The length of name.  */
 };
 typedef struct call_info call_info;
 
@@ -226,33 +226,33 @@ typedef struct token_chain token_chain;
 enum token_type
 {
   TOKEN_EOF = 4,/* End of file, TOKEN_VOID.  */
-  TOKEN_STRING,        /* Quoted string, TOKEN_TEXT or TOKEN_COMP.  */
+  TOKEN_STRING, /* Quoted string, TOKEN_TEXT or TOKEN_COMP.  */
   TOKEN_COMMENT,/* Comment, TOKEN_TEXT or TOKEN_COMP.  */
-  TOKEN_WORD,  /* An identifier, TOKEN_TEXT.  */
-  TOKEN_OPEN,  /* Active character `(', TOKEN_TEXT.  */
-  TOKEN_COMMA, /* Active character `,', TOKEN_TEXT.  */
-  TOKEN_CLOSE, /* Active character `)', TOKEN_TEXT.  */
-  TOKEN_SIMPLE,        /* Any other single character, TOKEN_TEXT.  */
-  TOKEN_MACDEF,        /* A builtin macro, TOKEN_FUNC or TOKEN_COMP.  */
-  TOKEN_ARGV   /* A series of parameters, TOKEN_COMP.  */
+  TOKEN_WORD,   /* An identifier, TOKEN_TEXT.  */
+  TOKEN_OPEN,   /* Active character `(', TOKEN_TEXT.  */
+  TOKEN_COMMA,  /* Active character `,', TOKEN_TEXT.  */
+  TOKEN_CLOSE,  /* Active character `)', TOKEN_TEXT.  */
+  TOKEN_SIMPLE, /* Any other single character, TOKEN_TEXT.  */
+  TOKEN_MACDEF, /* A builtin macro, TOKEN_FUNC or TOKEN_COMP.  */
+  TOKEN_ARGV    /* A series of parameters, TOKEN_COMP.  */
 };
 
 /* The data for a token, a macro argument, and a macro definition.  */
 enum token_data_type
 {
-  TOKEN_VOID,  /* Token still being constructed, u is invalid.  */
-  TOKEN_TEXT,  /* Straight text, u.u_t is valid.  */
-  TOKEN_FUNC,  /* Builtin function definition, u.func is valid.  */
-  TOKEN_COMP   /* Composite argument, u.u_c is valid.  */
+  TOKEN_VOID,   /* Token still being constructed, u is invalid.  */
+  TOKEN_TEXT,   /* Straight text, u.u_t is valid.  */
+  TOKEN_FUNC,   /* Builtin function definition, u.func is valid.  */
+  TOKEN_COMP    /* Composite argument, u.u_c is valid.  */
 };
 
 /* A link in a chain of token data.  */
 enum token_chain_type
 {
-  CHAIN_STR,   /* Link contains a string, u.u_s is valid.  */
-  CHAIN_FUNC,  /* Builtin function definition, u.func is valid.  */
-  CHAIN_ARGV,  /* Link contains a $@ reference, u.u_a is valid.  */
-  CHAIN_LOC    /* Link contains location of m4wrap, u.u_l is valid.  */
+  CHAIN_STR,    /* Link contains a string, u.u_s is valid.  */
+  CHAIN_FUNC,   /* Builtin function definition, u.func is valid.  */
+  CHAIN_ARGV,   /* Link contains a $@ reference, u.u_a is valid.  */
+  CHAIN_LOC     /* Link contains location of m4wrap, u.u_l is valid.  */
 };
 
 /* Composite tokens are built of a linked list of chains.  Each link
@@ -260,34 +260,34 @@ enum token_chain_type
    reference (ie. $@).  */
 struct token_chain
 {
-  token_chain *next;           /* Pointer to next link of chain.  */
-  enum token_chain_type type;  /* Type of this link.  */
-  unsigned int quote_age;      /* Quote_age of this link of chain, or 0.  */
+  token_chain *next;            /* Pointer to next link of chain.  */
+  enum token_chain_type type;   /* Type of this link.  */
+  unsigned int quote_age;       /* Quote_age of this link of chain, or 0.  */
   union
     {
       struct
         {
-          const char *str;     /* Pointer to text.  */
-          size_t len;          /* Remaining length of str.  */
-          int level;           /* Expansion level of link content, or -1.  */
+          const char *str;      /* Pointer to text.  */
+          size_t len;           /* Remaining length of str.  */
+          int level;            /* Expansion level of link content, or -1.  */
         }
       u_s;
-      builtin_func *func;              /* Builtin token from defn.  */
+      builtin_func *func;               /* Builtin token from defn.  */
       struct
         {
-          macro_arguments *argv;       /* Reference to earlier address@hidden  
*/
-          unsigned int index;          /* Argument index within argv.  */
-          bool_bitfield flatten : 1;   /* True to treat builtins as text.  */
-          bool_bitfield comma : 1;     /* True when `,' is next input.  */
-          bool_bitfield skip_last : 1; /* True if last argument omitted.  */
-          bool_bitfield has_func : 1;  /* True if argv includes func.  */
-          const string_pair *quotes;   /* NULL for $*, quotes for 
address@hidden  */
+          macro_arguments *argv;        /* Reference to earlier address@hidden 
 */
+          unsigned int index;           /* Argument index within argv.  */
+          bool_bitfield flatten : 1;    /* True to treat builtins as text.  */
+          bool_bitfield comma : 1;      /* True when `,' is next input.  */
+          bool_bitfield skip_last : 1;  /* True if last argument omitted.  */
+          bool_bitfield has_func : 1;   /* True if argv includes func.  */
+          const string_pair *quotes;    /* NULL for $*, quotes for 
address@hidden  */
         }
       u_a;
       struct
         {
-          const char *file;    /* File where subsequent links originate.  */
-          int line;            /* Line where subsequent links originate.  */
+          const char *file;     /* File where subsequent links originate.  */
+          int line;             /* Line where subsequent links originate.  */
         }
       u_l;
     }
@@ -330,25 +330,25 @@ struct token_data
          placeholders.  */
       struct
         {
-          token_chain *chain;          /* First link of the chain.  */
-          token_chain *end;            /* Last link of the chain.  */
-          bool_bitfield wrapper : 1;   /* True if this is a $@ ref.  */
-          bool_bitfield has_func : 1;  /* True if chain includes func.  */
+          token_chain *chain;           /* First link of the chain.  */
+          token_chain *end;             /* Last link of the chain.  */
+          bool_bitfield wrapper : 1;    /* True if this is a $@ ref.  */
+          bool_bitfield has_func : 1;   /* True if chain includes func.  */
         }
       u_c;
     }
   u;
 };
 
-#define TOKEN_DATA_TYPE(Td)            ((Td)->type)
-#define TOKEN_DATA_LEN(Td)             ((Td)->u.u_t.len)
-#define TOKEN_DATA_TEXT(Td)            ((Td)->u.u_t.text)
-#define TOKEN_DATA_QUOTE_AGE(Td)       ((Td)->u.u_t.quote_age)
+#define TOKEN_DATA_TYPE(Td)             ((Td)->type)
+#define TOKEN_DATA_LEN(Td)              ((Td)->u.u_t.len)
+#define TOKEN_DATA_TEXT(Td)             ((Td)->u.u_t.text)
+#define TOKEN_DATA_QUOTE_AGE(Td)        ((Td)->u.u_t.quote_age)
 #ifdef ENABLE_CHANGEWORD
-# define TOKEN_DATA_ORIG_TEXT(Td)      ((Td)->u.u_t.original_text)
-# define TOKEN_DATA_ORIG_LEN(Td)       ((Td)->u.u_t.original_len)
+# define TOKEN_DATA_ORIG_TEXT(Td)       ((Td)->u.u_t.original_text)
+# define TOKEN_DATA_ORIG_LEN(Td)        ((Td)->u.u_t.original_len)
 #endif
-#define TOKEN_DATA_FUNC(Td)            ((Td)->u.func)
+#define TOKEN_DATA_FUNC(Td)             ((Td)->u.func)
 
 typedef enum token_type token_type;
 typedef enum token_data_type token_data_type;
@@ -437,23 +437,23 @@ struct symbol
   token_data data;  /* Type should be only TOKEN_TEXT or TOKEN_FUNC.  */
 };
 
-#define SYMBOL_TRACED(S)       ((S)->traced)
-#define SYMBOL_MACRO_ARGS(S)   ((S)->macro_args)
-#define SYMBOL_BLIND_NO_ARGS(S)        ((S)->blind_no_args)
-#define SYMBOL_DELETED(S)      ((S)->deleted)
+#define SYMBOL_TRACED(S)        ((S)->traced)
+#define SYMBOL_MACRO_ARGS(S)    ((S)->macro_args)
+#define SYMBOL_BLIND_NO_ARGS(S) ((S)->blind_no_args)
+#define SYMBOL_DELETED(S)       ((S)->deleted)
 #define SYMBOL_PENDING_EXPANSIONS(S) ((S)->pending_expansions)
-#define SYMBOL_NAME(S)         ((S)->name)
-#define SYMBOL_NAME_LEN(S)     ((S)->len)
-#define SYMBOL_TYPE(S)         (TOKEN_DATA_TYPE (&(S)->data))
-#define SYMBOL_TEXT(S)         (TOKEN_DATA_TEXT (&(S)->data))
-#define SYMBOL_TEXT_LEN(S)     (TOKEN_DATA_LEN (&(S)->data))
-#define SYMBOL_FUNC(S)         (TOKEN_DATA_FUNC (&(S)->data))
+#define SYMBOL_NAME(S)          ((S)->name)
+#define SYMBOL_NAME_LEN(S)      ((S)->len)
+#define SYMBOL_TYPE(S)          (TOKEN_DATA_TYPE (&(S)->data))
+#define SYMBOL_TEXT(S)          (TOKEN_DATA_TEXT (&(S)->data))
+#define SYMBOL_TEXT_LEN(S)      (TOKEN_DATA_LEN (&(S)->data))
+#define SYMBOL_FUNC(S)          (TOKEN_DATA_FUNC (&(S)->data))
 
 typedef enum symbol_lookup symbol_lookup;
 typedef struct symbol symbol;
 typedef void hack_symbol (symbol *, void *);
 
-#define HASHMAX 509            /* default, overridden by -Hsize */
+#define HASHMAX 509             /* default, overridden by -Hsize */
 
 void free_symbol (symbol *);
 void symtab_init (size_t);
diff --git a/src/macro.c b/src/macro.c
index c6f768c..15b3ba3 100644
--- a/src/macro.c
+++ b/src/macro.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2006, 2007, 2008,
-   2009 Free Software Foundation, Inc.
+   2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -153,12 +153,12 @@ struct macro_arguments
 */
 struct macro_arg_stacks
 {
-  size_t refcount;     /* Number of active $@ references at this level.  */
-  size_t argcount;     /* Number of argv at this level.  */
-  struct obstack *args;        /* Content of arguments.  */
-  struct obstack *argv;        /* Argv pointers into args.  */
-  void *args_base;     /* Location for clearing the args obstack.  */
-  void *argv_base;     /* Location for clearing the argv obstack.  */
+  size_t refcount;      /* Number of active $@ references at this level.  */
+  size_t argcount;      /* Number of argv at this level.  */
+  struct obstack *args; /* Content of arguments.  */
+  struct obstack *argv; /* Argv pointers into args.  */
+  void *args_base;      /* Location for clearing the args obstack.  */
+  void *argv_base;      /* Location for clearing the argv obstack.  */
 };
 
 typedef struct macro_arg_stacks macro_arg_stacks;
@@ -195,11 +195,9 @@ static int debug_macro_level;
 #define PRINT_REFCOUNT_DECREASE 4
 
 
-/*----------------------------------------------------------------.
-| This function reads all input, and expands each token, one at a |
-| time.                                                           |
-`----------------------------------------------------------------*/
 
+/* This function reads all input, and expands each token, one at a
+   time.  */
 void
 expand_input (void)
 {
@@ -243,19 +241,16 @@ expand_input (void)
 }
 
 
-/*-------------------------------------------------------------------.
-| Expand one token TD onto the stack OBS, according to its type T,   |
-| which began parsing on the specified LINE.  If OBS is NULL, output |
-| the data.  If FIRST, there is no previous text in the current             |
-| argument.  Potential macro names (TOKEN_WORD) are looked up in the |
-| symbol table, to see if they have a macro definition.  If they     |
-| have, they are expanded as macros, otherwise the text is just             |
-| copied to the output.  Return true if the result is guaranteed to  |
-| give the same parse on rescan in a quoted context, provided       |
-| quoting doesn't change.  Returning false is always safe, although  |
-| it may lead to slower performance.                                |
-`-------------------------------------------------------------------*/
-
+/* Expand one token TD onto the stack OBS, according to its type T,
+   which began parsing on the specified LINE.  If OBS is NULL, output
+   the data.  If FIRST, there is no previous text in the current
+   argument.  Potential macro names (TOKEN_WORD) are looked up in the
+   symbol table, to see if they have a macro definition.  If they
+   have, they are expanded as macros, otherwise the text is just
+   copied to the output.  Return true if the result is guaranteed to
+   give the same parse on rescan in a quoted context, provided quoting
+   doesn't change.  Returning false is always safe, although it may
+   lead to slower performance.  */
 static bool
 expand_token (struct obstack *obs, token_type t, token_data *td, int line,
               bool first)
@@ -264,7 +259,7 @@ expand_token (struct obstack *obs, token_type t, token_data 
*td, int line,
   bool result = false;
 
   switch (t)
-    {                          /* TOKSW */
+    { /* TOKSW */
     case TOKEN_EOF:
     case TOKEN_MACDEF:
       /* Always safe, since there is no text to rescan.  */
@@ -345,17 +340,14 @@ expand_token (struct obstack *obs, token_type t, 
token_data *td, int line,
 }
 
 
-/*-------------------------------------------------------------------.
-| This function parses one argument to a macro call.  It expects the |
-| first left parenthesis or the separating comma to have been read   |
-| by the caller.  It skips leading whitespace, then reads and        |
-| expands tokens, until it finds a comma or right parenthesis at the |
-| same level of parentheses.  It returns a flag indicating whether   |
-| the argument read is the last for the active macro call.  The      |
-| argument is built on the obstack OBS, indirectly through           |
-| expand_token ().  Report errors on behalf of CALLER.               |
-`-------------------------------------------------------------------*/
-
+/* This function parses one argument to a macro call.  It expects the
+   first left parenthesis or the separating comma to have been read by
+   the caller.  It skips leading whitespace, then reads and expands
+   tokens, until it finds a comma or right parenthesis at the same
+   level of parentheses.  It returns a flag indicating whether the
+   argument read is the last for the active macro call.  The argument
+   is built on the obstack OBS, indirectly through expand_token ().
+   Report errors on behalf of CALLER.  */
 static bool
 expand_argument (struct obstack *obs, token_data *argp,
                  const call_info *caller)
@@ -382,7 +374,7 @@ expand_argument (struct obstack *obs, token_data *argp,
     {
 
       switch (t)
-        {                      /* TOKSW */
+        { /* TOKSW */
         case TOKEN_COMMA:
         case TOKEN_CLOSE:
           if (paren_level == 0)
@@ -484,12 +476,9 @@ expand_argument (struct obstack *obs, token_data *argp,
     }
 }
 
-/*-------------------------------------------------------------------------.
-| Collect all the arguments to a call of the macro SYM.  The arguments are |
-| stored on the obstack ARGUMENTS and a table of pointers to the arguments |
-| on the obstack argv_stack.                                              |
-`-------------------------------------------------------------------------*/
-
+/* Collect all the arguments to a call of the macro SYM.  The
+   arguments are stored on the obstack ARGUMENTS and a table of
+   pointers to the arguments on the obstack argv_stack.  */
 static macro_arguments *
 collect_arguments (symbol *sym, call_info *info, struct obstack *arguments,
                    struct obstack *argv_stack)
@@ -578,14 +567,11 @@ collect_arguments (symbol *sym, call_info *info, struct 
obstack *arguments,
 }
 
 
-/*-------------------------------------------------------------------.
-| Call the macro SYM, which is either a builtin function or a user   |
-| macro (via the expansion function expand_user_macro () in          |
-| builtin.c).  The arguments are provided by ARGV.  The expansion is |
-| left on the obstack EXPANSION.  Macro tracing is also handled      |
-| here.                                                              |
-`-------------------------------------------------------------------*/
-
+/* Call the macro SYM, which is either a builtin function or a user
+   macro (via the expansion function expand_user_macro () in
+   builtin.c).  The arguments are provided by ARGV.  The expansion is
+   left on the obstack EXPANSION.  Macro tracing is also handled
+   here.  */
 void
 call_macro (symbol *sym, macro_arguments *argv, struct obstack *expansion)
 {
@@ -611,26 +597,25 @@ call_macro (symbol *sym, macro_arguments *argv, struct 
obstack *expansion)
     trace_post (trace_start, argv->info);
 }
 
-/*-------------------------------------------------------------------------.
-| The macro expansion is handled by expand_macro ().  It parses the       |
-| arguments, using collect_arguments (), and builds a table of pointers to |
-| the arguments.  The arguments themselves are stored on a local obstack.  |
-| Expand_macro () uses call_macro () to do the call of the macro.         |
-|                                                                         |
-| Expand_macro () is potentially recursive, since it calls expand_argument |
-| (), which might call expand_token (), which might call expand_macro ().  |
-`-------------------------------------------------------------------------*/
+/* The macro expansion is handled by expand_macro ().  It parses the
+   arguments, using collect_arguments (), and builds a table of
+   pointers to the arguments.  The arguments themselves are stored on
+   a local obstack.  Expand_macro () uses call_macro () to do the call
+   of the macro.
 
+   Expand_macro () is potentially recursive, since it calls
+   expand_argument (), which might call expand_token (), which might
+   call expand_macro ().  */
 static void
 expand_macro (symbol *sym)
 {
-  void *args_base;             /* Base of stacks[i].args on entry.  */
-  void *args_scratch;          /* Base of scratch space for call_macro.  */
-  void *argv_base;             /* Base of stacks[i].argv on entry.  */
-  macro_arguments *argv;       /* Arguments to the called macro.  */
-  struct obstack *expansion;   /* Collects the macro's expansion.  */
-  int level = expansion_level; /* Expansion level of this macro.  */
-  call_info my_call_info;      /* Context of this macro.  */
+  void *args_base;              /* Base of stacks[i].args on entry.  */
+  void *args_scratch;           /* Base of scratch space for call_macro.  */
+  void *argv_base;              /* Base of stacks[i].argv on entry.  */
+  macro_arguments *argv;        /* Arguments to the called macro.  */
+  struct obstack *expansion;    /* Collects the macro's expansion.  */
+  int level = expansion_level;  /* Expansion level of this macro.  */
+  call_info my_call_info;       /* Context of this macro.  */
 
   /* Obstack preparation.  */
   if (level + 0UL >= stacks_count)
diff --git a/src/output.c b/src/output.c
index 29b0809..c7bc38c 100644
--- a/src/output.c
+++ b/src/output.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005, 2006,
-   2007, 2008, 2009 Free Software Foundation, Inc.
+   2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -58,13 +58,13 @@ struct m4_diversion
   {
     union
       {
-        FILE *file;            /* Diversion file on disk.  */
-        char *buffer;          /* Malloc'd diversion buffer.  */
-        m4_diversion *next;    /* Free-list pointer */
+        FILE *file;             /* Diversion file on disk.  */
+        char *buffer;           /* Malloc'd diversion buffer.  */
+        m4_diversion *next;     /* Free-list pointer */
       } u;
-    int divnum;                        /* Which diversion this represents.  */
-    int size;                  /* Usable size before reallocation.  */
-    int used;                  /* Used buffer length, or tmp file exists.  */
+    int divnum;                 /* Which diversion this represents.  */
+    int size;                   /* Usable size before reallocation.  */
+    int used;                   /* Used buffer length, or tmp file exists.  */
   };
 
 /* Table of diversions 1 through INT_MAX.  */
@@ -377,10 +377,7 @@ m4_tmprename (int oldnum, int newnum)
 }
 
 
-/*------------------------.
-| Output initialization.  |
-`------------------------*/
-
+/* Output initialization.  */
 void
 output_init (void)
 {
@@ -407,15 +404,12 @@ output_exit (void)
   obstack_free (&diversion_storage, NULL);
 }
 
-/*-----------------------------------------------------------------------.
-| Reorganize in-memory diversion buffers so the current diversion can   |
-| accomodate LENGTH more characters without further reorganization.  The |
-| current diversion buffer is made bigger if possible.  But to make room |
-| for a bigger buffer, one of the in-memory diversion buffers might have |
-| to be flushed to a newly created temporary file.  This flushed buffer        
 |
-| might well be the current one.                                        |
-`-----------------------------------------------------------------------*/
-
+/* Reorganize in-memory diversion buffers so the current diversion can
+   accomodate LENGTH more characters without further reorganization.
+   The current diversion buffer is made bigger if possible.  But to
+   make room for a bigger buffer, one of the in-memory diversion
+   buffers might have to be flushed to a newly created temporary file.
+   This flushed buffer might well be the current one.  */
 static void
 make_room_for (int length)
 {
@@ -530,17 +524,14 @@ make_room_for (int length)
     }
 }
 
-/*------------------------------------------------------------------------.
-| Output one character CHAR, when it is known that it goes to a diversion |
-| file or an in-memory diversion buffer.                                 |
-`------------------------------------------------------------------------*/
-
+/* Output one character CHAR, when it is known that it goes to a
+   diversion file or an in-memory diversion buffer.  */
 #define OUTPUT_CHARACTER(Char) \
-  if (output_file)                                                     \
-    putc ((Char), output_file);                                                
\
-  else if (output_unused == 0)                                         \
-    output_character_helper ((Char));                                  \
-  else                                                                 \
+  if (output_file)                                                      \
+    putc ((Char), output_file);                                         \
+  else if (output_unused == 0)                                          \
+    output_character_helper ((Char));                                   \
+  else                                                                  \
     (output_unused--, *output_cursor++ = (Char))
 
 static void
@@ -557,11 +548,8 @@ output_character_helper (int character)
     }
 }
 
-/*------------------------------------------------------------------------.
-| Output one TEXT having LENGTH characters, when it is known that it goes |
-| to a diversion file or an in-memory diversion buffer.                        
  |
-`------------------------------------------------------------------------*/
-
+/* Output one TEXT having LENGTH characters, when it is known that it
+   goes to a diversion file or an in-memory diversion buffer.  */
 void
 output_text (const char *text, int length)
 {
@@ -587,21 +575,18 @@ output_text (const char *text, int length)
     }
 }
 
-/*--------------------------------------------------------------------.
-| Add some text into an obstack OBS, taken from TEXT, having LENGTH   |
-| characters.  If OBS is NULL, output the text to an external file    |
-| or an in-memory diversion buffer instead.  If OBS is NULL, and      |
-| there is no output file, the text is discarded.  LINE is the line   |
-| where the token starts (not necessarily current_line, in the case   |
-| of multiline tokens).                                               |
-|                                                                     |
-| If we are generating sync lines, the output has to be examined,     |
-| because we need to know how much output each input line generates.  |
-| In general, sync lines are output whenever a single input lines     |
-| generates several output lines, or when several input lines do not  |
-| generate any output.                                                |
-`--------------------------------------------------------------------*/
-
+/* Add some text into an obstack OBS, taken from TEXT, having LENGTH
+   characters.  If OBS is NULL, output the text to an external file or
+   an in-memory diversion buffer instead.  If OBS is NULL, and there
+   is no output file, the text is discarded.  LINE is the line where
+   the token starts (not necessarily current_line, in the case of
+   multiline tokens).
+
+   If we are generating sync lines, the output has to be examined,
+   because we need to know how much output each input line generates.
+   In general, sync lines are output whenever a single input lines
+   generates several output lines, or when several input lines do not
+   generate any output.  */
 void
 divert_text (struct obstack *obs, const char *text, int length, int line)
 {
@@ -731,10 +716,8 @@ shipout_string_trunc (struct obstack *obs, const char 
*str, size_t len,
 
 /* Functions for use by diversions.  */
 
-/*--------------------------------------------------------------------------.
-| Make a file for diversion DIVNUM, and install it in the diversion table.  |
-| Grow the size of the diversion table as needed.                          |
-`--------------------------------------------------------------------------*/
+/* Make a file for diversion DIVNUM, and install it in the diversion
+   table.  Grow the size of the diversion table as needed.  */
 
 /* The number of possible diversions is limited only by memory and
    available file descriptors (each overflowing diversion uses one).  */
@@ -827,12 +810,9 @@ make_diversion (int divnum)
   output_current_line = -1;
 }
 
-/*-------------------------------------------------------------------.
-| Insert a FILE into the current output file, in the same manner     |
-| diversions are handled.  This allows files to be included, without |
-| having them rescanned by m4.                                      |
-`-------------------------------------------------------------------*/
-
+/* Insert a FILE into the current output file, in the same manner
+   diversions are handled.  This allows files to be included, without
+   having them rescanned by m4.  */
 void
 insert_file (FILE *file)
 {
@@ -855,13 +835,10 @@ insert_file (FILE *file)
     }
 }
 
-/*-------------------------------------------------------------------.
-| Insert DIVERSION (but not div0) into the current output file.  The |
-| diversion is NOT placed on the expansion obstack, because it must  |
-| not be rescanned.  When the file is closed, it is deleted by the   |
-| system.                                                           |
-`-------------------------------------------------------------------*/
-
+/* Insert DIVERSION (but not div0) into the current output file.  The
+   diversion is NOT placed on the expansion obstack, because it must
+   not be rescanned.  When the file is closed, it is deleted by the
+   system.  */
 static void
 insert_diversion_helper (m4_diversion *diversion)
 {
@@ -941,12 +918,10 @@ insert_diversion_helper (m4_diversion *diversion)
   free_list = diversion;
 }
 
-/*-------------------------------------------------------------------------.
-| Insert diversion number DIVNUM into the current output file.  The       |
-| diversion is NOT placed on the expansion obstack, because it must not be |
-| rescanned.  When the file is closed, it is deleted by the system.       |
-`-------------------------------------------------------------------------*/
-
+/* Insert diversion number DIVNUM into the current output file.  The
+   diversion is NOT placed on the expansion obstack, because it must
+   not be rescanned.  When the file is closed, it is deleted by the
+   system.  */
 void
 insert_diversion (int divnum)
 {
@@ -965,11 +940,8 @@ insert_diversion (int divnum)
     }
 }
 
-/*-------------------------------------------------------------------------.
-| Get back all diversions.  This is done just before exiting from main (), |
-| and from m4_undivert (), if called without arguments.                        
   |
-`-------------------------------------------------------------------------*/
-
+/* Get back all diversions.  This is done just before exiting from
+   main (), and from m4_undivert (), if called without arguments.  */
 void
 undivert_all (void)
 {
@@ -984,10 +956,7 @@ undivert_all (void)
   gl_oset_iterator_free (&iter);
 }
 
-/*-------------------------------------------------------------.
-| Produce all diversion information in frozen format on FILE.  |
-`-------------------------------------------------------------*/
-
+/* Produce all diversion information in frozen format on FILE.  */
 void
 freeze_diversions (FILE *file)
 {
@@ -999,7 +968,7 @@ freeze_diversions (FILE *file)
   saved_number = current_diversion;
   last_inserted = 0;
   make_diversion (0);
-  output_file = file;          /* kludge in the frozen file */
+  output_file = file; /* kludge in the frozen file */
 
   iter = gl_oset_iterator (diversion_table);
   while (gl_oset_iterator_next (&iter, &elt))
diff --git a/src/path.c b/src/path.c
index 47b6387..4d2920a 100644
--- a/src/path.c
+++ b/src/path.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 2004, 2006, 2007, 2008,
-   2009 Free Software Foundation, Inc.
+   2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -26,16 +26,16 @@
 
 struct includes
 {
-  struct includes *next;       /* next directory to search */
-  const char *dir;             /* directory */
+  struct includes *next;        /* next directory to search */
+  const char *dir;              /* directory */
   int len;
 };
 
 typedef struct includes includes;
 
-static includes *dir_list;             /* the list of path directories */
-static includes *dir_list_end;         /* the end of same */
-static int dir_max_length;             /* length of longest directory name */
+static includes *dir_list;              /* the list of path directories */
+static includes *dir_list_end;          /* the end of same */
+static int dir_max_length;              /* length of longest directory name */
 
 
 void
@@ -137,7 +137,7 @@ m4_path_search (const char *file, char **result)
 {
   FILE *fp;
   includes *incl;
-  char *name;                  /* buffer for constructed name */
+  char *name; /* buffer for constructed name */
   int e;
 
   if (result)
diff --git a/src/stackovf.c b/src/stackovf.c
index a1a3f8a..9d83a8e 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, 2009 Free Software
+   Copyright (C) 1993, 1994, 2006, 2007, 2008, 2009, 2010 Free Software
    Foundation, Inc.
    Jim Avera <address@hidden>, October 1993.
 
@@ -77,7 +77,7 @@
       dump in the usual way.  It seems important (to me) that internal m4
       bugs not be reported as user recursion errors, or vice-versa."  */
 
-#include "m4.h"                        /* stdlib.h, xmalloc() */
+#include "m4.h" /* stdlib.h, xmalloc() */
 
 #include <sys/time.h>
 #include <sys/resource.h>
@@ -184,7 +184,7 @@ process_sigsegv (int signo, const char *p)
 
           /* We have determined that this is indeed a stack overflow.  */
 
-          (*stackovf_handler) ();      /* should call exit() */
+          (*stackovf_handler) (); /* should call exit() */
         }
     }
   if (p == NULL)
diff --git a/src/symtab.c b/src/symtab.c
index 1e49fa5..006bdc2 100644
--- a/src/symtab.c
+++ b/src/symtab.c
@@ -1,7 +1,7 @@
 /* GNU m4 -- A simple macro processor
 
    Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2003, 2006, 2007,
-   2008, 2009 Free Software Foundation, Inc.
+   2008, 2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GNU M4.
 
@@ -102,9 +102,7 @@ profile_memcmp (const char *s1, const char *s2, size_t l)
 /* Pointer to symbol table.  */
 static Hash_table *symtab;
 
-/*--------------------------------------------------.
-| Return a hashvalue for a string S of length LEN.  |
-`--------------------------------------------------*/
+/* Return a hashvalue for a string S of length LEN.  */
 static size_t
 hash (const char *s, size_t len)
 {
@@ -117,9 +115,7 @@ hash (const char *s, size_t len)
   return val;
 }
 
-/*----------------------------------------------------.
-| Wrap our hash inside signature expected by hash.h.  |
-`----------------------------------------------------*/
+/* Wrap our hash inside signature expected by hash.h.  */
 static size_t
 symtab_hasher (const void *entry, size_t buckets)
 {
@@ -135,9 +131,7 @@ symtab_hasher (const void *entry, size_t buckets)
   return hash (SYMBOL_NAME (sym), SYMBOL_NAME_LEN (sym)) % buckets;
 }
 
-/*----------------------------------------------.
-| Compare two hash table entries for equality.  |
-`----------------------------------------------*/
+/* Compare two hash table entries for equality.  */
 static bool
 symtab_comparator (const void *entry_a, const void *entry_b)
 {
@@ -151,9 +145,7 @@ symtab_comparator (const void *entry_a, const void *entry_b)
                      SYMBOL_NAME_LEN (sym_a)) == 0);
 }
 
-/*---------------------------.
-| Reclaim an entry on exit.  |
-`---------------------------*/
+/* Reclaim ENTRY on program exit.  */
 static void
 symtab_free_entry (void *entry)
 {
@@ -169,10 +161,8 @@ symtab_free_entry (void *entry)
   free_symbol (sym);
 }
 
-/*--------------------------------------------------------------.
-| Initialize the symbol table, with SIZE as a hint for expected |
-| number of entries.                                           |
-`--------------------------------------------------------------*/
+/* Initialize the symbol table, with SIZE as a hint for expected
+   number of entries.  */
 void
 symtab_init (size_t size)
 {
@@ -186,19 +176,14 @@ symtab_init (size_t size)
 #endif /* DEBUG_SYM */
 }
 
-/*------------------------.
-| Clean up entire table.  |
-`------------------------*/
+/* Clean up entire table.  */
 void
 symtab_free (void)
 {
   hash_free (symtab);
 }
 
-/*--------------------------------------------.
-| Free all storage associated with a symbol.  |
-`--------------------------------------------*/
-
+/* Free all storage associated with a symbol.  */
 void
 free_symbol (symbol *sym)
 {
@@ -213,21 +198,17 @@ free_symbol (symbol *sym)
     }
 }
 
-/*-------------------------------------------------------------------.
-| Searches and manipulation of the symbol table are all done by      |
-| lookup_symbol ().  It basically hashes NAME, of length LEN, to a   |
-| list in the symbol table, and searches this list for the first     |
-| occurrence of a symbol with the name.                              |
-|                                                                    |
-| The MODE parameter determines what lookup_symbol () will do.  It   |
-| can either just do a lookup, do a lookup and insert if not         |
-| present, do an insertion even if the name is already in the list,  |
-| delete the first occurrence of the name on the list, or delete all |
-| occurrences of the name on the list.  The return value when        |
-| requesting deletion is non-NULL if deletion occurred, but must not |
-| be dereferenced.                                                   |
-`-------------------------------------------------------------------*/
-
+/* Searches and manipulation of the symbol table are all done by
+   lookup_symbol ().  It basically hashes NAME, of length LEN, to a
+   list in the symbol table, and searches this list for the first
+   occurrence of a symbol with the name.
+
+   The MODE parameter determines what lookup_symbol () will do.  It
+   can either just do a lookup, do a lookup and insert if not present,
+   do an insertion even if the name is already in the list, delete the
+   first occurrence of the name on the list, or delete all occurrences
+   of the name on the list.  The return value when requesting deletion
+   is non-NULL if deletion occurred, but must not be dereferenced.  */
 symbol *
 lookup_symbol (const char *name, size_t len, symbol_lookup mode)
 {
@@ -399,17 +380,14 @@ lookup_symbol (const char *name, size_t len, 
symbol_lookup mode)
     }
 }
 
-/*-----------------------------------------------------------------.
-| The following function is used for the cases where we want to do |
-| something to each and every symbol in the table.  The function   |
-| hack_all_symbols () traverses the symbol table, and calls a     |
-| specified function FUNC for each symbol in the table.  FUNC is   |
-| called with a pointer to the symbol, and the DATA argument.     |
-|                                                                 |
-| FUNC may safely call lookup_symbol with mode SYMBOL_POPDEF or           |
-| SYMBOL_LOOKUP, but any other mode can break the iteration.      |
-`-----------------------------------------------------------------*/
+/* The following function is used for the cases where we want to do
+   something to each and every symbol in the table.  The function
+   hack_all_symbols () traverses the symbol table, and calls a
+   specified function FUNC for each symbol in the table.  FUNC is
+   called with a pointer to the symbol, and the DATA argument.
 
+   FUNC may safely call lookup_symbol with mode SYMBOL_POPDEF or
+   SYMBOL_LOOKUP, but any other mode can break the iteration.  */
 void
 hack_all_symbols (hack_symbol *func, void *data)
 {
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 2cdfaf0..904ae1d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,6 +1,6 @@
 ## Makefile.am - template for generating Makefile via Automake
 ##
-## Copyright (C) 2009 Free Software Foundation, Inc.
+## Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 ##
 ## This file is part of GNU M4.
 ##


hooks/post-receive
-- 
GNU M4 source repository




reply via email to

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