m4-patches
[Top][All Lists]
Advanced

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

FYI: update ancient FSF address too [m4--release--1.4--patch-9]


From: Gary V. Vaughan
Subject: FYI: update ancient FSF address too [m4--release--1.4--patch-9]
Date: Sun, 1 May 2005 12:55:25 +0100 (BST)
User-agent: mailnotify/0.6

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Applied to branch-1_4.

  * looking for address@hidden/m4--release--1.4--patch-8 to compare with
  * comparing to address@hidden/m4--release--1.4--patch-8
  M  COPYING
  M  lib/COPYING.LIB
  M  lib/Makefile.in
  M  lib/error.c
  M  lib/getopt.c
  M  lib/getopt.h
  M  lib/getopt1.c
  M  lib/obstack.c
  M  lib/obstack.h
  M  lib/regex.c
  M  lib/regex.h
  M  lib/strtol.c
  M  lib/xmalloc.c
  M  lib/xstrdup.c
  M  src/Makefile.in
  M  src/builtin.c
  M  src/debug.c
  M  src/eval.c
  M  src/format.c
  M  src/freeze.c
  M  src/input.c
  M  src/m4.c
  M  src/m4.h
  M  src/macro.c
  M  src/output.c
  M  src/path.c
  M  src/stackovf.c
  M  src/symtab.c
  M  ChangeLog
  M  Makefile.in
  M  checks/Makefile.in
  M  doc/Makefile.in
  M  examples/Makefile.in
  
  * modified files
  
  --- orig/COPYING
  +++ mod/COPYING
  @@ -2,7 +2,7 @@
                       Version 2, June 1991
   
    Copyright (C) 1989, 1991 Free Software Foundation, Inc.
  -                          675 Mass Ave, Cambridge, MA 02139, USA
  +     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    Everyone is permitted to copy and distribute verbatim copies
    of this license document, but changing it is not allowed.
   
  @@ -279,7 +279,7 @@
   
                     END OF TERMS AND CONDITIONS
   
  -     Appendix: How to Apply These Terms to Your New Programs
  +         How to Apply These Terms to Your New Programs
   
     If you develop a new program, and you want it to be of the greatest
   possible use to the public, the best way to achieve this is to make it
  @@ -291,7 +291,7 @@
   the "copyright" line and a pointer to where the full notice is found.
   
       <one line to give the program's name and a brief idea of what it does.>
  -    Copyright (C) 19yy  <name of author>
  +    Copyright (C) <year>  <name of author>
   
       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
  @@ -305,14 +305,15 @@
   
       You should have received a copy of the GNU General Public License
       along with this program; if not, write to the Free Software
  -    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
02110-1301  USA
  +
   
   Also add information on how to contact you by electronic and paper mail.
   
   If the program is interactive, make it output a short notice like this
   when it starts in an interactive mode:
   
  -    Gnomovision version 69, Copyright (C) 19yy name of author
  +    Gnomovision version 69, Copyright (C) year  name of author
       Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
       This is free software, and you are welcome to redistribute it
       under certain conditions; type `show c' for details.
  
  
  Index: Changelog
        Also, some of the files here were never updated from the previous
        '675 Mass Ave, Cambridge, MA 02139', so changed those to the
        '51 Franklin Street, Fifth Floor, MA 02110-1301' address too.
  
  from  Mike Frysinger  <address@hidden>
  --- orig/Makefile.in
  +++ mod/Makefile.in
  @@ -1,19 +1,21 @@
  -# Main Makefile for GNU m4.
  -# Copyright (C) 1992, 1993, 1994, 2005 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
  -# the Free Software Foundation; either version 2, or (at your option)
  -# any later version.
  -
  -# This program 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, write to the Free Software
  -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +## Makefile.in -- Main Makefile for GNU m4.
  +##
  +## Copyright (C) 1992, 1993, 1994, 2005 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
  +## the Free Software Foundation; either version 2 of the License, or
  +## (at your option) any later version.
  +##
  +## This program 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; See the file COPYING.  if not, write to
  +## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  +## Boston, MA 02110-1301, USA.
   
   PACKAGE = @PACKAGE@
   VERSION = @VERSION@
  
  
  --- orig/checks/Makefile.in
  +++ mod/checks/Makefile.in
  @@ -1,19 +1,20 @@
  -# Makefile for GNU m4 checks directory.
  -# Copyright (C) 1992, 1993, 1994 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
  -# the Free Software Foundation; either version 2, or (at your option)
  -# any later version.
  -
  -# This program 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, write to the Free Software
  -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +##
  +## Copyright (C) 1992, 1993, 1994 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
  +## the Free Software Foundation; either version 2 of the License, or
  +## (at your option) any later version.
  +##
  +## This program 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; See the file COPYING.  if not, write to
  +## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  +## Boston, MA 02110-1301, USA.
   
   PACKAGE = @PACKAGE@
   VERSION = @VERSION@
  
  
  --- orig/doc/Makefile.in
  +++ mod/doc/Makefile.in
  @@ -1,19 +1,21 @@
  -# Makefile for GNU m4 documentation.
  -# Copyright (C) 1994, 2004, 2005 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
  -# the Free Software Foundation; either version 2, or (at your option)
  -# any later version.
  -
  -# This program 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, write to the Free Software
  -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +## Makefile.in -- Makefile for GNU m4 documentation.
  +##
  +## Copyright (C) 1994, 2005 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
  +## the Free Software Foundation; either version 2 of the License, or
  +## (at your option) any later version.
  +##
  +## This program 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; See the file COPYING.  if not, write to
  +## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  +## Boston, MA 02110-1301, USA.
   
   PACKAGE = @PACKAGE@
   VERSION = @VERSION@
  
  
  --- orig/examples/Makefile.in
  +++ mod/examples/Makefile.in
  @@ -1,19 +1,21 @@
  -# Makefile for GNU m4 examples.
  -# Copyright (C) 1994, 2005 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
  -# the Free Software Foundation; either version 2, or (at your option)
  -# any later version.
  -
  -# This program 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, write to the Free Software
  -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +## Makefile.in -- Makefile for GNU m4 examples.
  +##
  +## Copyright (C) 1994, 2005 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
  +## the Free Software Foundation; either version 2 of the License, or
  +## (at your option) any later version.
  +##
  +## This program 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; See the file COPYING.  if not, write to
  +## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  +## Boston, MA 02110-1301, USA.
   
   PACKAGE = @PACKAGE@
   VERSION = @VERSION@
  
  
  --- orig/lib/COPYING.LIB
  +++ mod/lib/COPYING.LIB
  @@ -1,112 +1,128 @@
  -               GNU LIBRARY GENERAL PUBLIC LICENSE
  -                    Version 2, June 1991
   
  - Copyright (C) 1991 Free Software Foundation, Inc.
  -                    675 Mass Ave, Cambridge, MA 02139, USA
  +                  GNU LESSER GENERAL PUBLIC LICENSE
  +                       Version 2.1, February 1999
  +
  + Copyright (C) 1991, 1999 Free Software Foundation, Inc.
  +     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    Everyone is permitted to copy and distribute verbatim copies
    of this license document, but changing it is not allowed.
   
  -[This is the first released version of the library GPL.  It is
  - numbered 2 because it goes with version 2 of the ordinary GPL.]
  +[This is the first released version of the Lesser GPL.  It also counts
  + as the successor of the GNU Library Public License, version 2, hence
  + the version number 2.1.]
   
  -                         Preamble
  +                            Preamble
   
     The licenses for most software are designed to take away your
   freedom to share and change it.  By contrast, the GNU General Public
   Licenses are intended to guarantee your freedom to share and change
   free software--to make sure the software is free for all its users.
   
  -  This license, the Library General Public License, applies to some
  -specially designated Free Software Foundation software, and to any
  -other libraries whose authors decide to use it.  You can use it for
  -your libraries, too.
  -
  -  When we speak of free software, we are referring to freedom, not
  -price.  Our General Public Licenses are designed to make sure that you
  -have the freedom to distribute copies of free software (and charge for
  -this service if you wish), that you receive source code or can get it
  -if you want it, that you can change the software or use pieces of it
  -in new free programs; and that you know you can do these things.
  +  This license, the Lesser General Public License, applies to some
  +specially designated software packages--typically libraries--of the
  +Free Software Foundation and other authors who decide to use it.  You
  +can use it too, but we suggest you first think carefully about whether
  +this license or the ordinary General Public License is the better
  +strategy to use in any particular case, based on the explanations
  +below.
  +
  +  When we speak of free software, we are referring to freedom of use,
  +not price.  Our General Public Licenses are designed to make sure that
  +you have the freedom to distribute copies of free software (and charge
  +for this service if you wish); that you receive source code or can get
  +it if you want it; that you can change the software and use pieces of
  +it in new free programs; and that you are informed that you can do
  +these things.
   
     To protect your rights, we need to make restrictions that forbid
  -anyone to deny you these rights or to ask you to surrender the rights.
  -These restrictions translate to certain responsibilities for you if
  -you distribute copies of the library, or if you modify it.
  +distributors to deny you these rights or to ask you to surrender these
  +rights.  These restrictions translate to certain responsibilities for
  +you if you distribute copies of the library or if you modify it.
   
     For example, if you distribute copies of the library, whether gratis
   or for a fee, you must give the recipients all the rights that we gave
   you.  You must make sure that they, too, receive or can get the source
  -code.  If you link a program with the library, you must provide
  -complete object files to the recipients so that they can relink them
  -with the library, after making changes to the library and recompiling
  +code.  If you link other code with the library, you must provide
  +complete object files to the recipients, so that they can relink them
  +with the library after making changes to the library and recompiling
   it.  And you must show them these terms so they know their rights.
   
  -  Our method of protecting your rights has two steps: (1) copyright
  -the library, and (2) offer you this license which gives you legal
  +  We protect your rights with a two-step method: (1) we copyright the
  +library, and (2) we offer you this license, which gives you legal
   permission to copy, distribute and/or modify the library.
   
  -  Also, for each distributor's protection, we want to make certain
  -that everyone understands that there is no warranty for this free
  -library.  If the library is modified by someone else and passed on, we
  -want its recipients to know that what they have is not the original
  -version, so that any problems introduced by others will not reflect on
  -the original authors' reputations.
  -
  -  Finally, any free program is threatened constantly by software
  -patents.  We wish to avoid the danger that companies distributing free
  -software will individually obtain patent licenses, thus in effect
  -transforming the program into proprietary software.  To prevent this,
  -we have made it clear that any patent must be licensed for everyone's
  -free use or not licensed at all.
  -
  -  Most GNU software, including some libraries, is covered by the ordinary
  -GNU General Public License, which was designed for utility programs.  This
  -license, the GNU Library General Public License, applies to certain
  -designated libraries.  This license is quite different from the ordinary
  -one; be sure to read it in full, and don't assume that anything in it is
  -the same as in the ordinary license.
  -
  -  The reason we have a separate public license for some libraries is that
  -they blur the distinction we usually make between modifying or adding to a
  -program and simply using it.  Linking a program with a library, without
  -changing the library, is in some sense simply using the library, and is
  -analogous to running a utility program or application program.  However, in
  -a textual and legal sense, the linked executable is a combined work, a
  -derivative of the original library, and the ordinary General Public License
  -treats it as such.
  -
  -  Because of this blurred distinction, using the ordinary General
  -Public License for libraries did not effectively promote software
  -sharing, because most developers did not use the libraries.  We
  -concluded that weaker conditions might promote sharing better.
  -
  -  However, unrestricted linking of non-free programs would deprive the
  -users of those programs of all benefit from the free status of the
  -libraries themselves.  This Library General Public License is intended to
  -permit developers of non-free programs to use free libraries, while
  -preserving your freedom as a user of such programs to change the free
  -libraries that are incorporated in them.  (We have not seen how to achieve
  -this as regards changes in header files, but we have achieved it as regards
  -changes in the actual functions of the Library.)  The hope is that this
  -will lead to faster development of free libraries.
  +  To protect each distributor, we want to make it very clear that
  +there is no warranty for the free library.  Also, if the library is
  +modified by someone else and passed on, the recipients should know
  +that what they have is not the original version, so that the original
  +author's reputation will not be affected by problems that might be
  +introduced by others.
  +^L
  +  Finally, software patents pose a constant threat to the existence of
  +any free program.  We wish to make sure that a company cannot
  +effectively restrict the users of a free program by obtaining a
  +restrictive license from a patent holder.  Therefore, we insist that
  +any patent license obtained for a version of the library must be
  +consistent with the full freedom of use specified in this license.
  +
  +  Most GNU software, including some libraries, is covered by the
  +ordinary GNU General Public License.  This license, the GNU Lesser
  +General Public License, applies to certain designated libraries, and
  +is quite different from the ordinary General Public License.  We use
  +this license for certain libraries in order to permit linking those
  +libraries into non-free programs.
  +
  +  When a program is linked with a library, whether statically or using
  +a shared library, the combination of the two is legally speaking a
  +combined work, a derivative of the original library.  The ordinary
  +General Public License therefore permits such linking only if the
  +entire combination fits its criteria of freedom.  The Lesser General
  +Public License permits more lax criteria for linking other code with
  +the library.
  +
  +  We call this license the "Lesser" General Public License because it
  +does Less to protect the user's freedom than the ordinary General
  +Public License.  It also provides other free software developers Less
  +of an advantage over competing non-free programs.  These disadvantages
  +are the reason we use the ordinary General Public License for many
  +libraries.  However, the Lesser license provides advantages in certain
  +special circumstances.
  +
  +  For example, on rare occasions, there may be a special need to
  +encourage the widest possible use of a certain library, so that it
  +becomes
  +a de-facto standard.  To achieve this, non-free programs must be
  +allowed to use the library.  A more frequent case is that a free
  +library does the same job as widely used non-free libraries.  In this
  +case, there is little to gain by limiting the free library to free
  +software only, so we use the Lesser General Public License.
  +
  +  In other cases, permission to use a particular library in non-free
  +programs enables a greater number of people to use a large body of
  +free software.  For example, permission to use the GNU C Library in
  +non-free programs enables many more people to use the whole GNU
  +operating system, as well as its variant, the GNU/Linux operating
  +system.
  +
  +  Although the Lesser General Public License is Less protective of the
  +users' freedom, it does ensure that the user of a program that is
  +linked with the Library has the freedom and the wherewithal to run
  +that program using a modified version of the Library.
   
     The precise terms and conditions for copying, distribution and
   modification follow.  Pay close attention to the difference between a
   "work based on the library" and a "work that uses the library".  The
  -former contains code derived from the library, while the latter only
  -works together with the library.
  -
  -  Note that it is possible for a library to be covered by the ordinary
  -General Public License rather than by this special one.
  -
  -               GNU LIBRARY GENERAL PUBLIC LICENSE
  +former contains code derived from the library, whereas the latter must
  +be combined with the library in order to run.
  +^L
  +                  GNU LESSER GENERAL PUBLIC LICENSE
      TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
   
  -  0. This License Agreement applies to any software library which
  -contains a notice placed by the copyright holder or other authorized
  -party saying it may be distributed under the terms of this Library
  -General Public License (also called "this License").  Each licensee is
  -addressed as "you".
  +  0. This License Agreement applies to any software library or other
  +program which contains a notice placed by the copyright holder or
  +other authorized party saying it may be distributed under the terms of
  +this Lesser General Public License (also called "this License").
  +Each licensee is addressed as "you".
   
     A "library" means a collection of software functions and/or data
   prepared so as to be conveniently linked with application programs
  @@ -123,7 +139,8 @@
     "Source code" for a work means the preferred form of the work for
   making modifications to it.  For a library, complete source code means
   all the source code for all modules it contains, plus any associated
  -interface definition files, plus the scripts used to control compilation
  +interface definition files, plus the scripts used to control
  +compilation
   and installation of the library.
   
     Activities other than copying, distribution and modification are not
  @@ -203,7 +220,7 @@
   ordinary GNU General Public License has appeared, then you can specify
   that version instead if you wish.)  Do not make any other change in
   these notices.
  -
  +^L
     Once this change is made in a given copy, it is irreversible for
   that copy, so the ordinary GNU General Public License applies to all
   subsequent copies and derivative works made from that copy.
  @@ -254,8 +271,8 @@
   distribute the object code for the work under the terms of Section 6.
   Any executables containing that work also fall under Section 6,
   whether or not they are linked directly with the Library itself.
  -
  -  6. As an exception to the Sections above, you may also compile or
  +^L
  +  6. As an exception to the Sections above, you may also combine or
   link a "work that uses the Library" with the Library to produce a
   work containing portions of the Library, and distribute that work
   under terms of your choice, provided that the terms permit
  @@ -282,23 +299,31 @@
       Library will not necessarily be able to recompile the application
       to use the modified definitions.)
   
  -    b) Accompany the work with a written offer, valid for at
  +    b) Use a suitable shared library mechanism for linking with the
  +    Library.  A suitable mechanism is one that (1) uses at run time a
  +    copy of the library already present on the user's computer system,
  +    rather than copying library functions into the executable, and (2)
  +    will operate properly with a modified version of the library, if
  +    the user installs one, as long as the modified version is
  +    interface-compatible with the version that the work was made with.
  +
  +    c) Accompany the work with a written offer, valid for at
       least three years, to give the same user the materials
       specified in Subsection 6a, above, for a charge no more
       than the cost of performing this distribution.
   
  -    c) If distribution of the work is made by offering access to copy
  +    d) If distribution of the work is made by offering access to copy
       from a designated place, offer equivalent access to copy the above
       specified materials from the same place.
   
  -    d) Verify that the user has already received a copy of these
  +    e) Verify that the user has already received a copy of these
       materials or that you have already sent this user a copy.
   
     For an executable, the required form of the "work that uses the
   Library" must include any data and utility programs needed for
   reproducing the executable from it.  However, as a special exception,
  -the source code distributed need not include anything that is normally
  -distributed (in either source or binary form) with the major
  +the materials to be distributed need not include anything that is
  +normally distributed (in either source or binary form) with the major
   components (compiler, kernel, and so on) of the operating system on
   which the executable runs, unless that component itself accompanies
   the executable.
  @@ -308,7 +333,7 @@
   accompany the operating system.  Such a contradiction means you cannot
   use both them and the Library together in an executable that you
   distribute.
  -
  +^L
     7. You may place library facilities that are a work based on the
   Library side-by-side in a single library together with other library
   facilities not covered by this License, and distribute such a combined
  @@ -347,9 +372,9 @@
   original licensor to copy, distribute, link with or modify the Library
   subject to these terms and conditions.  You may not impose any further
   restrictions on the recipients' exercise of the rights granted herein.
  -You are not responsible for enforcing compliance by third parties to
  +You are not responsible for enforcing compliance by third parties with
   this License.
  -
  +^L
     11. If, as a consequence of a court judgment or allegation of patent
   infringement or for any other reason (not limited to patent issues),
   conditions are imposed on you (whether by court order, agreement or
  @@ -363,9 +388,10 @@
   the only way you could satisfy both it and this License would be to
   refrain entirely from distribution of the Library.
   
  -If any portion of this section is held invalid or unenforceable under any
  -particular circumstance, the balance of the section is intended to apply,
  -and the section as a whole is intended to apply in other circumstances.
  +If any portion of this section is held invalid or unenforceable under
  +any particular circumstance, the balance of the section is intended to
  +apply, and the section as a whole is intended to apply in other
  +circumstances.
   
   It is not the purpose of this section to induce you to infringe any
   patents or other property right claims or to contest validity of any
  @@ -383,14 +409,14 @@
   
     12. If the distribution and/or use of the Library is restricted in
   certain countries either by patents or by copyrighted interfaces, the
  -original copyright holder who places the Library under this License may add
  -an explicit geographical distribution limitation excluding those countries,
  -so that distribution is permitted only in or among countries not thus
  -excluded.  In such case, this License incorporates the limitation as if
  -written in the body of this License.
  +original copyright holder who places the Library under this License
  +may add an explicit geographical distribution limitation excluding those
  +countries, so that distribution is permitted only in or among
  +countries not thus excluded.  In such case, this License incorporates
  +the limitation as if written in the body of this License.
   
     13. The Free Software Foundation may publish revised and/or new
  -versions of the Library General Public License from time to time.
  +versions of the Lesser General Public License from time to time.
   Such new versions will be similar in spirit to the present version,
   but may differ in detail to address new problems or concerns.
   
  @@ -401,7 +427,7 @@
   the Free Software Foundation.  If the Library does not specify a
   license version number, you may choose any version ever published by
   the Free Software Foundation.
  -
  +^L
     14. If you wish to incorporate parts of the Library into other free
   programs whose distribution conditions are incompatible with these,
   write to the author to ask for permission.  For software which is
  @@ -411,7 +437,7 @@
   of all derivatives of our free software and of promoting the sharing
   and reuse of software generally.
   
  -                         NO WARRANTY
  +                            NO WARRANTY
   
     15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
   WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
  @@ -434,48 +460,56 @@
   SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
   DAMAGES.
   
  -                  END OF TERMS AND CONDITIONS
  -
  -     Appendix: How to Apply These Terms to Your New Libraries
  +                     END OF TERMS AND CONDITIONS
  +^L
  +           How to Apply These Terms to Your New Libraries
   
     If you develop a new library, and you want it to be of the greatest
   possible use to the public, we recommend making it free software that
   everyone can redistribute and change.  You can do so by permitting
  -redistribution under these terms (or, alternatively, under the terms of the
  -ordinary General Public License).
  +redistribution under these terms (or, alternatively, under the terms
  +of the ordinary General Public License).
   
  -  To apply these terms, attach the following notices to the library.  It is
  -safest to attach them to the start of each source file to most effectively
  -convey the exclusion of warranty; and each file should have at least the
  -"copyright" line and a pointer to where the full notice is found.
  +  To apply these terms, attach the following notices to the library.
  +It is safest to attach them to the start of each source file to most
  +effectively convey the exclusion of warranty; and each file should
  +have at least the "copyright" line and a pointer to where the full
  +notice is found.
   
  -    <one line to give the library's name and a brief idea of what it does.>
  +
  +    <one line to give the library's name and a brief idea of what it
  +does.>
       Copyright (C) <year>  <name of author>
   
       This library is free software; you can redistribute it and/or
  -    modify it under the terms of the GNU Library General Public
  +    modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2 of the License, or (at your option) any later version.
   
       This library 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
  -    Library General Public License for more details.
  +    Lesser General Public License for more details.
   
  -    You should have received a copy of the GNU Library General Public
  -    License along with this library; if not, write to the Free
  -    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +    You should have received a copy of the GNU Lesser General Public
  +    License along with this library; if not, write to the Free Software
  +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
 USA
   
  -Also add information on how to contact you by electronic and paper mail.
  +Also add information on how to contact you by electronic and paper
  +mail.
   
  -You should also get your employer (if you work as a programmer) or your
  +You should also get your employer (if you work as a programmer) or
  +your
   school, if any, to sign a "copyright disclaimer" for the library, if
   necessary.  Here is a sample; alter the names:
   
     Yoyodyne, Inc., hereby disclaims all copyright interest in the
  -  library `Frob' (a library for tweaking knobs) written by James Random 
Hacker.
  +  library `Frob' (a library for tweaking knobs) written by James
  +Random Hacker.
   
     <signature of Ty Coon>, 1 April 1990
     Ty Coon, President of Vice
   
   That's all there is to it!
  +
  +
  
  
  --- orig/lib/Makefile.in
  +++ mod/lib/Makefile.in
  @@ -1,19 +1,21 @@
  -# Makefile for GNU m4 library.
  -# Copyright (C) 1992, 1993, 1994 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
  -# the Free Software Foundation; either version 2, or (at your option)
  -# any later version.
  -
  -# This program 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, write to the Free Software
  -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +## Makefile.in -- Makefile for GNU m4 library.
  +##
  +## Copyright (C) 1992, 1993, 1994 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
  +## the Free Software Foundation; either version 2 of the License, or
  +## (at your option) any later version.
  +##
  +## This program 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; See the file COPYING.  if not, write to
  +## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  +## Boston, MA 02110-1301, USA.
   
   PACKAGE = @PACKAGE@
   VERSION = @VERSION@
  
  
  --- orig/lib/error.c
  +++ mod/lib/error.c
  @@ -1,10 +1,11 @@
   /* error.c -- error handler for noninteractive utilities
  -   Copyright (C) 1990, 91, 92, 93, 94 Free Software Foundation, Inc.
  +
  +   Copyright (C) 1990, 1991, 1992, 1993, 1994 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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -13,7 +14,9 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   /* Written by David MacKenzie <address@hidden>.  */
   
  
  
  --- orig/lib/getopt.c
  +++ mod/lib/getopt.c
  @@ -3,13 +3,13 @@
      "Keep this file name-space clean" means, talk to address@hidden
      before changing it!
   
  -   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94
  -     Free Software Foundation, Inc.
  +   Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994
  +   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 the
  -   Free Software Foundation; either version 2, or (at your option) any
  -   later version.
  +   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
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -18,8 +18,10 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  -
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
  +
   /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
      Ditto for AIX 3.2 and <stdlib.h>.  */
   #ifndef _NO_PROTO
  
  
  --- orig/lib/getopt.h
  +++ mod/lib/getopt.h
  @@ -1,10 +1,12 @@
   /* Declarations for getopt.
  -   Copyright (C) 1989, 90, 91, 92, 93, 94 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 the
  -   Free Software Foundation; either version 2, or (at your option) any
  -   later version.
  +   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994
  +   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
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -13,7 +15,9 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   #ifndef _GETOPT_H
   #define _GETOPT_H 1
  
  
  --- orig/lib/getopt1.c
  +++ mod/lib/getopt1.c
  @@ -1,11 +1,12 @@
   /* getopt_long and getopt_long_only entry points for GNU getopt.
  -   Copyright (C) 1987, 88, 89, 90, 91, 92, 1993, 1994
  -     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 the
  -   Free Software Foundation; either version 2, or (at your option) any
  -   later version.
  +   Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994
  +   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
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -14,8 +15,10 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  -
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
  +
   #ifdef HAVE_CONFIG_H
   #include <config.h>
   #endif
  
  
  --- orig/lib/obstack.c
  +++ mod/lib/obstack.c
  @@ -1,19 +1,23 @@
   /* obstack.c - subroutines used implicitly by object stack macros
  -   Copyright (C) 1988, 89, 90, 91, 92, 93, 94 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 the
  -Free Software Foundation; either version 2, or (at your option) any
  -later version.
  -
  -This program 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, write to the Free Software
  -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994
  +   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
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
  +   This program 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, write to the Free Software
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   #include "obstack.h"
   
  
  
  --- orig/lib/obstack.h
  +++ mod/lib/obstack.h
  @@ -1,19 +1,23 @@
   /* obstack.h - object stack macros
  -   Copyright (C) 1988, 89, 90, 91, 92, 93, 94 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 the
  -Free Software Foundation; either version 2, or (at your option) any
  -later version.
  -
  -This program 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, write to the Free Software
  -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994
  +   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
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
  +   This program 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, write to the Free Software
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   /* Summary:
   
  @@ -331,7 +335,7 @@
   /* These assume that the obstack alignment is good enough for pointers or 
ints,
      and that the data added so far to the current object
      shares that much alignment.  */
  -   
  +
   #define obstack_ptr_grow(OBSTACK,datum)                                      
\
   __extension__                                                                
\
   ({ struct obstack *__o = (OBSTACK);                                  \
  
  
  --- orig/lib/regex.c
  +++ mod/lib/regex.c
  @@ -7,8 +7,8 @@
   
      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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -17,7 +17,9 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   /* AIX requires this to be the first thing in the file. */
   #if defined (_AIX) && !defined (REGEX_MALLOC)
  @@ -77,7 +79,7 @@
   
   /* This must be nonzero for the wordchar and notwordchar pattern
      commands in re_match_2.  */
  -#ifndef Sword 
  +#ifndef Sword
   #define Sword 1
   #endif
   
  @@ -188,8 +190,8 @@
      use `alloca' instead of `malloc'.  This is because using malloc in
      re_search* or re_match* could cause memory leaks when C-g is used in
      Emacs; also, malloc is slower and causes storage fragmentation.  On
  -   the other hand, malloc is more portable, and easier to debug.  
  -   
  +   the other hand, malloc is more portable, and easier to debug.
  +
      Because we sometimes use alloca, some routines have to be macros,
      not functions -- `alloca'-allocated space disappears at the end of the
      function it is called in.  */
  @@ -214,7 +216,7 @@
   #ifndef _AIX /* Already did AIX, up at the top.  */
   char *alloca ();
   #endif /* not _AIX */
  -#endif /* not HAVE_ALLOCA_H */ 
  +#endif /* not HAVE_ALLOCA_H */
   #endif /* not __GNUC__ */
   
   #endif /* not alloca */
  @@ -319,9 +321,9 @@
   
           /* Analogously, for end of buffer/string.  */
     endbuf,
  - 
  +
           /* Followed by two byte relative address to which to jump.  */
  -  jump, 
  +  jump,
   
        /* Same as jump, but marks the end of an alternative.  */
     jump_past_alt,
  @@ -329,11 +331,11 @@
           /* Followed by two-byte relative address of place to resume at
              in case of failure.  */
     on_failure_jump,
  -     
  +
           /* Like on_failure_jump, but pushes a placeholder instead of the
              current string position when executed.  */
     on_failure_keep_string_jump,
  -  
  +
           /* Throw away latest failure point and then jump to following
              two-byte relative address.  */
     pop_failure_jump,
  @@ -429,7 +431,7 @@
       int *dest;
       unsigned char *source;
   {
  -  int temp = SIGN_EXTEND_CHAR (*(source + 1)); 
  +  int temp = SIGN_EXTEND_CHAR (*(source + 1));
     *dest = *source & 0377;
     *dest += temp << 8;
   }
  @@ -455,7 +457,7 @@
   extract_number_and_incr (destination, source)
       int *destination;
       unsigned char **source;
  -{ 
  +{
     extract_number (destination, *source);
     *source += 2;
   }
  @@ -504,8 +506,8 @@
       char *fastmap;
   {
     unsigned was_a_range = 0;
  -  unsigned i = 0;  
  -  
  +  unsigned i = 0;
  +
     while (i < (1 << BYTEWIDTH))
       {
         if (fastmap[i++])
  @@ -524,7 +526,7 @@
               }
           }
       }
  -  putchar ('\n'); 
  +  putchar ('\n');
   }
   
   
  @@ -545,7 +547,7 @@
         printf ("(null)\n");
         return;
       }
  -    
  +
     /* Loop over pattern commands.  */
     while (p < pend)
       {
  @@ -594,7 +596,7 @@
   
            printf ("/charset [%s",
                    (re_opcode_t) *(p - 1) == charset_not ? "^" : "");
  -            
  +
               assert (p + *p < pend);
   
               for (c = 0; c < 256; c++)
  @@ -613,7 +615,7 @@
                      printchar (last);
                      in_range = 0;
                    }
  -                
  +
                  if (! in_range)
                    printchar (c);
   
  @@ -655,7 +657,7 @@
        case push_dummy_failure:
             printf ("/push_dummy_failure");
             break;
  -          
  +
           case maybe_pop_jump:
             extract_number_and_incr (&mcnt, &p);
          printf ("/maybe_pop_jump to %d", p + mcnt - start);
  @@ -664,36 +666,36 @@
           case pop_failure_jump:
          extract_number_and_incr (&mcnt, &p);
          printf ("/pop_failure_jump to %d", p + mcnt - start);
  -       break;          
  -          
  +       break;
  +
           case jump_past_alt:
          extract_number_and_incr (&mcnt, &p);
          printf ("/jump_past_alt to %d", p + mcnt - start);
  -       break;          
  -          
  +       break;
  +
           case jump:
          extract_number_and_incr (&mcnt, &p);
          printf ("/jump to %d", p + mcnt - start);
          break;
   
  -        case succeed_n: 
  +        case succeed_n:
             extract_number_and_incr (&mcnt, &p);
             extract_number_and_incr (&mcnt2, &p);
          printf ("/succeed_n to %d, %d times", p + mcnt - start, mcnt2);
             break;
  -        
  -        case jump_n: 
  +
  +        case jump_n:
             extract_number_and_incr (&mcnt, &p);
             extract_number_and_incr (&mcnt2, &p);
          printf ("/jump_n to %d, %d times", p + mcnt - start, mcnt2);
             break;
  -        
  -        case set_number_at: 
  +
  +        case set_number_at:
             extract_number_and_incr (&mcnt, &p);
             extract_number_and_incr (&mcnt2, &p);
          printf ("/set_number_at location %d to %d", p + mcnt - start, mcnt2);
             break;
  -        
  +
           case wordbound:
          printf ("/wordbound");
          break;
  @@ -705,10 +707,10 @@
        case wordbeg:
          printf ("/wordbeg");
          break;
  -          
  +
        case wordend:
          printf ("/wordend");
  -          
  +
   #ifdef emacs
        case before_dot:
          printf ("/before_dot");
  @@ -727,7 +729,7 @@
          mcnt = *p++;
          printf ("/%d", mcnt);
             break;
  -       
  +
        case notsyntaxspec:
             printf ("/notsyntaxspec");
          mcnt = *p++;
  @@ -738,7 +740,7 @@
        case wordchar:
          printf ("/wordchar");
             break;
  -       
  +
        case notwordchar:
          printf ("/notwordchar");
             break;
  @@ -798,7 +800,7 @@
       int size2;
   {
     unsigned this_char;
  -  
  +
     if (where == NULL)
       printf ("(null)");
     else
  @@ -808,7 +810,7 @@
             for (this_char = where - string1; this_char < size1; this_char++)
               printchar (string1[this_char]);
   
  -          where = string2;    
  +          where = string2;
           }
   
         for (this_char = where - string2; this_char < size2; this_char++)
  @@ -849,7 +851,7 @@
       reg_syntax_t syntax;
   {
     reg_syntax_t ret = re_syntax_options;
  -  
  +
     re_syntax_options = syntax;
     return ret;
   }
  @@ -887,7 +889,7 @@
      ralloc heap) shift the data out from underneath the regexp
      routines.
   
  -   Here's another reason to avoid allocation: Emacs 
  +   Here's another reason to avoid allocation: Emacs
      processes input from X in a signal handler; processing X input may
      call malloc; if input arrives while a matching routine is calling
      malloc, then we're scrod.  But Emacs can't just block input while
  @@ -909,7 +911,7 @@
   /* Failure stack declarations and macros; both re_compile_fastmap and
      re_match_2 use a failure stack.  These have to be macros because of
      REGEX_ALLOCATE.  */
  -   
  +
   
   /* Number of failure points for which to initially allocate space
      when matching.  If this number is exceeded, we allocate more
  @@ -964,8 +966,8 @@
   /* Double the size of FAIL_STACK, up to approximately `re_max_failures' 
items.
   
      Return 1 if succeeds, and 0 if either ran out of memory
  -   allocating space for it or it was already too large.  
  -   
  +   allocating space for it or it was already too large.
  +
      REGEX_REALLOCATE requires `destination' be declared.   */
   
   #define DOUBLE_FAIL_STACK(fail_stack)                                        
\
  @@ -982,7 +984,7 @@
            1)))
   
   
  -/* Push PATTERN_OP on FAIL_STACK. 
  +/* Push PATTERN_OP on FAIL_STACK.
   
      Return 1 if was able to do so and 0 if ran out of memory allocating
      space to do so.  */
  @@ -1013,12 +1015,12 @@
   
   
   /* Push the information about the state we will need
  -   if we ever fail back to it.  
  -   
  +   if we ever fail back to it.
  +
      Requires variables fail_stack, regstart, regend, reg_info, and
      num_regs be declared.  DOUBLE_FAIL_STACK requires `destination' be
      declared.
  -   
  +
      Does `return FAILURE_CODE' if runs out of memory.  */
   
   #define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code)        
\
  @@ -1126,7 +1128,7 @@
        LOW_REG, HIGH_REG -- the highest and lowest active registers.
        REGSTART, REGEND -- arrays of string positions.
        REG_INFO -- array of information about each subexpression.
  -   
  +
      Also assumes the variables `fail_stack' and (if debugging), `bufp',
      `pend', `string1', `size1', `string2', and `size2'.  */
   
  @@ -1194,8 +1196,8 @@
      onto the failure stack.  Other register information, such as the
      starting and ending positions (which are addresses), and the list of
      inner groups (which is a bits list) are maintained in separate
  -   variables.  
  -   
  +   variables.
  +
      We are making a (strictly speaking) nonportable assumption here: that
      the compiler will pack our bit fields into something that fits into
      the type of `word', i.e., is something that fits into one item on the
  @@ -1253,7 +1255,7 @@
   static const char **     regstart, **     regend;
   static const char ** old_regstart, ** old_regend;
   static const char **best_regstart, **best_regend;
  -static register_info_type *reg_info; 
  +static register_info_type *reg_info;
   static const char **reg_dummy;
   static register_info_type *reg_info_dummy;
   #endif
  @@ -1267,7 +1269,7 @@
   static boolean group_in_compile_stack ();
   static reg_errcode_t compile_range ();
   
  -/* Fetch the next character in the uncompiled pattern---translating it 
  +/* Fetch the next character in the uncompiled pattern---translating it
      if necessary.  Also cast from a signed character in the constant
      string passed to us by the user to an unsigned char that we can use
      as an array index (in, e.g., `translate').  */
  @@ -1407,7 +1409,7 @@
     pattern_offset_t begalt_offset;
     pattern_offset_t fixup_alt_jump;
     pattern_offset_t inner_group_offset;
  -  pattern_offset_t laststart_offset;  
  +  pattern_offset_t laststart_offset;
     regnum_t regnum;
   } compile_stack_elt_t;
   
  @@ -1450,7 +1452,7 @@
              PATFETCH (c);                                             \
            }                                                           \
          }                                                             \
  -    }                
  +    }
   
   #define CHAR_CLASS_MAX_LENGTH  6 /* Namely, `xdigit'.  */
   
  @@ -1476,7 +1478,7 @@
        `fastmap_accurate' is zero;
        `re_nsub' is the number of subexpressions in PATTERN;
        `not_bol' and `not_eol' are zero;
  -   
  +
      The `fastmap' and `newline_anchor' fields are neither
      examined nor set.  */
   
  @@ -1495,20 +1497,20 @@
        `char *' (i.e., signed), we declare these variables as unsigned, so
        they can be reliably used as array indices.  */
     register unsigned char c, c1;
  -  
  +
     /* A random temporary spot in PATTERN.  */
     const char *p1;
   
     /* Points to the end of the buffer, where we should append.  */
     register unsigned char *b;
  -  
  +
     /* Keeps track of unclosed groups.  */
     compile_stack_type compile_stack;
   
     /* Points to the current (ending) position in the pattern.  */
     const char *p = pattern;
     const char *pend = pattern + size;
  -  
  +
     /* How to translate the characters in the pattern.  */
     char *translate = bufp->translate;
   
  @@ -1529,7 +1531,7 @@
     /* Place in the uncompiled pattern (i.e., the {) to
        which to go back if the interval is invalid.  */
     const char *beg_interval;
  -                
  +
     /* Address of the place where a forward jump should go to the end of
        the containing expression.  Each alternative of an `or' -- except the
        last -- ends with a forward jump of this sort.  */
  @@ -1545,7 +1547,7 @@
     if (debug)
       {
         unsigned debug_count;
  -      
  +
         for (debug_count = 0; debug_count < size; debug_count++)
           printchar (pattern[debug_count]);
         putchar ('\n');
  @@ -1569,9 +1571,9 @@
        printer (for debugging) will think there's no pattern.  We reset it
        at the end.  */
     bufp->used = 0;
  -  
  +
     /* Always count groups, whether or not bufp->no_sub is set.  */
  -  bufp->re_nsub = 0;                         
  +  bufp->re_nsub = 0;
   
   #if !defined (emacs) && !defined (SYNTAX_TABLE)
     /* Initialize the syntax table.  */
  @@ -1622,7 +1624,7 @@
           case '$':
             {
               if (   /* If at end of pattern, it's an operator.  */
  -                   p == pend 
  +                   p == pend
                      /* If context independent, it's an operator.  */
                   || syntax & RE_CONTEXT_INDEP_ANCHORS
                      /* Otherwise, depends on what's next.  */
  @@ -1653,7 +1655,7 @@
             {
               /* Are we optimizing this jump?  */
               boolean keep_string_p = false;
  -            
  +
               /* 1 means zero (many) matches is allowed.  */
               char zero_times_ok = 0, many_times_ok = 0;
   
  @@ -1701,7 +1703,7 @@
   
               /* Star, etc. applied to an empty pattern is equivalent
                  to an empty pattern.  */
  -            if (!laststart)  
  +            if (!laststart)
                 break;
   
               /* Now we know whether or not zero matches is allowed
  @@ -1710,7 +1712,7 @@
                 { /* More than one repetition is allowed, so put in at the
                      end a backward relative jump from `b' to before the next
                      jump we're going to put in below (which jumps from
  -                   laststart to after this jump).  
  +                   laststart to after this jump).
   
                      But if we are at the `*' in the exact sequence `.*\n',
                      insert an unconditional jump backwards to the .,
  @@ -1787,7 +1789,7 @@
   
               /* We test `*p == '^' twice, instead of using an if
                  statement, so we only need one BUF_PUSH.  */
  -            BUF_PUSH (*p == '^' ? charset_not : charset); 
  +            BUF_PUSH (*p == '^' ? charset_not : charset);
               if (*p == '^')
                 p++;
   
  @@ -1837,8 +1839,8 @@
                      was a character: if this is a hyphen not at the
                      beginning or the end of a list, then it's the range
                      operator.  */
  -                if (c == '-' 
  -                    && !(p - 2 >= pattern && p[-2] == '[') 
  +                if (c == '-'
  +                    && !(p - 2 >= pattern && p[-2] == '[')
                       && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^')
                       && *p != ']')
                     {
  @@ -1853,7 +1855,7 @@
   
                    /* Move past the `-'.  */
                       PATFETCH (c1);
  -                    
  +
                       ret = compile_range (&p, pend, translate, syntax, b);
                       if (ret != REG_NOERROR) FREE_STACK_RETURN (ret);
                     }
  @@ -1882,7 +1884,7 @@
                       str[c1] = '\0';
   
                       /* If isn't a word bracketed by `[:' and:`]':
  -                       undo the ending character, the letters, and leave 
  +                       undo the ending character, the letters, and leave
                          the leading `:' and `[' (but set bits for them).  */
                       if (c == ':' && *p == ']')
                         {
  @@ -1899,13 +1901,13 @@
                           boolean is_space = STREQ (str, "space");
                           boolean is_upper = STREQ (str, "upper");
                           boolean is_xdigit = STREQ (str, "xdigit");
  -                        
  +
                           if (!IS_CHAR_CLASS (str))
                          FREE_STACK_RETURN (REG_ECTYPE);
   
                           /* Throw away the ] at the end of the character
                              class.  */
  -                        PATFETCH (c);                                        
  +                        PATFETCH (c);
   
                           if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
   
  @@ -1934,7 +1936,7 @@
                       else
                         {
                           c1++;
  -                        while (c1--)    
  +                        while (c1--)
                             PATUNFETCH;
                           SET_LIST_BIT ('[');
                           SET_LIST_BIT (':');
  @@ -1950,8 +1952,8 @@
   
               /* Discard any (non)matching list bytes that are all 0 at the
                  end of the map.  Decrease the map-length byte too.  */
  -            while ((int) b[-1] > 0 && b[b[-1] - 1] == 0) 
  -              b[-1]--; 
  +            while ((int) b[-1] > 0 && b[b[-1] - 1] == 0)
  +              b[-1]--;
               b += b[-1];
             }
             break;
  @@ -2011,7 +2013,7 @@
                 regnum++;
   
                 if (COMPILE_STACK_FULL)
  -                { 
  +                {
                     RETALLOC (compile_stack.stack, compile_stack.size << 1,
                               compile_stack_elt_t);
                     if (compile_stack.stack == NULL) return REG_ESPACE;
  @@ -2024,7 +2026,7 @@
                    whole pattern moves because of realloc, they will still
                    be valid.  */
                 COMPILE_STACK_TOP.begalt_offset = begalt - bufp->buffer;
  -              COMPILE_STACK_TOP.fixup_alt_jump 
  +              COMPILE_STACK_TOP.fixup_alt_jump
                   = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0;
                 COMPILE_STACK_TOP.laststart_offset = b - bufp->buffer;
                 COMPILE_STACK_TOP.regnum = regnum;
  @@ -2038,7 +2040,7 @@
                     COMPILE_STACK_TOP.inner_group_offset = b - bufp->buffer + 
2;
                     BUF_PUSH_3 (start_memory, regnum, 0);
                   }
  -                
  +
                 compile_stack.avail++;
   
                 fixup_alt_jump = 0;
  @@ -2067,7 +2069,7 @@
                        `pop_failure_jump' to pop.  See comments at
                        `push_dummy_failure' in `re_match_2'.  */
                     BUF_PUSH (push_dummy_failure);
  -                  
  +
                     /* We allocated space for this jump when we assigned
                        to `fixup_alt_jump', in the `handle_alt' case below.  */
                     STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1);
  @@ -2089,11 +2091,11 @@
                      as in `(ab)c(de)' -- the second group is #2.  */
                   regnum_t this_group_regnum;
   
  -                compile_stack.avail--;               
  +                compile_stack.avail--;
                   begalt = bufp->buffer + COMPILE_STACK_TOP.begalt_offset;
                   fixup_alt_jump
                     = COMPILE_STACK_TOP.fixup_alt_jump
  -                    ? bufp->buffer + COMPILE_STACK_TOP.fixup_alt_jump - 1 
  +                    ? bufp->buffer + COMPILE_STACK_TOP.fixup_alt_jump - 1
                       : 0;
                   laststart = bufp->buffer + 
COMPILE_STACK_TOP.laststart_offset;
                   this_group_regnum = COMPILE_STACK_TOP.regnum;
  @@ -2108,7 +2110,7 @@
                     {
                       unsigned char *inner_group_loc
                         = bufp->buffer + COMPILE_STACK_TOP.inner_group_offset;
  -                    
  +
                       *inner_group_loc = regnum - this_group_regnum;
                       BUF_PUSH_3 (stop_memory, this_group_regnum,
                                   regnum - this_group_regnum);
  @@ -2137,10 +2139,10 @@
                    jump (put in below, which in turn will jump to the next
                    (if any) alternative's such jump, etc.).  The last such
                    jump jumps to the correct final destination.  A picture:
  -                          _____ _____ 
  -                          |   | |   |   
  -                          |   v |   v 
  -                         a | b   | c   
  +                          _____ _____
  +                          |   | |   |
  +                          |   v |   v
  +                         a | b   | c
   
                    If we are at `b', then fixup_alt_jump right now points to a
                    three-byte space after `a'.  We'll put in the jump, set
  @@ -2162,10 +2164,10 @@
                 break;
   
   
  -            case '{': 
  +            case '{':
                 /* If \{ is a literal.  */
                 if (!(syntax & RE_INTERVALS)
  -                     /* If we're at `\{' and it's not the open-interval 
  +                     /* If we're at `\{' and it's not the open-interval
                           operator.  */
                     || ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
                     || (p - 2 == pattern  &&  p == pend))
  @@ -2204,11 +2206,11 @@
                     {
                       if (syntax & RE_NO_BK_BRACES)
                         goto unfetch_interval;
  -                    else 
  +                    else
                         FREE_STACK_RETURN (REG_BADBR);
                     }
   
  -                if (!(syntax & RE_NO_BK_BRACES)) 
  +                if (!(syntax & RE_NO_BK_BRACES))
                     {
                       if (c != '\\') FREE_STACK_RETURN (REG_EBRACE);
   
  @@ -2219,7 +2221,7 @@
                     {
                       if (syntax & RE_NO_BK_BRACES)
                         goto unfetch_interval;
  -                    else 
  +                    else
                         FREE_STACK_RETURN (REG_BADBR);
                     }
   
  @@ -2255,7 +2257,7 @@
                         jump_n <succeed_n addr> <jump count>
                       (The upper bound and `jump_n' are omitted if
                       `upper_bound' is 1, though.)  */
  -                 else 
  +                 else
                      { /* If the upper bound is > 1, we need to insert
                           more at the end of the loop.  */
                        unsigned nbytes = 10 + (upper_bound > 1) * 10;
  @@ -2272,7 +2274,7 @@
                                      lower_bound);
                        b += 5;
   
  -                     /* Code to initialize the lower bound.  Insert 
  +                     /* Code to initialize the lower bound.  Insert
                           before the `succeed_n'.  The `5' is the last two
                           bytes of this `set_number_at', plus 3 bytes of
                           the following `succeed_n'.  */
  @@ -2283,7 +2285,7 @@
                          { /* More than one repetition is allowed, so
                               append a backward jump to the `succeed_n'
                               that starts this interval.
  -                            
  +
                               When we've reached this during matching,
                               we'll have matched the interval once, so
                               jump back only `upper_bound - 1' times.  */
  @@ -2301,7 +2303,7 @@
                               so everything is getting moved up by 5.
                               Conclusion: (b - 2) - (laststart + 3) + 5,
                               i.e., b - laststart.
  -                            
  +
                               We insert this at the beginning of the loop
                               so that if we fail during matching, we'll
                               reinitialize the bounds.  */
  @@ -2322,7 +2324,7 @@
                  beg_interval = NULL;
   
                  /* normal_char and normal_backslash need `c'.  */
  -               PATFETCH (c); 
  +               PATFETCH (c);
   
                  if (!(syntax & RE_NO_BK_BRACES))
                    {
  @@ -2338,7 +2340,7 @@
                 BUF_PUSH (at_dot);
                 break;
   
  -            case 's':        
  +            case 's':
                 laststart = b;
                 PATFETCH (c);
                 BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]);
  @@ -2429,11 +2431,11 @@
           /* Expects the character in `c'.  */
        normal_char:
              /* If no exactn currently being built.  */
  -          if (!pending_exact 
  +          if (!pending_exact
   
                 /* If last exactn not at current position.  */
                 || pending_exact + *pending_exact + 1 != b
  -              
  +
                 /* We have only one byte following the exactn for the count.  
*/
              || *pending_exact == (1 << BYTEWIDTH) - 1
   
  @@ -2448,26 +2450,26 @@
                         : (p[0] == '\\' && p[1] == '{'))))
            {
              /* Start building a new exactn.  */
  -              
  +
                 laststart = b;
   
              BUF_PUSH_2 (exactn, 0);
              pending_exact = b - 1;
               }
  -            
  +
          BUF_PUSH (c);
             (*pending_exact)++;
          break;
           } /* switch (c) */
       } /* while p != pend */
   
  -  
  +
     /* Through the pattern now.  */
  -  
  +
     if (fixup_alt_jump)
       STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
   
  -  if (!COMPILE_STACK_EMPTY) 
  +  if (!COMPILE_STACK_EMPTY)
       FREE_STACK_RETURN (REG_EPAREN);
   
     free (compile_stack.stack);
  @@ -2500,7 +2502,7 @@
   #ifdef emacs
        if (! fail_stack.stack)
          fail_stack.stack
  -         = (fail_stack_elt_t *) xmalloc (fail_stack.size 
  +         = (fail_stack_elt_t *) xmalloc (fail_stack.size
                                            * sizeof (fail_stack_elt_t));
        else
          fail_stack.stack
  @@ -2510,7 +2512,7 @@
   #else /* not emacs */
        if (! fail_stack.stack)
          fail_stack.stack
  -         = (fail_stack_elt_t *) malloc (fail_stack.size 
  +         = (fail_stack_elt_t *) malloc (fail_stack.size
                                           * sizeof (fail_stack_elt_t));
        else
          fail_stack.stack
  @@ -2573,14 +2575,14 @@
       re_opcode_t op;
       unsigned char *loc;
       int arg;
  -    unsigned char *end;    
  +    unsigned char *end;
   {
     register unsigned char *pfrom = end;
     register unsigned char *pto = end + 3;
   
     while (pfrom != loc)
       *--pto = *--pfrom;
  -    
  +
     store_op1 (op, loc, arg);
   }
   
  @@ -2592,14 +2594,14 @@
       re_opcode_t op;
       unsigned char *loc;
       int arg1, arg2;
  -    unsigned char *end;    
  +    unsigned char *end;
   {
     register unsigned char *pfrom = end;
     register unsigned char *pto = end + 5;
   
     while (pfrom != loc)
       *--pto = *--pfrom;
  -    
  +
     store_op2 (op, loc, arg1, arg2);
   }
   
  @@ -2615,7 +2617,7 @@
   {
     const char *prev = p - 2;
     boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\';
  -  
  +
     return
          /* After a subexpression?  */
          (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
  @@ -2635,7 +2637,7 @@
     const char *next = p;
     boolean next_backslash = *next == '\\';
     const char *next_next = p + 1 < pend ? p + 1 : NULL;
  -  
  +
     return
          /* Before a subexpression?  */
          (syntax & RE_NO_BK_PARENS ? *next == ')'
  @@ -2646,7 +2648,7 @@
   }
   
   
  -/* Returns true if REGNUM is in one of COMPILE_STACK's elements and 
  +/* Returns true if REGNUM is in one of COMPILE_STACK's elements and
      false if it's not.  */
   
   static boolean
  @@ -2656,8 +2658,8 @@
   {
     int this_element;
   
  -  for (this_element = compile_stack.avail - 1;  
  -       this_element >= 0; 
  +  for (this_element = compile_stack.avail - 1;
  +       this_element >= 0;
          this_element--)
       if (compile_stack.stack[this_element].regnum == regnum)
         return true;
  @@ -2671,9 +2673,9 @@
      starting character is in `P[-2]'.  (`P[-1]' is the character `-'.)
      Then we set the translation of all bits between the starting and
      ending characters (inclusive) in the compiled pattern B.
  -   
  +
      Return an error code.
  -   
  +
      We use these short variable names so we can use the same macros as
      `regex_compile' itself.  */
   
  @@ -2688,7 +2690,7 @@
   
     const char *p = *p_ptr;
     int range_start, range_end;
  -  
  +
     if (p == pend)
       return REG_ERANGE;
   
  @@ -2697,7 +2699,7 @@
        is set, the range endpoints will be negative if we fetch using a
        signed char *.
   
  -     We also want to fetch the endpoints without translating them; the 
  +     We also want to fetch the endpoints without translating them; the
        appropriate translation is done in the bit-setting loop below.  */
     /* The SVR4 compiler on the 3B2 had trouble with unsigned const char *.  */
     range_start = ((const unsigned char *) p)[-2];
  @@ -2719,7 +2721,7 @@
       {
         SET_LIST_BIT (TRANSLATE (this_char));
       }
  -  
  +
     return REG_NOERROR;
   }
   
  @@ -2730,7 +2732,7 @@
   
      The caller must supply the address of a (1 << BYTEWIDTH)-byte data
      area as BUFP->fastmap.
  -   
  +
      We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in
      the pattern buffer.
   
  @@ -2749,7 +2751,7 @@
   #endif
     /* We don't push any register information onto the failure stack.  */
     unsigned num_regs = 0;
  -  
  +
     register char *fastmap = bufp->fastmap;
     unsigned char *pattern = bufp->buffer;
     unsigned long size = bufp->used;
  @@ -2766,27 +2768,27 @@
     boolean succeed_n_p = false;
   
     assert (fastmap != NULL && p != NULL);
  -  
  +
     INIT_FAIL_STACK ();
     bzero (fastmap, 1 << BYTEWIDTH);  /* Assume nothing's valid.  */
     bufp->fastmap_accurate = 1;            /* It will be when we're done.  */
     bufp->can_be_null = 0;
  -      
  +
     while (p != pend || !FAIL_STACK_EMPTY ())
       {
         if (p == pend)
           {
             bufp->can_be_null |= path_can_be_null;
  -          
  +
             /* Reset for next path.  */
             path_can_be_null = true;
  -          
  +
             p = fail_stack.stack[--fail_stack.avail];
        }
   
         /* We should never be about to go beyond the end of the pattern.  */
         assert (p < pend);
  -      
  +
   #ifdef SWITCH_ENUM_BUG
         switch ((int) ((re_opcode_t) *p++))
   #else
  @@ -2913,10 +2915,10 @@
           case jump_past_alt:
        case dummy_failure_jump:
             EXTRACT_NUMBER_AND_INCR (j, p);
  -       p += j;       
  +       p += j;
          if (j > 0)
            continue;
  -            
  +
             /* Jump backward implies we just went through the body of a
                loop and matched nothing.  Opcode jumped to should be
                `on_failure_jump' or `succeed_n'.  Just treat it like an
  @@ -2928,10 +2930,10 @@
   
             p++;
             EXTRACT_NUMBER_AND_INCR (j, p);
  -          p += j;            
  -       
  +          p += j;
  +
             /* If what's on the stack is where we are now, pop it.  */
  -          if (!FAIL_STACK_EMPTY () 
  +          if (!FAIL_STACK_EMPTY ()
              && fail_stack.stack[fail_stack.avail - 1] == p)
               fail_stack.avail--;
   
  @@ -2969,7 +2971,7 @@
   
        case succeed_n:
             /* Get to the number of times to succeed.  */
  -          p += 2;            
  +          p += 2;
   
             /* Increment p past the n for when k != 0.  */
             EXTRACT_NUMBER_AND_INCR (k, p);
  @@ -3060,7 +3062,7 @@
        int size, startpos, range;
        struct re_registers *regs;
   {
  -  return re_search_2 (bufp, NULL, 0, string, size, startpos, range, 
  +  return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
                      regs, size);
   }
   
  @@ -3068,17 +3070,17 @@
   /* Using the compiled pattern in BUFP->buffer, first tries to match the
      virtual concatenation of STRING1 and STRING2, starting first at index
      STARTPOS, then at STARTPOS + 1, and so on.
  -   
  +
      STRING1 and STRING2 have length SIZE1 and SIZE2, respectively.
  -   
  +
      RANGE is how far to scan while trying to match.  RANGE = 0 means try
      only at STARTPOS; in general, the last start tried is STARTPOS +
      RANGE.
  -   
  +
      In REGS, return the indices of the virtual concatenation of STRING1
      and STRING2 that matched the entire BUFP->buffer and its contained
      subexpressions.
  -   
  +
      Do not consider matching one past the index STOP in the virtual
      concatenation of STRING1 and STRING2.
   
  @@ -3105,7 +3107,7 @@
     /* Check for out-of-range STARTPOS.  */
     if (startpos < 0 || startpos > total_size)
       return -1;
  -    
  +
     /* Fix up RANGE if it might eventually take us outside
        the virtual concatenation of STRING1 and STRING2.  */
     if (endpos < -1)
  @@ -3127,10 +3129,10 @@
     if (fastmap && !bufp->fastmap_accurate)
       if (re_compile_fastmap (bufp) == -2)
         return -2;
  -  
  +
     /* Loop through the string, looking for a place to start matching.  */
     for (;;)
  -    { 
  +    {
         /* If a fastmap is supplied, skip quickly over characters that
            cannot be the start of a match.  If the pattern can match the
            null string, however, we don't need to skip characters; we want
  @@ -3147,7 +3149,7 @@
                   lim = range - (size1 - startpos);
   
              d = (startpos >= size1 ? string2 - size1 : string1) + startpos;
  -   
  +
                 /* Written out as an if-else to avoid testing `translate'
                    inside the loop.  */
              if (translate)
  @@ -3164,7 +3166,7 @@
          else                          /* Searching backwards.  */
            {
              register char c = (size1 == 0 || startpos >= size1
  -                                 ? string2[startpos - size1] 
  +                                 ? string2[startpos - size1]
                                    : string1[startpos]);
   
              if (!fastmap[(unsigned char) TRANSLATE (c)])
  @@ -3187,21 +3189,21 @@
   
         if (val >= 0)
        return startpos;
  -        
  +
         if (val == -2)
        return -2;
   
       advance:
  -      if (!range) 
  +      if (!range)
           break;
  -      else if (range > 0) 
  +      else if (range > 0)
           {
  -          range--; 
  +          range--;
             startpos++;
           }
         else
           {
  -          range++; 
  +          range++;
             startpos--;
           }
       }
  @@ -3243,7 +3245,7 @@
   /* Test if at very beginning or at very end of the virtual concatenation
      of `string1' and `string2'.  If only one string, it's `string2'.  */
   #define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2)
  -#define AT_STRINGS_END(d) ((d) == end2)      
  +#define AT_STRINGS_END(d) ((d) == end2)
   
   
   /* Test if D points to a character which is word-constituent.  We have
  @@ -3321,7 +3323,7 @@
      the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1
      and SIZE2, respectively).  We start matching at POS, and stop
      matching at STOP.
  -   
  +
      If REGS is non-null and the `no_sub' field of BUFP is nonzero, we
      store offsets for the substring each group matched in REGS.  See the
      documentation for exactly how many groups we fill.
  @@ -3369,7 +3371,7 @@
   
     /* Where we are in the data, and the end of the current string.  */
     const char *d, *dend;
  -  
  +
     /* Where we are in the pattern, and the end of the pattern.  */
     unsigned char *p = bufp->buffer;
     register unsigned char *pend = p + bufp->used;
  @@ -3402,7 +3404,7 @@
        return, for use in backreferences.  The number here includes
        an element for register zero.  */
     unsigned num_regs = bufp->re_nsub + 1;
  -  
  +
     /* The currently active registers.  */
     unsigned lowest_active_reg = NO_LOWEST_ACTIVE_REG;
     unsigned highest_active_reg = NO_HIGHEST_ACTIVE_REG;
  @@ -3434,18 +3436,18 @@
        subexpression.  These two fields get reset each time through any
        loop their register is in.  */
   #ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global.  */
  -  register_info_type *reg_info; 
  +  register_info_type *reg_info;
   #endif
   
     /* The following record the register info as found in the above
  -     variables when we find a match better than any we've seen before. 
  +     variables when we find a match better than any we've seen before.
        This happens as we backtrack through the failure points, which in
        turn happens only if we have not yet matched the entire string. */
     unsigned best_regs_set = false;
   #ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global.  */
     const char **best_regstart, **best_regend;
   #endif
  -  
  +
     /* Logically, this is `best_regend[0]'.  But we don't want to have to
        allocate space for that if we're not allocating space for anything
        else (see below).  Also, we never need info about register 0 for
  @@ -3464,13 +3466,13 @@
   
   #ifdef DEBUG
     /* Counts the total number of registers pushed.  */
  -  unsigned num_regs_pushed = 0;      
  +  unsigned num_regs_pushed = 0;
   #endif
   
     DEBUG_PRINT1 ("\n\nEntering re_match_2.\n");
  -  
  +
     INIT_FAIL_STACK ();
  -  
  +
   #ifdef MATCH_MAY_ALLOCATE
     /* Do not bother to initialize all the register variables if there are
        no groups in the pattern, as it takes a fair amount of time.  If
  @@ -3489,8 +3491,8 @@
         reg_dummy = REGEX_TALLOC (num_regs, const char *);
         reg_info_dummy = REGEX_TALLOC (num_regs, register_info_type);
   
  -      if (!(regstart && regend && old_regstart && old_regend && reg_info 
  -            && best_regstart && best_regend && reg_dummy && reg_info_dummy)) 
  +      if (!(regstart && regend && old_regstart && old_regend && reg_info
  +            && best_regstart && best_regend && reg_dummy && reg_info_dummy))
           {
             FREE_VARIABLES ();
             return -2;
  @@ -3514,21 +3516,21 @@
         FREE_VARIABLES ();
         return -1;
       }
  -    
  +
     /* Initialize subexpression text positions to -1 to mark ones that no
        start_memory/stop_memory has been seen for. Also initialize the
        register information struct.  */
     for (mcnt = 1; mcnt < num_regs; mcnt++)
       {
  -      regstart[mcnt] = regend[mcnt] 
  +      regstart[mcnt] = regend[mcnt]
           = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE;
  -        
  +
         REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE;
         IS_ACTIVE (reg_info[mcnt]) = 0;
         MATCHED_SOMETHING (reg_info[mcnt]) = 0;
         EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0;
       }
  -  
  +
     /* We move `string1' into `string2' if the latter's empty -- but not if
        `string1' is null.  */
     if (size2 == 0 && string1 != NULL)
  @@ -3553,7 +3555,7 @@
         end_match_2 = string2 + stop - size1;
       }
   
  -  /* `p' scans through the pattern as `d' scans through the data. 
  +  /* `p' scans through the pattern as `d' scans through the data.
        `dend' is the end of the input string that `d' points within.  `d'
        is advanced into the following input string whenever necessary, but
        this happens before fetching; therefore, at the beginning of the
  @@ -3575,7 +3577,7 @@
     DEBUG_PRINT1 ("The string to match is: `");
     DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2);
     DEBUG_PRINT1 ("'\n");
  -  
  +
     /* This loops over pattern commands.  It exits by returning from the
        function if the match is complete, or it drops through if the match
        fails at this starting point in the input data.  */
  @@ -3586,14 +3588,14 @@
         if (p == pend)
        { /* End of pattern means we might have succeeded.  */
             DEBUG_PRINT1 ("end of pattern ... ");
  -          
  +
          /* If we haven't matched the entire string, and we want the
                longest match, try backtracking.  */
             if (d != end_match_2)
            {
              /* 1 if this match ends in the same string (string1 or string2)
                 as the best previous match.  */
  -           boolean same_str_p = (FIRST_STRING_P (match_end) 
  +           boolean same_str_p = (FIRST_STRING_P (match_end)
                                    == MATCHING_IN_FIRST_STRING);
              /* 1 if this match is the best seen so far.  */
              boolean best_match_p;
  @@ -3606,7 +3608,7 @@
                best_match_p = !MATCHING_IN_FIRST_STRING;
   
                 DEBUG_PRINT1 ("backtracking.\n");
  -              
  +
                 if (!FAIL_STACK_EMPTY ())
                   { /* More failure points to try.  */
   
  @@ -3615,16 +3617,16 @@
                       {
                         best_regs_set = true;
                         match_end = d;
  -                      
  +
                         DEBUG_PRINT1 ("\nSAVING match as best so far.\n");
  -                      
  +
                         for (mcnt = 1; mcnt < num_regs; mcnt++)
                           {
                             best_regstart[mcnt] = regstart[mcnt];
                             best_regend[mcnt] = regend[mcnt];
                           }
                       }
  -                  goto fail;        
  +                  goto fail;
                   }
   
                 /* If no failure points, don't restore garbage.  And if
  @@ -3639,7 +3641,7 @@
                        strings `x-' and `y-z-', if the two strings are
                        not consecutive in memory.  */
                     DEBUG_PRINT1 ("Restoring best registers.\n");
  -                  
  +
                     d = match_end;
                     dend = ((d >= string1 && d <= end1)
                           ? end_match_1 : end_match_2);
  @@ -3699,7 +3701,7 @@
                                  ? ((regoff_t) (d - string1))
                                  : ((regoff_t) (d - string2 + size1)));
                   }
  -              
  +
                 /* Go through the first `min (num_regs, regs->num_regs)'
                    registers, since that is all we initialized.  */
              for (mcnt = 1; mcnt < MIN (num_regs, regs->num_regs); mcnt++)
  @@ -3714,7 +3716,7 @@
                        = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]);
                       }
                }
  -              
  +
                 /* If the regs structure we return has more elements than
                    were in the pattern, set the extra elements to -1.  If
                    we (re)allocated the registers, this is the case,
  @@ -3730,8 +3732,8 @@
                           nfailure_points_pushed - nfailure_points_popped);
             DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed);
   
  -          mcnt = d - pos - (MATCHING_IN_FIRST_STRING 
  -                         ? string1 
  +          mcnt = d - pos - (MATCHING_IN_FIRST_STRING
  +                         ? string1
                            : string2 - size1);
   
             DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt);
  @@ -3821,7 +3823,7 @@
            p += 1 + *p;
   
            if (!not) goto fail;
  -            
  +
            SET_REGS_MATCHED ();
               d++;
            break;
  @@ -3838,9 +3840,9 @@
   
             /* Find out if this group can match the empty string.  */
          p1 = p;               /* To send to group_match_null_string_p.  */
  -          
  +
             if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == 
MATCH_NULL_UNSET_VALUE)
  -            REG_MATCH_NULL_STRING_P (reg_info[*p]) 
  +            REG_MATCH_NULL_STRING_P (reg_info[*p])
                 = group_match_null_string_p (&p1, pend, reg_info);
   
             /* Save the position in the string where we were the last time
  @@ -3851,7 +3853,7 @@
             old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
                                ? REG_UNSET (regstart[*p]) ? d : regstart[*p]
                                : regstart[*p];
  -       DEBUG_PRINT2 ("  old_regstart: %d\n", 
  +       DEBUG_PRINT2 ("  old_regstart: %d\n",
                         POINTER_TO_OFFSET (old_regstart[*p]));
   
             regstart[*p] = d;
  @@ -3859,10 +3861,10 @@
   
             IS_ACTIVE (reg_info[*p]) = 1;
             MATCHED_SOMETHING (reg_info[*p]) = 0;
  -          
  +
             /* This is the new highest active register.  */
             highest_active_reg = *p;
  -          
  +
             /* If nothing was active before, this is the new lowest active
                register.  */
             if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
  @@ -3879,7 +3881,7 @@
              number, and the number of inner groups.  */
        case stop_memory:
          DEBUG_PRINT3 ("EXECUTING stop_memory %d (%d):\n", *p, p[1]);
  -             
  +
             /* We need to save the string position the last time we were at
                this close-group operator in case the group is operated
                upon by a repetition operator, e.g., with `((a*)*(b*)*)*'
  @@ -3888,7 +3890,7 @@
             old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
                              ? REG_UNSET (regend[*p]) ? d : regend[*p]
                           : regend[*p];
  -       DEBUG_PRINT2 ("      old_regend: %d\n", 
  +       DEBUG_PRINT2 ("      old_regend: %d\n",
                         POINTER_TO_OFFSET (old_regend[*p]));
   
             regend[*p] = d;
  @@ -3896,7 +3898,7 @@
   
             /* This register isn't active anymore.  */
             IS_ACTIVE (reg_info[*p]) = 0;
  -          
  +
             /* If this was the only register active, nothing is active
                anymore.  */
             if (lowest_active_reg == highest_active_reg)
  @@ -3912,7 +3914,7 @@
                 unsigned char r = *p - 1;
                 while (r > 0 && !IS_ACTIVE (reg_info[r]))
                   r--;
  -              
  +
                 /* If we end up at register zero, that means that we saved
                    the registers as the result of an `on_failure_jump', not
                    a `start_memory', and we jumped to past the innermost
  @@ -3928,7 +3930,7 @@
                 else
                   highest_active_reg = r;
               }
  -          
  +
             /* If just failed to match something this time around with a
                group that's operated on by a repetition operator, try to
                force exit from the ``loop'', and restore the register
  @@ -3936,10 +3938,10 @@
                last match.  */
             if ((!MATCHED_SOMETHING (reg_info[*p])
                  || just_past_start_mem == p - 1)
  -           && (p + 2) < pend)              
  +           && (p + 2) < pend)
               {
                 boolean is_a_jump_n = false;
  -              
  +
                 p1 = p + 2;
                 mcnt = 0;
                 switch ((re_opcode_t) *p1++)
  @@ -3954,12 +3956,12 @@
                    if (is_a_jump_n)
                      p1 += 2;
                       break;
  -                  
  +
                     default:
                       /* do nothing */ ;
                   }
              p1 += mcnt;
  -        
  +
                 /* If the next operation is a jump backwards in the pattern
                 to an on_failure_jump right before the start_memory
                    corresponding to this stop_memory, exit from the loop
  @@ -3973,17 +3975,17 @@
                        failed match, e.g., with `(a*)*b' against `ab' for
                        regstart[1], and, e.g., with `((a*)*(b*)*)*'
                        against `aba' for regend[3].
  -                     
  +
                        Also restore the registers for inner groups for,
                        e.g., `((a*)(b*))*' against `aba' (register 3 would
                        otherwise get trashed).  */
  -                     
  +
                     if (EVER_MATCHED_SOMETHING (reg_info[*p]))
                    {
  -                   unsigned r; 
  -        
  +                   unsigned r;
  +
                         EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
  -                      
  +
                      /* Restore this and inner groups' (if any) registers.  */
                         for (r = *p; r < *p + *(p + 1); r++)
                           {
  @@ -3992,7 +3994,7 @@
                             /* xx why this test?  */
                             if ((int) old_regend[r] >= (int) regstart[r])
                               regend[r] = old_regend[r];
  -                        }     
  +                        }
                       }
                  p1++;
                     EXTRACT_NUMBER_AND_INCR (mcnt, p1);
  @@ -4001,7 +4003,7 @@
                     goto fail;
                   }
               }
  -          
  +
             /* Move past the register number and the inner group count.  */
             p += 2;
             break;
  @@ -4018,16 +4020,16 @@
            /* Can't back reference a group which we've never matched.  */
               if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno]))
                 goto fail;
  -              
  +
               /* Where in input to try to start matching.  */
               d2 = regstart[regno];
  -            
  +
               /* Where to stop matching; if both the place to start and
                  the place to stop matching are in the same string, then
                  set to the place to stop, otherwise, for now have to use
                  the end of the first string.  */
   
  -            dend2 = ((FIRST_STRING_P (regstart[regno]) 
  +            dend2 = ((FIRST_STRING_P (regstart[regno])
                      == FIRST_STRING_P (regend[regno]))
                     ? regend[regno] : end_match_1);
            for (;;)
  @@ -4051,16 +4053,16 @@
   
                /* How many characters left in this segment to match.  */
                mcnt = dend - d;
  -                
  +
                /* Want how many consecutive characters we can match in
                      one shot, so, if necessary, adjust the count.  */
                   if (mcnt > dend2 - d2)
                  mcnt = dend2 - d2;
  -                  
  +
                /* Compare that many; failure if mismatch, else move
                      past them.  */
  -             if (translate 
  -                    ? bcmp_translate (d, d2, mcnt, translate) 
  +             if (translate
  +                    ? bcmp_translate (d, d2, mcnt, translate)
                       : bcmp (d, d2, mcnt))
                  goto fail;
                d += mcnt, d2 += mcnt;
  @@ -4074,7 +4076,7 @@
              `newline_anchor' is set, after newlines.  */
        case begline:
             DEBUG_PRINT1 ("EXECUTING begline.\n");
  -          
  +
             if (AT_STRINGS_BEG (d))
               {
                 if (!bufp->not_bol) break;
  @@ -4095,7 +4097,7 @@
               {
                 if (!bufp->not_eol) break;
               }
  -          
  +
             /* We have to ``prefetch'' the next character.  */
             else if ((d == end1 ? *string2 : *d) == '\n'
                      && bufp->newline_anchor)
  @@ -4129,7 +4131,7 @@
              then the . fails against the \n.  But the next thing we want
              to do is match the \n against the \n; if we restored the
              string value, we would be back at the foo.
  -           
  +
              Because this is used only in specific cases, we don't need to
              check all the things that `on_failure_jump' does, to make
              sure the right things get saved on the stack.  Hence we don't
  @@ -4139,7 +4141,7 @@
              case; that seems worse than this.  */
           case on_failure_keep_string_jump:
             DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump");
  -          
  +
             EXTRACT_NUMBER_AND_INCR (mcnt, p);
             DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt);
   
  @@ -4148,7 +4150,7 @@
   
   
        /* Uses of on_failure_jump:
  -        
  +
              Each alternative starts with an on_failure_jump that points
              to the beginning of the next alternative.  Each alternative
              except the last ends with a jump that in effect jumps past
  @@ -4214,7 +4216,7 @@
                  would have to backtrack because of (as in, e.g., `a*a')
                  then we can change to pop_failure_jump, because we'll
                  never have to backtrack.
  -               
  +
                  This is not true in the case of alternatives: in
                  `(a|ab)*' we do need to backtrack to the `ab' alternative
                  (e.g., if the string was `ab').  But instead of trying to
  @@ -4240,7 +4242,7 @@
   
            p1 = p + mcnt;
            /* p1[0] ... p1[2] are the `on_failure_jump' corresponding
  -            to the `maybe_finalize_jump' of this case.  Examine what 
  +            to the `maybe_finalize_jump' of this case.  Examine what
               follows.  */
   
               /* If we're at the end of the pattern, we can change.  */
  @@ -4266,12 +4268,12 @@
                       DEBUG_PRINT3 ("  %c != %c => pop_failure_jump.\n",
                                     c, p1[5]);
                     }
  -                  
  +
                else if ((re_opcode_t) p1[3] == charset
                         || (re_opcode_t) p1[3] == charset_not)
                  {
                    int not = (re_opcode_t) p1[3] == charset_not;
  -                    
  +
                    if (c < (unsigned char) (p1[4] * BYTEWIDTH)
                        && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
                      not = !not;
  @@ -4301,7 +4303,7 @@
                       DEBUG_PRINT3 ("  %c != %c => pop_failure_jump.\n",
                                     c, p1[5]);
                     }
  -                  
  +
                else if ((re_opcode_t) p1[3] == charset_not)
                  {
                    int idx;
  @@ -4372,7 +4374,7 @@
             }
             /* Note fall through.  */
   
  -          
  +
           /* Unconditionally jump (without popping any failure points).  */
           case jump:
        unconditional_jump:
  @@ -4382,7 +4384,7 @@
             DEBUG_PRINT2 ("(to 0x%x).\n", p);
          break;
   
  -     
  +
           /* We need this opcode so we can detect where alternatives end
              in `group_match_null_string_p' et al.  */
           case jump_past_alt:
  @@ -4417,7 +4419,7 @@
   
           /* Have to succeed matching what follows at least n times.
              After that, handle like `on_failure_jump'.  */
  -        case succeed_n: 
  +        case succeed_n:
             EXTRACT_NUMBER (mcnt, p + 2);
             DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt);
   
  @@ -4438,8 +4440,8 @@
                 goto on_failure;
               }
             break;
  -        
  -        case jump_n: 
  +
  +        case jump_n:
             EXTRACT_NUMBER (mcnt, p + 2);
             DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt);
   
  @@ -4448,13 +4450,13 @@
               {
                  mcnt--;
                  STORE_NUMBER (p + 2, mcnt);
  -            goto unconditional_jump;      
  +            goto unconditional_jump;
               }
             /* If don't have to jump any more, skip over the rest of command.  
*/
  -       else      
  -         p += 4;                  
  +       else
  +         p += 4;
             break;
  -        
  +
        case set_number_at:
          {
               DEBUG_PRINT1 ("EXECUTING set_number_at.\n");
  @@ -4498,13 +4500,13 @@
          if (PTR_CHAR_POS ((unsigned char *) d) >= point)
            goto fail;
          break;
  -  
  +
        case at_dot:
             DEBUG_PRINT1 ("EXECUTING at_dot.\n");
          if (PTR_CHAR_POS ((unsigned char *) d) != point)
            goto fail;
          break;
  -  
  +
        case after_dot:
             DEBUG_PRINT1 ("EXECUTING after_dot.\n");
             if (PTR_CHAR_POS ((unsigned char *) d) <= point)
  @@ -4561,7 +4563,7 @@
          SET_REGS_MATCHED ();
             d++;
          break;
  -       
  +
        case notwordchar:
             DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n");
          PREFETCH ();
  @@ -4571,7 +4573,7 @@
             d++;
          break;
   #endif /* not emacs */
  -          
  +
           default:
             abort ();
        }
  @@ -4596,7 +4598,7 @@
             if (p < pend)
               {
                 boolean is_a_jump_n = false;
  -              
  +
                 /* If failed to a backwards jump that's part of a repetition
                    loop, need to pop this failure point and use the next one.  
*/
                 switch ((re_opcode_t) *p)
  @@ -4608,7 +4610,7 @@
                   case jump:
                     p1 = p + 1;
                     EXTRACT_NUMBER_AND_INCR (mcnt, p1);
  -                  p1 += mcnt;        
  +                  p1 += mcnt;
   
                     if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n)
                         || (!is_a_jump_n
  @@ -4639,10 +4641,10 @@
   
   
   /* We are passed P pointing to a register number after a start_memory.
  -   
  +
      Return true if the pattern up to the corresponding stop_memory can
      match the empty string, and false otherwise.
  -   
  +
      If we find the matching stop_memory, sets P to point to one past its 
number.
      Otherwise, sets P to an undefined byte less than or equal to END.
   
  @@ -4656,20 +4658,20 @@
     int mcnt;
     /* Point to after the args to the start_memory.  */
     unsigned char *p1 = *p + 2;
  -  
  +
     while (p1 < end)
       {
         /* Skip over opcodes that can match nothing, and return true or
         false, as appropriate, when we get to one that can't, or to the
            matching stop_memory.  */
  -      
  +
         switch ((re_opcode_t) *p1)
           {
           /* Could be either a loop or a series of alternatives.  */
           case on_failure_jump:
             p1++;
             EXTRACT_NUMBER_AND_INCR (mcnt, p1);
  -          
  +
             /* If the next operation is not a jump backwards in the
             pattern.  */
   
  @@ -4683,7 +4685,7 @@
   
                    /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6
                    /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3
  -                 /exactn/1/c                                         
  +                 /exactn/1/c
   
                    So, we have to first go through the first (n-1)
                    alternatives and then deal with the last one separately.  */
  @@ -4699,19 +4701,19 @@
                        is, including the ending `jump_past_alt' and
                        its number.  */
   
  -                  if (!alt_match_null_string_p (p1, p1 + mcnt - 3, 
  +                  if (!alt_match_null_string_p (p1, p1 + mcnt - 3,
                                                      reg_info))
                       return false;
   
                     /* Move to right after this alternative, including the
                     jump_past_alt.  */
  -                  p1 += mcnt;        
  +                  p1 += mcnt;
   
                     /* Break if it's the beginning of an n-th alternative
                        that doesn't begin with an on_failure_jump.  */
                     if ((re_opcode_t) *p1 != on_failure_jump)
                       break;
  -             
  +
                  /* Still have to check that it's not an n-th
                     alternative that starts with an on_failure_jump.  */
                  p1++;
  @@ -4736,14 +4738,14 @@
               } /* if mcnt > 0 */
             break;
   
  -          
  +
           case stop_memory:
          assert (p1[1] == **p);
             *p = p1 + 2;
             return true;
   
  -        
  -        default: 
  +
  +        default:
             if (!common_op_match_null_string_p (&p1, end, reg_info))
               return false;
           }
  @@ -4756,7 +4758,7 @@
   /* Similar to group_match_null_string_p, but doesn't deal with alternatives:
      It expects P to be the first byte of a single alternative and END one
      byte past the last. The alternative can contain groups.  */
  -   
  +
   static boolean
   alt_match_null_string_p (p, end, reg_info)
       unsigned char *p, *end;
  @@ -4764,12 +4766,12 @@
   {
     int mcnt;
     unsigned char *p1 = p;
  -  
  +
     while (p1 < end)
       {
  -      /* Skip over opcodes that can match nothing, and break when we get 
  +      /* Skip over opcodes that can match nothing, and break when we get
            to one that can't.  */
  -      
  +
         switch ((re_opcode_t) *p1)
           {
        /* It's a loop.  */
  @@ -4778,8 +4780,8 @@
             EXTRACT_NUMBER_AND_INCR (mcnt, p1);
             p1 += mcnt;
             break;
  -          
  -     default: 
  +
  +     default:
             if (!common_op_match_null_string_p (&p1, end, reg_info))
               return false;
           }
  @@ -4790,8 +4792,8 @@
   
   
   /* Deals with the ops common to group_match_null_string_p and
  -   alt_match_null_string_p.  
  -   
  +   alt_match_null_string_p.
  +
      Sets P to one after the op and its arguments, if any.  */
   
   static boolean
  @@ -4826,7 +4828,7 @@
         reg_no = *p1;
         assert (reg_no > 0 && reg_no <= MAX_REGNUM);
         ret = group_match_null_string_p (&p1, end, reg_info);
  -      
  +
         /* Have to set this here in case we're checking a group which
            contains a group and a back reference to it.  */
   
  @@ -4836,7 +4838,7 @@
         if (!ret)
           return false;
         break;
  -          
  +
       /* If this is an optimized succeed_n for zero times, make the jump.  */
       case jump:
         EXTRACT_NUMBER_AND_INCR (mcnt, p1);
  @@ -4848,7 +4850,7 @@
   
       case succeed_n:
         /* Get to the number of times to succeed.  */
  -      p1 += 2;               
  +      p1 += 2;
         EXTRACT_NUMBER_AND_INCR (mcnt, p1);
   
         if (mcnt == 0)
  @@ -4861,7 +4863,7 @@
           return false;
         break;
   
  -    case duplicate: 
  +    case duplicate:
         if (!REG_MATCH_NULL_STRING_P (reg_info[*p1]))
           return false;
         break;
  @@ -4881,7 +4883,7 @@
   
   /* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN
      bytes; nonzero otherwise.  */
  -   
  +
   static int
   bcmp_translate (s1, s2, len, translate)
        unsigned char *s1, *s2;
  @@ -4902,10 +4904,10 @@
   /* re_compile_pattern is the GNU regular expression compiler: it
      compiles PATTERN (of length SIZE) and puts the result in BUFP.
      Returns 0 if the pattern was valid, otherwise an error string.
  -   
  +
      Assumes the `allocated' (and perhaps `buffer') and `translate' fields
      are set in BUFP on entry.
  -   
  +
      We call regex_compile to do the actual compilation.  */
   
   const char *
  @@ -4915,23 +4917,23 @@
        struct re_pattern_buffer *bufp;
   {
     reg_errcode_t ret;
  -  
  +
     /* GNU code is written to assume at least RE_NREGS registers will be set
        (and at least one extra will be -1).  */
     bufp->regs_allocated = REGS_UNALLOCATED;
  -  
  +
     /* And GNU code determines whether or not to get register information
        by passing null for the REGS argument to re_match, etc., not by
        setting no_sub.  */
     bufp->no_sub = 0;
  -  
  +
     /* Match anchors at newline.  */
     bufp->newline_anchor = 1;
  -  
  +
     ret = regex_compile (pattern, length, re_syntax_options, bufp);
   
     return re_error_msg[(int) ret];
  -}     
  +}
   
   /* Entry points compatible with 4.2 BSD regex library.  We don't define
      them unless specifically requested.  */
  @@ -4946,7 +4948,7 @@
       const char *s;
   {
     reg_errcode_t ret;
  -  
  +
     if (!s)
       {
         if (!re_comp_buf.buffer)
  @@ -4973,7 +4975,7 @@
     re_comp_buf.newline_anchor = 1;
   
     ret = regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf);
  -  
  +
     /* Yes, we're discarding `const' here.  */
     return (char *) re_error_msg[(int) ret];
   }
  @@ -5030,7 +5032,7 @@
   int
   regcomp (preg, pattern, cflags)
       regex_t *preg;
  -    const char *pattern; 
  +    const char *pattern;
       int cflags;
   {
     reg_errcode_t ret;
  @@ -5042,17 +5044,17 @@
     preg->buffer = 0;
     preg->allocated = 0;
     preg->used = 0;
  -  
  +
     /* Don't bother to use a fastmap when searching.  This simplifies the
        REG_NEWLINE case: if we used a fastmap, we'd have to put all the
        characters after newlines into the fastmap.  This way, we just try
        every character.  */
     preg->fastmap = 0;
  -  
  +
     if (cflags & REG_ICASE)
       {
         unsigned i;
  -      
  +
         preg->translate = (char *) malloc (CHAR_SET_SIZE);
         if (preg->translate == NULL)
           return (int) REG_ESPACE;
  @@ -5077,38 +5079,38 @@
   
     preg->no_sub = !!(cflags & REG_NOSUB);
   
  -  /* POSIX says a null character in the pattern terminates it, so we 
  +  /* POSIX says a null character in the pattern terminates it, so we
        can use strlen here in compiling the pattern.  */
     ret = regex_compile (pattern, strlen (pattern), syntax, preg);
  -  
  +
     /* POSIX doesn't distinguish between an unmatched open-group and an
        unmatched close-group: both are REG_EPAREN.  */
     if (ret == REG_ERPAREN) ret = REG_EPAREN;
  -  
  +
     return (int) ret;
   }
   
   
   /* regexec searches for a given pattern, specified by PREG, in the
      string STRING.
  -   
  +
      If NMATCH is zero or REG_NOSUB was set in the cflags argument to
      `regcomp', we ignore PMATCH.  Otherwise, we assume PMATCH has at
      least NMATCH elements, and we set them to the offsets of the
      corresponding matched substrings.
  -   
  +
      EFLAGS specifies `execution flags' which affect matching: if
      REG_NOTBOL is set, then ^ does not match at the beginning of the
      string; if REG_NOTEOL is set, then $ does not match at the end.
  -   
  +
      We return 0 if we find a match and REG_NOMATCH if not.  */
   
   int
   regexec (preg, string, nmatch, pmatch, eflags)
       const regex_t *preg;
  -    const char *string; 
  -    size_t nmatch; 
  -    regmatch_t pmatch[]; 
  +    const char *string;
  +    size_t nmatch;
  +    regmatch_t pmatch[];
       int eflags;
   {
     int ret;
  @@ -5118,15 +5120,15 @@
     boolean want_reg_info = !preg->no_sub && nmatch > 0;
   
     private_preg = *preg;
  -  
  +
     private_preg.not_bol = !!(eflags & REG_NOTBOL);
     private_preg.not_eol = !!(eflags & REG_NOTEOL);
  -  
  +
     /* The user has told us exactly how many registers to return
        information about, via `nmatch'.  We have to pass that on to the
        matching routines.  */
     private_preg.regs_allocated = REGS_FIXED;
  -  
  +
     if (want_reg_info)
       {
         regs.num_regs = nmatch;
  @@ -5140,7 +5142,7 @@
     ret = re_search (&private_preg, string, len,
                      /* start: */ 0, /* range: */ len,
                      want_reg_info ? &regs : (struct re_registers *) 0);
  -  
  +
     /* Copy the register information to the POSIX structure.  */
     if (want_reg_info)
       {
  @@ -5180,7 +5182,7 @@
   
     if (errcode < 0
         || errcode >= (sizeof (re_error_msg) / sizeof (re_error_msg[0])))
  -    /* Only error codes returned by the rest of the code should be passed 
  +    /* Only error codes returned by the rest of the code should be passed
          to this routine.  If we are given anything else, or if other regex
          code generates an invalid error code, then the program has a bug.
          Dump core so we can fix it.  */
  @@ -5194,7 +5196,7 @@
       msg = "Success";
   
     msg_size = strlen (msg) + 1; /* Includes the null.  */
  -  
  +
     if (errbuf_size != 0)
       {
         if (msg_size > errbuf_size)
  @@ -5219,7 +5221,7 @@
     if (preg->buffer != NULL)
       free (preg->buffer);
     preg->buffer = NULL;
  -  
  +
     preg->allocated = 0;
     preg->used = 0;
   
  
  
  --- orig/lib/regex.h
  +++ mod/lib/regex.h
  @@ -1,12 +1,13 @@
   /* Definitions for data structures and routines for the regular
      expression library, version 0.12.
   
  -   Copyright (C) 1985, 89, 90, 91, 92, 1993 Free Software Foundation, Inc.
  +   Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993
  +   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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -15,7 +16,9 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   #ifndef __REGEXP_LIBRARY_H__
   #define __REGEXP_LIBRARY_H__
  @@ -42,7 +45,7 @@
   #define RE_BACKSLASH_ESCAPE_IN_LISTS (1)
   
   /* If this bit is not set, then + and ? are operators, and \+ and \? are
  -     literals. 
  +     literals.
      If set, then \+ and \? are operators and + and ? are literals.  */
   #define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
   
  @@ -58,7 +61,7 @@
           ^  is an anchor if it is at the beginning of a regular
              expression or after an open-group or an alternation operator;
           $  is an anchor if it is at the end of a regular expression, or
  -           before a close-group or an alternation operator.  
  +           before a close-group or an alternation operator.
   
      This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
      POSIX draft 11.2 says that * etc. in leading positions is undefined.
  @@ -69,7 +72,7 @@
   /* If this bit is set, then special characters are always special
        regardless of where they are in the pattern.
      If this bit is not set, then special characters are special only in
  -     some contexts; otherwise they are ordinary.  Specifically, 
  +     some contexts; otherwise they are ordinary.  Specifically,
        * + ? and intervals are only special when not after the beginning,
        open-group, or alternation operator.  */
   #define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
  @@ -91,7 +94,7 @@
   #define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
   
   /* If this bit is set, either \{...\} or {...} defines an
  -     interval, depending on RE_NO_BK_BRACES. 
  +     interval, depending on RE_NO_BK_BRACES.
      If not set, \{, \}, {, and } are literals.  */
   #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
   
  @@ -116,7 +119,7 @@
      If not set, then \<digit> is a back-reference.  */
   #define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
   
  -/* If this bit is set, then | is an alternation operator, and \| is literal. 
  +/* If this bit is set, then | is an alternation operator, and \| is literal.
      If not set, then \| is an alternation operator, and | is literal.  */
   #define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
   
  @@ -138,7 +141,7 @@
   
   /* Define combinations of the above bits for the standard possibilities.
      (The [[[ comments delimit what gets put into the Texinfo file, so
  -   don't delete them!)  */ 
  +   don't delete them!)  */
   /* [[[begin syntaxes]]] */
   #define RE_SYNTAX_EMACS 0
   
  @@ -205,7 +208,7 @@
   #ifdef RE_DUP_MAX
   #undef RE_DUP_MAX
   #endif
  -#define RE_DUP_MAX ((1 << 15) - 1) 
  +#define RE_DUP_MAX ((1 << 15) - 1)
   
   
   /* POSIX `cflags' bits (i.e., information for `regcomp').  */
  @@ -217,7 +220,7 @@
   /* If this bit is set, then ignore case when matching.
      If not set, then case is significant.  */
   #define REG_ICASE (REG_EXTENDED << 1)
  - 
  +
   /* If this bit is set, then anchors do not match at newline
        characters in the string.
      If not set, then anchors do match at newlines.  */
  @@ -256,7 +259,7 @@
     REG_EESCAPE,               /* Trailing backslash.  */
     REG_ESUBREG,               /* Invalid back reference.  */
     REG_EBRACK,                /* Unmatched left bracket.  */
  -  REG_EPAREN,                /* Parenthesis imbalance.  */ 
  +  REG_EPAREN,                /* Parenthesis imbalance.  */
     REG_EBRACE,                /* Unmatched \{.  */
     REG_BADBR,         /* Invalid contents of \{\}.  */
     REG_ERANGE,                /* Invalid range end.  */
  @@ -287,7 +290,7 @@
     unsigned long allocated;
   
        /* Number of bytes actually used in `buffer'.  */
  -  unsigned long used;        
  +  unsigned long used;
   
           /* Syntax setting with which the pattern was compiled.  */
     reg_syntax_t syntax;
  @@ -331,7 +334,7 @@
     unsigned no_sub : 1;
   
           /* If set, a beginning-of-line anchor doesn't match at the
  -           beginning of the string.  */ 
  +           beginning of the string.  */
     unsigned not_bol : 1;
   
           /* Similarly for an end-of-line anchor.  */
  @@ -438,7 +441,7 @@
   
   
   /* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
  -extern int re_match_2 
  +extern int re_match_2
     _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
                int length1, const char *string2, int length2,
                int start, struct re_registers *regs, int stop));
  
  
  --- orig/lib/strtol.c
  +++ mod/lib/strtol.c
  @@ -1,9 +1,11 @@
  -/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
  +/* GNU m4 -- A simple macro processor
  +
  +   Copyright (C) 1991, 1992 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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -12,7 +14,9 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   #ifdef HAVE_CONFIG_H
   #include <config.h>
  
  
  --- orig/lib/xmalloc.c
  +++ mod/lib/xmalloc.c
  @@ -1,10 +1,11 @@
   /* xmalloc.c -- malloc with out of memory checking
  -   Copyright (C) 1990, 91, 92, 93, 94 Free Software Foundation, Inc.
  +
  +   Copyright (C) 1990, 1991, 1992, 1993, 1994 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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -13,7 +14,9 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   #ifdef HAVE_CONFIG_H
   #include <config.h>
  
  
  --- orig/lib/xstrdup.c
  +++ mod/lib/xstrdup.c
  @@ -1,10 +1,11 @@
   /* xstrdup.c -- copy a string with out of memory checking
  +
      Copyright (C) 1990 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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -13,7 +14,9 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   #ifdef HAVE_CONFIG_H
   #include <config.h>
  
  
  --- orig/src/Makefile.in
  +++ mod/src/Makefile.in
  @@ -1,19 +1,21 @@
  -# Makefile for GNU m4 sources.
  -# Copyright (C) 1994, 2005 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
  -# the Free Software Foundation; either version 2, or (at your option)
  -# any later version.
  -
  -# This program 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, write to the Free Software
  -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +## Makefile.in -- Makefile for GNU m4 sources.
  +##
  +## Copyright (C) 1994, 2005 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
  +## the Free Software Foundation; either version 2 of the License, or
  +## (at your option) any later version.
  +##
  +## This program 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; See the file COPYING.  if not, write to
  +## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  +## Boston, MA 02110-1301, USA.
   
   PACKAGE = @PACKAGE@
   VERSION = @VERSION@
  
  
  --- orig/src/builtin.c
  +++ mod/src/builtin.c
  @@ -1,21 +1,22 @@
   /* GNU m4 -- A simple macro processor
   
  -   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2000, 2004 Free
  -   Software Foundation, Inc.
  -  
  +   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2000, 2004
  +   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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  -  
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
      This program 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, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   /* Code for all builtin macros, initialisation of symbol table, and
  @@ -386,9 +387,9 @@
   
   /* The rest of this file is code for builtins and expansion of user
      defined macros.  All the functions for builtins have a prototype as:
  -   
  +
        void m4_MACRONAME (struct obstack *obs, int argc, char *argv[]);
  -   
  +
      The function are expected to leave their expansion on the obstack OBS,
      as an unfinished object.  ARGV is a table of ARGC pointers to the
      individual arguments to the macro.  Please note that in general
  @@ -1523,7 +1524,7 @@
          break;
   
        case '1': case '2': case '3': case '4': case '5': case '6':
  -     case '7': case '8': case '9': 
  +     case '7': case '8': case '9':
          ch -= '0';
          if (regs->end[ch] > 0)
            obstack_grow (obs, victim + regs->start[ch],
  
  
  --- orig/src/debug.c
  +++ mod/src/debug.c
  @@ -1,19 +1,21 @@
   /* GNU m4 -- A simple macro processor
  +
      Copyright (C) 1991, 1992, 1993, 1994, 2004 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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  -  
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
      This program 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, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   #include "m4.h"
  
  
  --- orig/src/eval.c
  +++ mod/src/eval.c
  @@ -1,19 +1,22 @@
   /* GNU m4 -- A simple macro processor
  -   Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
  -  
  +
  +   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994
  +   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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  -  
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
      This program 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, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   /* This file contains the functions to evaluate integer expressions for
  @@ -266,7 +269,7 @@
   
     if (err == NO_ERROR && *eval_text != '\0')
       err = EXCESS_INPUT;
  -    
  +
     switch (err)
       {
       case NO_ERROR:
  
  
  --- orig/src/format.c
  +++ mod/src/format.c
  @@ -1,19 +1,22 @@
   /* GNU m4 -- A simple macro processor
  -   Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
  -  
  +
  +   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994
  +   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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  -  
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
      This program 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, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   /* printf like formatting for m4.  */
  @@ -666,7 +669,7 @@
         c = *fmt;
         *fmt = '\0';
   
  -      switch(datatype) 
  +      switch(datatype)
        {
        case INT:
          if (width != -1 && prec != -1)
  
  
  --- orig/src/freeze.c
  +++ mod/src/freeze.c
  @@ -1,10 +1,12 @@
   /* GNU m4 -- A simple macro processor
  -   Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
  +
  +   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994
  +   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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -13,7 +15,8 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   /* This module handles frozen files.  */
  
  
  --- orig/src/input.c
  +++ mod/src/input.c
  @@ -1,10 +1,12 @@
   /* GNU m4 -- A simple macro processor
  -   Copyright (C) 1989, 90, 91, 92, 93, 94, 04, 05 Free Software Foundation, 
Inc.
  +
  +   Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005
  +   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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -13,7 +15,8 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   /* Handling of different input sources, and lexical analysis.  */
  
  
  --- orig/src/m4.c
  +++ mod/src/m4.c
  @@ -5,8 +5,8 @@
   
      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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -15,7 +15,8 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   #include "m4.h"
  
  
  --- orig/src/m4.h
  +++ mod/src/m4.h
  @@ -5,8 +5,8 @@
   
      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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -15,7 +15,8 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   /* We use <config.h> instead of "config.h" so that a compilation
  
  
  --- orig/src/macro.c
  +++ mod/src/macro.c
  @@ -1,19 +1,21 @@
   /* GNU m4 -- A simple macro processor
  +
      Copyright (C) 1989, 90, 91, 92, 93, 94 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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  -  
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
      This program 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, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   /* This file contains the functions, that performs the basic argument
  
  
  --- orig/src/output.c
  +++ mod/src/output.c
  @@ -2,20 +2,21 @@
   
      Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005 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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  -  
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
      This program 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, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   #include "m4.h"
  @@ -32,14 +33,14 @@
   
   /* Size of buffer size to use while copying files.  */
   #define COPY_BUFFER_SIZE (32 * 512)
  - 
  +
   #ifdef HAVE_TMPFILE
   extern FILE *tmpfile ();
   #endif
   
   /* Output functions.  Most of the complexity is for handling cpp like
      sync lines.
  -  
  +
      This code is fairly entangled with the code in input.c, and maybe it
      belongs there?  */
   
  @@ -559,7 +560,7 @@
     int divnum;
     struct diversion *diversion;
     struct stat file_stat;
  -  
  +
     saved_number = current_diversion;
     last_inserted = 0;
     make_diversion (0);
  @@ -592,4 +593,3 @@
     if (saved_number != last_inserted)
       fprintf (file, "D%d,0\n\n", saved_number);
   }
  -
  
  
  --- orig/src/path.c
  +++ mod/src/path.c
  @@ -2,20 +2,22 @@
   
      Copyright (C) 1989, 1990, 1991, 1992, 1993, 2004 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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  -  
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
      This program 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, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
  +*/
   
   /* Handling of path search of included files via the builtins "include"
      and "sinclude".  */
  
  
  --- orig/src/stackovf.c
  +++ mod/src/stackovf.c
  @@ -4,8 +4,8 @@
   
      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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
  @@ -14,57 +14,58 @@
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
    */
   
   /* Compiled only when USE_STACKOVF is defined, which itself requires
      getrlimit with the RLIMIT_STACK option, and support for alternate
      signal stacks using either SVR4 or BSD interfaces.
  -   
  +
      This should compile on ANY system which supports either sigaltstack()
      or sigstack(), with or without <siginfo.h> or another way to determine
      the fault address.
  -   
  +
      There is no completely portable way to determine if a SIGSEGV signal
      indicates a stack overflow.  The fault address can be used to infer
      this.  However, the fault address is passed to the signal handler in
      different ways on various systems.  One of three methods are used to
      determine the fault address:
  -   
  +
         1. The siginfo parameter (with siginfo.h, i.e., SVR4).
  -   
  +
         2. 4th "addr" parameter (assumed if struct sigcontext is defined,
         i.e., SunOS 4.x/BSD).
  -   
  +
         3. None (if no method is available).  This case just prints a
         message before aborting with a core dump.  That way the user at
         least knows that it *might* be a recursion problem.
  -   
  +
      Jim Avera <address@hidden> writes, on Tue, 5 Oct 93 19:27 PDT:
  -   
  +
         "I got interested finding out how a program could catch and
         diagnose its own stack overflow, and ended up modifying m4 to do
         this.  Now it prints a nice error message and exits.
  -   
  +
         How it works: SIGSEGV is caught using a separate signal stack.  The
         signal handler declares a stack overflow if the fault address is
         near the end of the stack region, or if the maximum VM address
         space limit has been reached.  Otherwise, it returns to re-execute
         the instruction with SIG_DFL set, so that any real bugs cause a
         core dump as usual."
  -   
  +
      Jim Avera <address@hidden> writes, on Fri, 24 Jun 94 12:14 PDT:
  -   
  +
         "The stack-overflow detection code would still be needed to avoid a
         SIGSEGV abort if swap space was exhausted at the moment the stack
         tried to grow.  This is probably unlikely to occur with the
         explicit nesting limit option of GNU m4."
  -   
  +
      Jim Avera <address@hidden> writes, on Wed, 6 Jul 1994 14:41 PDT:
  -   
  +
         "When a stack overflow occurs, a SIGSEGV signal is sent, which by
         default aborts the process with a core dump.
  -   
  +
         The code in stackovf.c catches SIGSEGV using a separate signal
         stack.  The signal handler determines whether or not the SIGSEGV
         arose from a stack overflow.  If it is a stack overflow, an
  @@ -97,7 +98,7 @@
      account for the maximum size of local variables (the amount the
      trapping reference might exceed the stack limit).  Also, some machines
      may report an arbitrary address within the same page frame.
  -   If the value is too large, we might call some other SIGSEGV a stack 
  +   If the value is too large, we might call some other SIGSEGV a stack
      overflow, masking a bug.  */
   
   #ifndef STACKOVF_DETECT
  @@ -116,17 +117,17 @@
      signal handler.  The signal handler obtains information about the trap
      in an OS-dependent manner, and passes a parameter with the meanings as
      explained below.
  -   
  +
      If the OS explicitly identifies a stack overflow trap, either pass
      PARAM_STACKOVF if a stack overflow, or pass PARAM_NOSTACKOVF if not
      (id est, it is a random bounds violation).  Otherwise, if the fault
      address is available, pass the fault address.  Otherwise (if no
      information is available), pass NULL.
  -   
  +
      Not given an explicit indication, we compare the fault address with
      the estimated stack limit, and test to see if overall VM space is
      exhausted.
  -   
  +
      If a stack overflow is identified, then the external *stackovf_handler
      function is called, which should print an error message and exit.  If
      it is NOT a stack overflow, then we silently abort with a core dump by
  @@ -358,12 +359,12 @@
     sigaction (SIGSEGV, NULL, &act);
     act.sa_handler = (RETSIGTYPE (*) _((int))) sigsegv_handler;
     sigemptyset (&act.sa_mask);
  -  act.sa_flags = (SA_ONSTACK 
  +  act.sa_flags = (SA_ONSTACK
   #ifdef SA_RESETHAND
                  | SA_RESETHAND
   #endif
   #ifdef SA_SIGINFO
  -               | SA_SIGINFO 
  +               | SA_SIGINFO
   #endif
                  );
     if (sigaction (SIGSEGV, &act, NULL) < 0)
  
  
  --- orig/src/symtab.c
  +++ mod/src/symtab.c
  @@ -5,17 +5,18 @@
   
      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
  -   the Free Software Foundation; either version 2, or (at your option)
  -   any later version.
  -  
  +   the Free Software Foundation; either version 2 of the License, or
  +   (at your option) any later version.
  +
      This program 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, write to the Free Software
  -   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  +   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  +   02110-1301  USA
   */
   
   /* This file handles all the low level work around the symbol table.  The
  
  
  
- -- 
Gary V. Vaughan      ())_.  address@hidden,gnu.org}
Research Scientist   ( '/   http://tkd.kicks-ass.net
GNU Hacker           / )=   http://www.gnu.org/software/libtool
Technical Author   `(_~)_   http://sources.redhat.com/autobook
_________________________________________________________
This patch notification generated by tlaapply version 0.9
http://tkd.kicks-ass.net/arch/address@hidden/cvs-utils--tla--1.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)

iD8DBQFCdMOsFRMICSmD1gYRAv5jAJ0TYMgsRaqFbhW8bVg7ubOe5noJ6wCeOXXJ
XBpYZbgwrjMHmYXHJqf0cCA=
=YXPj
-----END PGP SIGNATURE-----




reply via email to

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