Home | History | Annotate | only in /src/usr.bin/m4
History log of /src/usr.bin/m4
RevisionDateAuthorComments
 1.19 29-Jan-2015  christos use strtoi instead of strtonum, since this is a tool.
 1.18 29-Jan-2015  christos latent strtonum removal.
 1.17 14-Aug-2011  christos kill gcc-4.5 warning
 1.16 22-Jun-2011  mrg apply some -Wno-error/-Wno-enum-compare/-Wno-array-bounds.

this should be looked at more closely.
 1.15 26-Oct-2009  christos resolve conflicts.
 1.14 14-Apr-2009  lukem Enable WARNS=4 by default for usr.bin, except for:
awk bdes checknr compile_et error gss hxtool kgetcred kinit
klist ldd less lex locale login m4 man menuc mk_cmds
mklocale msgc openssl rpcgen rpcinfo sdiff spell ssh
string2key telnet tn3270 verify_krb5_conf xlint
 1.13 05-Oct-2007  lukem branches: 1.13.14;
Convert to using raise_default_signal(3).
 1.12 18-May-2003  lukem branches: 1.12.24;
Now that <bsd.prog.mk> DTRT if HOSTPROG is defined (i.e, it is a no-op),
there's no need to special-case .include-ing it.
 1.11 14-Nov-2001  tv Make this buildable as a reachover host tool.
 1.10 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.9 11-Oct-2000  is More format string cleanup by sommerfeld.
 1.8 01-Sep-1998  enami branches: 1.8.2; 1.8.10;
add -Dunix to CPPFLAGS to suppress cpp warning.
 1.7 09-Jan-1998  perry RCS Id Police.
 1.6 24-Oct-1997  lukem use CPPFLAGS instead of CFLAGS
 1.5 22-Dec-1994  cgd branches: 1.5.4;
specify man pages the new way.
 1.4 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.3 31-Jul-1993  mycroft Add RCS indentifiers.
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.5.4.1 08-Nov-1997  lukem sync with trunk (approved by thorpej)
 1.8.10.1 18-Oct-2000  tv Pullup usr.bin string format fixes [is].
See "cvs log" for explicit revision numbers per file, from sommerfeld.
 1.8.2.1 19-Oct-2000  he Pull up revision 1.9 (requested by he):
Format string cleanup.
 1.12.24.1 06-Nov-2007  matt sync with HEAD
 1.13.14.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.1 19-Jun-1994  glass branches: 1.1.1;
upgrade to 4.4-lite m4. no local changes of note
 1.1.1.1 28-Sep-1995  tls imported from 44lite2
 1.30 09-Feb-2024  andvar fix spelling mistakes, mainly in comments and log messages.
 1.29 24-May-2022  andvar fix various typos in comment, documentation and log messages.
 1.28 27-Jun-2020  uwe eval: Make radix optional even if minimum result width is specified.
This is what GNU m4 does too.
 1.27 30-Jul-2018  kre Avoid an infinite loop caused by a line accidentally dropped
in 1.22 (almost 30 months ago!)

[ Discovered by rhialto@ ]
 1.26 23-Oct-2017  christos branches: 1.26.2; 1.26.4;
remove the braces I accidentally added.
 1.25 22-Oct-2017  christos PR/52638: matthew green: missing argument check causes m4 to core in ifelse()
 1.24 16-Jan-2016  christos branches: 1.24.8;
More gnu compatibility:
- handle macros > $9
- handle character remapping the the gnu way.
Add a shortcut for the "fake freeze" files to not expand include macros
during thawing.
 1.23 29-Jan-2015  christos use strtoi instead of strtonum, since this is a tool.
 1.22 21-Aug-2011  dholland branches: 1.22.20;
Requires stdint.h.
 1.21 05-Mar-2011  christos add mimic_gnu for eval print.
 1.20 26-Oct-2009  christos resolve conflicts.
 1.19 06-Jul-2004  mycroft Fix a core dump.
 1.18 20-Jun-2004  jmc Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
 1.17 07-Aug-2003  agc branches: 1.17.2;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.16 31-Jan-2002  tv Protect __RCSID and __COPYRIGHT from being invoked if not defined.
 1.15 21-Jan-2002  tv Make compilable from src/tools/m4 on non-NetBSD hosts.
 1.14 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.13 17-Oct-2000  jdolecek Fix unconsistent spacing/tabs. Adresses bin/11158 by Nathan Ahlstrom.
 1.12 11-Oct-2000  is More format string cleanup by sommerfeld.
 1.11 20-Apr-1999  mrg branches: 1.11.8;
use mkstemp.
 1.10 19-Oct-1997  lukem branches: 1.10.4;
WARNSify, fix .Nm usage, getopt returns -1 not EOF, deprecate register
 1.9 08-Feb-1997  cgd Simplify some push-back code (e.g. for left and right quotes) so that
it uses pbstr() instead of doing the characters individually (in
reverse order) with putback().
Fix dodiv() so that divert(<out-of-range stream>) doesn't cause "divnum" to
return 0, but rather the stream number specified to divert(). Macros
like PUSHDIVERT/POPDIVERT rely on this. The new behaviour is compatible
with vendor m4 implementations.
 1.8 09-Jan-1997  tls RCS ID police
 1.7 10-Nov-1996  pk Use COMMA in stead of ',' when pushing items back on the stack, for
consistency with the macro parsing routine. Suggested by Brian Grayson.
 1.6 06-Nov-1996  pk Implement `$@' macro, as promised by the manual page (PR#2914).
 1.5 13-Jan-1996  pk Handle multichar comment and quote delimiters (up to 5 characters, per the
manual page). Takes care of PR#485.
 1.4 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.3 29-Aug-1994  mycroft branches: 1.3.2;
Remove temporary files on m4exit, from Thomas Eberhardt.
 1.2 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.3.2.2 29-Aug-1994  mycroft Remove temporary files on m4exit, from Thomas Eberhardt.
 1.3.2.1 29-Aug-1994  mycroft file eval.c was added on branch netbsd-1-0 on 1994-08-29 03:24:45 +0000
 1.10.4.1 19-Oct-2000  he Pull up revision 1.12 (requested by he):
Format string cleanup.
 1.11.8.1 18-Oct-2000  tv Pullup usr.bin string format fixes [is].
See "cvs log" for explicit revision numbers per file, from sommerfeld.
 1.17.2.2 10-Jul-2004  tron Pull up revision 1.19 (requested by mycroft in ticket #615):
Fix a core dump.
 1.17.2.1 22-Jun-2004  tron Pull up revision 1.18 (requested by jmc in ticket #527):
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
 1.22.20.1 21-Mar-2018  martin Pull up following revision(s) (requested by mrg in ticket #1587):
usr.bin/m4/eval.c: revision 1.25
usr.bin/m4/eval.c: revision 1.26
PR/52638: matthew green: missing argument check causes m4 to core in ifelse()

remove the braces I accidentally added.
 1.24.8.2 07-Aug-2018  martin Pull up following revision(s) (requested by kre in ticket #956):

usr.bin/m4/eval.c: revision 1.27

Avoid an infinite loop caused by a line accidentally dropped
in 1.22 (almost 30 months ago!)
[ Discovered by rhialto@ ]
 1.24.8.1 11-Apr-2018  martin Pull up following revision(s) (requested by mrg in ticket #732):

usr.bin/m4/eval.c: revision 1.25
usr.bin/m4/eval.c: revision 1.26

PR/52638: matthew green: missing argument check causes m4 to core in ifelse()

remove the braces I accidentally added.
 1.26.4.1 10-Jun-2019  christos Sync with HEAD
 1.26.2.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.21 26-Mar-2019  kre Use correct printf format for (struct input_file *)->lineno
SHould unbreak 32 bit host builds.
 1.20 26-Mar-2019  christos print the source line and file where the error happened.
 1.19 26-Oct-2009  christos branches: 1.19.46;
resolve conflicts.
 1.18 11-May-2006  mrg exp() -> m4_exp().
 1.17 06-Oct-2005  drochner merge in FreeBSD's rev.1.14:
Fix m4 to properly handle bitwise operators &, ^, and |. Fix operator
precedence. Add short-circuit evaluation.
 1.16 20-Jun-2004  jmc Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
 1.15 07-Aug-2003  agc branches: 1.15.2;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.14 31-Jan-2002  tv Protect __RCSID and __COPYRIGHT from being invoked if not defined.
 1.13 21-Jan-2002  tv Make compilable from src/tools/m4 on non-NetBSD hosts.
 1.12 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.11 05-Mar-2001  wiz Sprinkle some const, and rename a shadow-variable.
 1.10 17-Oct-2000  jdolecek Fix unconsistent spacing/tabs. Adresses bin/11158 by Nathan Ahlstrom.
 1.9 14-Apr-1999  matthias make eval() recognize hexadecimal constant as specified in the man page.
 1.8 19-Oct-1997  lukem branches: 1.8.4;
WARNSify, fix .Nm usage, getopt returns -1 not EOF, deprecate register
 1.7 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.6 14-Apr-1995  mycroft There were several places where m4 did not conform to the specification
in `The M4 Macro Processor', by Kernighan and Ritchie.

* `|' and `||' are both logical or. There is no binary or.
* `&' and `&&' are both logical and. There is no binary and.
* `!' has a much higher precedence.
* The equal and relation operators have the same precedence.
* `**' is implemented, and `^' is for exponentation (not xor).
* Unary `+' in implemented.

I've coded exponentiation to return what appears to be the same results
that other versions of m4 return.
 1.5 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.4 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.3 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.8.4.1 14-Apr-1999  matthias Pull up revision 1.9 from trunk (recognize hexadecimal constants in eval()).
 1.15.2.1 22-Jun-2004  tron Pull up revision 1.16 (requested by jmc in ticket #527):
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
 1.19.46.1 10-Jun-2019  christos Sync with HEAD
 1.20 25-Jun-2020  uwe Fix --error-output to be more like GNU m4.

GNU m4 --error-output is the same as -o despite the name. It does NOT
affect warnings, error messages, and 'errprint' output so drop the
misguided bit of code that tried to freopen stderr without closing it
on failure. Drop -e (which was our local invention) and make merge
--error-output with -o so that both set traceout. Make trace_file()
preserve the old traceout on error and return error status so that the
caller can emit appropriate warning.

Do not yet support disabling tracing with an empty name, the rest of
the code is not ready, we don't do -o positionally and we don't have
`debugfile'.
 1.19 16-Jan-2016  christos branches: 1.19.18;
add nesting_limit
 1.18 16-Jan-2016  christos - declarations for real/fake freeze
- add new flags
 1.17 29-Jan-2015  christos delete extern
 1.16 15-Mar-2012  joerg Add __printflike attribution to use vprintf and friends with an argument
as format string.
 1.15 06-Sep-2011  joerg branches: 1.15.2;
Move usage and onintr to make them static. Add __dead as needed.
 1.14 26-Oct-2009  christos fix prototype
 1.13 26-Oct-2009  christos resolve conflicts.
 1.12 27-Oct-2003  lukem Overhaul how `build.sh tools' are used:

* Rename "config.h" to "nbtool_config.h" and
HAVE_CONFIG_H to HAVE_NBTOOL_CONFIG_H.
This makes in more obvious in the source when we're using
tools/compat/config.h versus "standard autoconf" config.h

* Consistently move the inclusion of nbtool_config.h to before
<sys/cdefs.h> so that the former can provide __RCSID() (et al),
and there's no need to protect those macros any more.

These changes should make it easier to "tool-ify" a program by adding:
#if HAVE_NBTOOL_CONFIG_H
#include "nbtool_config.h"
#endif
to the top of the source files (for the general case).
 1.11 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.10 31-Jan-2002  tv Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
round has been tested on Solaris/x86 and Linux hosts.

* Add host tools cap_mkdb, ctags, m4, uudecode.
* Protect __RCSID() and __COPYRIGHT() better.
* Reduce the number of places that need to include "config.h", to keep
sources closer to their "vanilla" versions.
* Add more compat #defines and autoconf-checked functions.
 1.9 21-Jan-2002  tv Make compilable from src/tools/m4 on non-NetBSD hosts.
 1.8 14-Nov-2001  tv Get first getopt string right; provide better usage message.
 1.7 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.6 29-Dec-1997  cgd fix an inconsistency between signed- and unsigned-char machines:
make sure that pushed-back 0xff character isn't accidentally
interpreted as an EOF because of sign extension when chars were being
assigned to pbents. (signed-char machines lost.) To do this, make
putback() and pbstr() operate only on unsigned chars, and add a
putbackeof() function to do the obvious thing when necessary.
 1.5 02-Dec-1997  cgd add a typedef which describes elements in the push-back buffer. Make
that typedef 'short'. 'char' (which was previously used) because char
may be unsigned and ((char)EOF) != EOF if that is the case. That was
causing the (char)EOF (0xff) pushed back in main to be interepreted as
a character, and, in some cases, to be written to the output. 'short'
was used rather than 'signed char' because if the latter is used,
0xff characters in the input would confuse m4. (No point in introducing
(more?) 8-bit lossage.)
 1.4 19-Oct-1997  lukem branches: 1.4.2;
WARNSify, fix .Nm usage, getopt returns -1 not EOF, deprecate register
 1.3 13-Jan-1996  pk Handle multichar comment and quote delimiters (up to 5 characters, per the
manual page). Takes care of PR#485.
 1.2 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.1 19-Jun-1994  glass branches: 1.1.1;
upgrade to 4.4-lite m4. no local changes of note
 1.1.1.2 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.1 28-Sep-1995  tls imported from 44lite2
 1.4.2.1 29-Jan-1998  mellon Pull up 1.5 and 1.6
 1.15.2.1 17-Apr-2012  yamt sync with head
 1.19.18.1 07-Jul-2020  martin Pull up following revision(s) (requested by uwe in ticket #981):

usr.bin/m4/m4.1: revision 1.28
usr.bin/m4/m4.1: revision 1.29
usr.bin/m4/extern.h: revision 1.20
usr.bin/m4/main.c: revision 1.49
usr.bin/m4/m4.1: revision 1.30
usr.bin/m4/trace.c: revision 1.9
usr.bin/m4/main.c: revision 1.50

Try not to lose error output with --error-output.

Try to avoid the trap we set up ourselves while avoiding freopen(3).
When exit flushes and closes open streams it may close sfp first and
when it comes about to flush and close stderr, the descriptor is
already gone and we lose any buffered error output. This actually
happens on some hosts, breaking --trace output used by autoconf.

Fix --error-output to be more like GNU m4.

GNU m4 --error-output is the same as -o despite the name. It does NOT
affect warnings, error messages, and 'errprint' output so drop the
misguided bit of code that tried to freopen stderr without closing it
on failure. Drop -e (which was our local invention) and make merge
--error-output with -o so that both set traceout. Make trace_file()
preserve the old traceout on error and return error status so that the
caller can emit appropriate warning.

Do not yet support disabling tracing with an empty name, the rest of
the code is not ready, we don't do -o positionally and we don't have
`debugfile'.

Fix --error-output to be more like GNU m4. It's a long version of -o.

Bump date for previous.

Use a date that is actually a real date.
 1.6 19-Jun-1994  mycroft Clean up deleted files.
 1.5 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.4 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.3 18-Jun-1993  glass fixed compilation, and mktemp usage problem
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.13 24-May-2023  christos use strchr
 1.12 24-May-2023  lukem m4 -g: { and } aren't supported in patsubst() or regexp()

When running in -g (GNU m4) emulation, patsubst() and regexp()
use the GNU m4 emacs-like regexes as implemented by gnulib,
which don't support {..} intervals.
When converting a GNU m4 regex to a POSIX ERE, escape raw { and }.

Autoconf relies on the GNU m4 regex behaviour.

See:
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Redefined-M4-Macros.html
- https://www.gnu.org/software/gnulib/manual/html_node/emacs-regular-expression-syntax.html

This fixes the tools/compat/configure regen.

PR toolchain/57431
 1.11 07-Dec-2021  rillig branches: 1.11.2;
m4: fix typo in error message

To trigger the error message, compile m4 with -DREAL_FREEZE, then run
'./m4 -R /dev/null'.
 1.10 16-Jan-2016  christos - don't eat the rest of the string when no match in patsubst
- include the pattern in the error printing of regex
- handle 3 argument and empty patterns the gnu way
- add support for freezing and thawing state (not working yet)
 1.9 20-Mar-2012  matt Use C89 function definitions
 1.8 06-Sep-2011  joerg branches: 1.8.2;
Move usage and onintr to make them static. Add __dead as needed.
 1.7 26-Oct-2009  christos fix the tools build
 1.6 26-Oct-2009  christos resolve conflicts.
 1.5 30-Oct-2004  dsl Add (unsigned char) cast to ctype functions
 1.4 20-Jun-2004  jmc Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
 1.3 23-Apr-2004  simonb s/the the/the/ (only in sources that aren't regularly imported from
elsewhere).
 1.2 21-Jan-2002  tv branches: 1.2.4;
Make compilable from src/tools/m4 on non-NetBSD hosts.
 1.1 14-Nov-2001  tv branches: 1.1.1;
Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.2.4.1 22-Jun-2004  tron Pull up revision 1.4 (requested by jmc in ticket #527):
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
 1.8.2.1 17-Apr-2012  yamt sync with head
 1.11.2.2 28-May-2023  martin Pull up following revision(s) (requested by lukem in ticket #181):

usr.bin/m4/gnum4.c: revision 1.13

use strchr
 1.11.2.1 28-May-2023  martin Pull up following revision(s) (requested by lukem in ticket #180):

usr.bin/m4/gnum4.c: revision 1.12

m4 -g: { and } aren't supported in patsubst() or regexp()

When running in -g (GNU m4) emulation, patsubst() and regexp()
use the GNU m4 emacs-like regexes as implemented by gnulib,
which don't support {..} intervals.

When converting a GNU m4 regex to a POSIX ERE, escape raw { and }.
Autoconf relies on the GNU m4 regex behaviour.

See:
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Redefined-M4-Macros.html
- https://www.gnu.org/software/gnulib/manual/html_node/emacs-regular-expression-syntax.html

This fixes the tools/compat/configure regen.

PR toolchain/57431
 1.4 19-Jun-1994  mycroft Clean up deleted files.
 1.3 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.2 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.1 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.13 16-Jan-2016  christos Add disabled support for saving and restoring the symbol table.
 1.12 20-Mar-2012  matt Use C89 function definitions
 1.11 26-Oct-2009  christos branches: 1.11.6;
resolve conflicts.
 1.10 20-Jun-2004  jmc Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
 1.9 07-Aug-2003  agc branches: 1.9.2;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.8 31-Jan-2002  tv Protect __RCSID and __COPYRIGHT from being invoked if not defined.
 1.7 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.6 19-Oct-1997  lukem WARNSify, fix .Nm usage, getopt returns -1 not EOF, deprecate register
 1.5 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.4 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.3 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.9.2.1 22-Jun-2004  tron Pull up revision 1.10 (requested by jmc in ticket #527):
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
 1.11.6.1 17-Apr-2012  yamt sync with head
 1.31 27-Jun-2020  uwe Improve markup for better PostScript output.
Make sure quotes are right and copy-pastable even in UTF-8 output.
 1.30 25-Jun-2020  uwe Use a date that is actually a real date.
 1.29 25-Jun-2020  uwe Bump date for previous.
 1.28 25-Jun-2020  uwe Fix --error-output to be more like GNU m4. It's a long version of -o.
 1.27 17-Jan-2016  wiz branches: 1.27.18;
Fix some macros. Sort stuff some more.
 1.26 16-Jan-2016  christos Update documentation.
 1.25 07-Jan-2014  wiz Better document eval, mentioning optional second and third arguments.
Requested by martin.
Bump date.
 1.24 20-Jul-2013  wiz Use Mt for email addresses.
 1.23 08-Apr-2012  wiz branches: 1.23.2; 1.23.4;
Remove unnecessary Bk/Ek pairs from SYNOPSIS.
No effective change except where I used the opportunity to sort options
and/or option descriptions.
 1.22 14-May-2010  joerg branches: 1.22.6;
Improve/fix/deuglify markup.
 1.21 30-Oct-2009  joerg Fix markup.
 1.20 26-Oct-2009  christos resolve conflicts.
 1.19 10-Mar-2009  joerg Don't break scope for .Oo/.Oc to workaround ancient argument limit.
 1.18 27-Jun-2003  wiz branches: 1.18.42;
End sentence with a dot. From jmc@openbsd.
 1.17 26-Jun-2003  wiz Add Ns where needed.
 1.16 26-Jun-2003  wiz Replace Ql by Sq and Dq where appropriate.
 1.15 25-Feb-2003  wiz .Nm does not need a dummy argument ("") before punctuation or
for correct formatting of the SYNOPSIS any longer.
 1.14 08-Feb-2002  ross Generate <>& symbolically. I'm avoiding .../dist/... directories for now.
 1.13 01-Dec-2001  wiz Whitespace cleanup.
 1.12 14-Nov-2001  tv Document -o.
 1.11 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.10 05-Jun-2001  wiz Uppercase Dt argument, correct AUTHORS section name.
 1.9 23-Jun-1999  tv Implement the very useful `-P' option from GNU's m4 (causes all builtin
macros to be prefixed with the string `m4_').
 1.8 23-Jan-1998  lukem fix richard o'keefe's email address (will have to change for his new job, but the one i've used is at least valid...)
 1.7 19-Oct-1997  lukem WARNSify, fix .Nm usage, getopt returns -1 not EOF, deprecate register
 1.6 12-Feb-1997  mikel fix typo reported by Saitoh Masanobu in PR misc/3214.
also fixed .Nm usage, other typos
 1.5 09-Jan-1997  tls RCS ID police
 1.4 19-Oct-1995  jtc Fix spelling error (Michael K. Sanders; PR #1617)
 1.3 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 18-Jun-1993  glass branches: 1.1.1;
baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.18.42.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.22.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.22.6.1 17-Apr-2012  yamt sync with head
 1.23.4.1 23-Jul-2013  riastradh sync with HEAD
 1.23.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.27.18.1 07-Jul-2020  martin Pull up following revision(s) (requested by uwe in ticket #981):

usr.bin/m4/m4.1: revision 1.28
usr.bin/m4/m4.1: revision 1.29
usr.bin/m4/extern.h: revision 1.20
usr.bin/m4/main.c: revision 1.49
usr.bin/m4/m4.1: revision 1.30
usr.bin/m4/trace.c: revision 1.9
usr.bin/m4/main.c: revision 1.50

Try not to lose error output with --error-output.

Try to avoid the trap we set up ourselves while avoiding freopen(3).
When exit flushes and closes open streams it may close sfp first and
when it comes about to flush and close stderr, the descriptor is
already gone and we lose any buffered error output. This actually
happens on some hosts, breaking --trace output used by autoconf.

Fix --error-output to be more like GNU m4.

GNU m4 --error-output is the same as -o despite the name. It does NOT
affect warnings, error messages, and 'errprint' output so drop the
misguided bit of code that tried to freopen stderr without closing it
on failure. Drop -e (which was our local invention) and make merge
--error-output with -o so that both set traceout. Make trace_file()
preserve the old traceout on error and return error status so that the
caller can emit appropriate warning.

Do not yet support disabling tracing with an empty name, the rest of
the code is not ready, we don't do -o positionally and we don't have
`debugfile'.

Fix --error-output to be more like GNU m4. It's a long version of -o.

Bump date for previous.

Use a date that is actually a real date.
 1.50 25-Jun-2020  uwe Fix --error-output to be more like GNU m4.

GNU m4 --error-output is the same as -o despite the name. It does NOT
affect warnings, error messages, and 'errprint' output so drop the
misguided bit of code that tried to freopen stderr without closing it
on failure. Drop -e (which was our local invention) and make merge
--error-output with -o so that both set traceout. Make trace_file()
preserve the old traceout on error and return error status so that the
caller can emit appropriate warning.

Do not yet support disabling tracing with an empty name, the rest of
the code is not ready, we don't do -o positionally and we don't have
`debugfile'.
 1.49 24-Jun-2020  uwe Try not to lose error output with --error-output.

Try to avoid the trap we set up ourselves while avoiding freopen(3).
When exit flushes and closes open streams it may close sfp first and
when it comes about to flush and close stderr, the descriptor is
already gone and we lose any buffered error output. This actually
happens on some hosts, breaking --trace output used by autoconf.
 1.48 26-Mar-2019  christos branches: 1.48.2;
fix use-after-free issue.
 1.47 26-Mar-2019  christos Behave like gnu m4; when the error output file cannot be opened, just warn
and keep going.
 1.46 23-Jan-2016  christos branches: 1.46.16;
Explain what REDIRECT is for.
 1.45 16-Jan-2016  christos fix the option string.
 1.44 16-Jan-2016  christos mention that nesting limit is unimplemented
 1.43 16-Jan-2016  christos add most gnu m4 long options
 1.42 25-Apr-2012  christos Fix wrong loop index leading to infinite loop
ifdef(`FOO',
# FOO
)
XXX: Pullup to 6.
 1.41 06-Sep-2011  joerg branches: 1.41.2; 1.41.4;
Move usage and onintr to make them static. Add __dead as needed.
 1.40 14-Aug-2011  christos kill gcc-4.5 warning
 1.39 06-Nov-2009  joerg Fix __progname mess.
 1.38 26-Oct-2009  christos resolve conflicts.
 1.37 21-Jul-2008  lukem Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.
 1.36 07-Jun-2005  he branches: 1.36.22;
Initialize a local variable to appease -Wuninitialized.
Marked with XXXGCC for sun2 (found while compiling for it).

Reviewed by lukem.
 1.35 20-Jun-2004  jmc Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
 1.34 07-Aug-2003  agc branches: 1.34.2;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.33 02-May-2002  wiz Really fix -P.
Fixes regression failure, and thus my PR #16225.
 1.32 05-Mar-2002  tv Put `klen' and `newk' back in local block so that their scope is limited.
(Reduces 1.31 to a one-line diff from 1.30.)
 1.31 04-Mar-2002  lukem fix -P (which was broken in rev 1.29)
 1.30 31-Jan-2002  tv Protect __RCSID and __COPYRIGHT from being invoked if not defined.
 1.29 21-Jan-2002  tv Make compilable from src/tools/m4 on non-NetBSD hosts.
 1.28 14-Nov-2001  tv Get first getopt string right; provide better usage message.
 1.27 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.26 05-Mar-2001  wiz Sprinkle some const, and rename a shadow-variable.
 1.25 05-Mar-2001  wiz Fix appearance of bogus 0xff at EOF reported by me in bin/12287.
 1.24 18-Oct-2000  jdolecek couple more whitespace fixes, by Nathan Ahlstrom
 1.23 16-Aug-1999  enami branches: 1.23.8;
Always unlink the temporary file created by mkstemp(3).
 1.22 23-Jun-1999  tv Implement the very useful `-P' option from GNU's m4 (causes all builtin
macros to be prefixed with the string `m4_').
 1.21 20-Apr-1999  mrg use mkstemp.
 1.20 19-Dec-1998  christos char -> unsigned char
 1.19 01-Sep-1998  enami add -Dunix to CPPFLAGS to suppress cpp warning.
 1.18 30-Aug-1998  perry try another way of fixing #if defined(unix) issues
 1.17 30-Aug-1998  enami Nuke unix symbol warning differently (I've used wrong compiler to check
in previous commit).
 1.16 01-Jun-1998  kleink Need <stdlib.h> for mktemp() prototype.
 1.15 29-Dec-1997  cgd fix an inconsistency between signed- and unsigned-char machines:
make sure that pushed-back 0xff character isn't accidentally
interpreted as an EOF because of sign extension when chars were being
assigned to pbents. (signed-char machines lost.) To do this, make
putback() and pbstr() operate only on unsigned chars, and add a
putbackeof() function to do the obvious thing when necessary.
 1.14 02-Dec-1997  cgd add a typedef which describes elements in the push-back buffer. Make
that typedef 'short'. 'char' (which was previously used) because char
may be unsigned and ((char)EOF) != EOF if that is the case. That was
causing the (char)EOF (0xff) pushed back in main to be interepreted as
a character, and, in some cases, to be written to the output. 'short'
was used rather than 'signed char' because if the latter is used,
0xff characters in the input would confuse m4. (No point in introducing
(more?) 8-bit lossage.)
 1.13 19-Oct-1997  lukem branches: 1.13.2;
WARNSify, fix .Nm usage, getopt returns -1 not EOF, deprecate register
 1.12 08-Feb-1997  cgd handle quoted strings in quoted strings properly, when using multicharacter
quotes. E.g. if left quote was "``" and right quote was "''", then
"``foo ``bar'' baz''" would yield "foo `bar' baz" when it should yield
"foo ``bar'' baz".
 1.11 13-Jan-1996  pk Handle multichar comment and quote delimiters (up to 5 characters, per the
manual page). Takes care of PR#485.
 1.10 29-Sep-1995  cgd change #ifdef unix's to also accept __NetBSD__. After 1.1 (per a
decision made a long time ago), 'unix' will no longer be defined, and
is not currently defined on some architectures.
 1.9 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.8 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.7 03-Nov-1993  cgd 'official' patch from Ozan S. Yigit <oz@ursa.sis.yorku.ca>:
bug:if there are multiple files on the command line, file index is not
reset properly, ie. it falls off the side. sigh. also, somewhere along
the line, i again lost the proper m4wrap/autodiversion semantics
[sorry, eric. :-|] but fixed with this patch.
 1.6 02-Nov-1993  jtc Don't dump core when processing more than one file.
Bugfix has been forwarded to Ozan, and should be in his next release.
 1.5 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.4 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.3 18-Jun-1993  glass fixed compilation, and mktemp usage problem
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.13.2.1 29-Jan-1998  mellon Pull up 1.14 and 1.15 (cgd)
 1.23.8.1 20-Mar-2002  he Pull up revision 1.25 (requested by jmc):
Fix a conversion bug internal to m4 which causes it to output
0xff as the last byte of output.
 1.34.2.1 22-Jun-2004  tron Pull up revision 1.35 (requested by jmc in ticket #527):
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
 1.36.22.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.41.4.1 07-May-2012  riz Pull up following revision(s) (requested by christos in ticket #217):
usr.bin/m4/main.c: revision 1.42
Fix wrong loop index leading to infinite loop
ifdef(`FOO',
)
XXX: Pullup to 6.
 1.41.2.1 23-May-2012  yamt sync with head.
 1.46.16.1 10-Jun-2019  christos Sync with HEAD
 1.48.2.1 07-Jul-2020  martin Pull up following revision(s) (requested by uwe in ticket #981):

usr.bin/m4/m4.1: revision 1.28
usr.bin/m4/m4.1: revision 1.29
usr.bin/m4/extern.h: revision 1.20
usr.bin/m4/main.c: revision 1.49
usr.bin/m4/m4.1: revision 1.30
usr.bin/m4/trace.c: revision 1.9
usr.bin/m4/main.c: revision 1.50

Try not to lose error output with --error-output.

Try to avoid the trap we set up ourselves while avoiding freopen(3).
When exit flushes and closes open streams it may close sfp first and
when it comes about to flush and close stderr, the descriptor is
already gone and we lose any buffered error output. This actually
happens on some hosts, breaking --trace output used by autoconf.

Fix --error-output to be more like GNU m4.

GNU m4 --error-output is the same as -o despite the name. It does NOT
affect warnings, error messages, and 'errprint' output so drop the
misguided bit of code that tried to freopen stderr without closing it
on failure. Drop -e (which was our local invention) and make merge
--error-output with -o so that both set traceout. Make trace_file()
preserve the old traceout on error and return error status so that the
caller can emit appropriate warning.

Do not yet support disabling tracing with an empty name, the rest of
the code is not ready, we don't do -o positionally and we don't have
`debugfile'.

Fix --error-output to be more like GNU m4. It's a long version of -o.

Bump date for previous.

Use a date that is actually a real date.
 1.17 16-Jan-2016  christos add most gnu m4 long options
 1.16 16-Jan-2016  christos Use hex for masks.
 1.15 18-Oct-2013  christos avoid redefinitions
 1.14 05-Mar-2011  christos branches: 1.14.4; 1.14.10;
use TOKEN_LINE from MirBSD
 1.13 26-Oct-2009  christos resolve conflicts.
 1.12 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.11 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.10 05-Mar-2001  wiz Sprinkle some const, and rename a shadow-variable.
 1.9 18-Oct-2000  jdolecek couple more whitespace fixes, by Nathan Ahlstrom
 1.8 02-Dec-1997  cgd add a typedef which describes elements in the push-back buffer. Make
that typedef 'short'. 'char' (which was previously used) because char
may be unsigned and ((char)EOF) != EOF if that is the case. That was
causing the (char)EOF (0xff) pushed back in main to be interepreted as
a character, and, in some cases, to be written to the output. 'short'
was used rather than 'signed char' because if the latter is used,
0xff characters in the input would confuse m4. (No point in introducing
(more?) 8-bit lossage.)
 1.7 13-Jan-1996  pk branches: 1.7.2;
Handle multichar comment and quote delimiters (up to 5 characters, per the
manual page). Takes care of PR#485.
 1.6 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.5 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.4 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.3 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.7.2.1 29-Jan-1998  mellon Pull up 1.8 (cgd)
 1.14.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.14.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.25 06-Oct-2024  rillig usr.bin: fix lint warning about "effectively discards 'const'"

No binary change.
 1.24 16-Jan-2016  christos branches: 1.24.28;
record all input for fake freeze
 1.23 20-Mar-2012  matt Use C89 function definitions
 1.22 06-Sep-2011  joerg branches: 1.22.2;
Move usage and onintr to make them static. Add __dead as needed.
 1.21 05-Mar-2011  christos use TOKEN_LINE from MirBSD
 1.20 06-Nov-2009  joerg Fix __progname mess.
 1.19 26-Oct-2009  christos resolve conflicts.
 1.18 05-Oct-2007  lukem Convert to using raise_default_signal(3).
 1.17 20-Jun-2004  jmc branches: 1.17.18;
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
 1.16 07-Aug-2003  agc branches: 1.16.2;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.15 31-Jan-2002  tv Protect __RCSID and __COPYRIGHT from being invoked if not defined.
 1.14 21-Jan-2002  tv Make compilable from src/tools/m4 on non-NetBSD hosts.
 1.13 14-Nov-2001  tv Get first getopt string right; provide better usage message.
 1.12 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.11 05-Mar-2001  wiz Fix appearance of bogus 0xff at EOF reported by me in bin/12287.
 1.10 08-May-2000  tv branches: 1.10.4;
Add -P to the usage message (forgot this, long ago).
 1.9 29-Dec-1997  cgd fix an inconsistency between signed- and unsigned-char machines:
make sure that pushed-back 0xff character isn't accidentally
interpreted as an EOF because of sign extension when chars were being
assigned to pbents. (signed-char machines lost.) To do this, make
putback() and pbstr() operate only on unsigned chars, and add a
putbackeof() function to do the obvious thing when necessary.
 1.8 02-Dec-1997  cgd add a typedef which describes elements in the push-back buffer. Make
that typedef 'short'. 'char' (which was previously used) because char
may be unsigned and ((char)EOF) != EOF if that is the case. That was
causing the (char)EOF (0xff) pushed back in main to be interepreted as
a character, and, in some cases, to be written to the output. 'short'
was used rather than 'signed char' because if the latter is used,
0xff characters in the input would confuse m4. (No point in introducing
(more?) 8-bit lossage.)
 1.7 19-Oct-1997  lukem branches: 1.7.2;
WARNSify, fix .Nm usage, getopt returns -1 not EOF, deprecate register
 1.6 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.5 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.4 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.3 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.7.2.1 29-Jan-1998  mellon Pull up 1.8 and 1.9 (cgd)
 1.10.4.1 20-Mar-2002  he Pull up revision 1.11 (requested by jmc):
Fix a conversion bug internal to m4 which causes it to output
0xff as the last byte of output.
 1.16.2.1 22-Jun-2004  tron Pull up revision 1.17 (requested by jmc in ticket #527):
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
 1.17.18.1 06-Nov-2007  matt sync with HEAD
 1.22.2.1 17-Apr-2012  yamt sync with head
 1.24.28.1 02-Aug-2025  perseant Sync with HEAD
 1.4 19-Jun-1994  mycroft Clean up deleted files.
 1.3 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.2 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.1 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.3 04-Jan-2015  joerg Don't depend on yacc skeleton to include sys/cdefs.h early.
 1.2 26-Oct-2009  christos resolve conflicts.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.15 08-Mar-2011  riz Revert previous, to fix build on Mac OS X again.

ok christos@
 1.14 05-Mar-2011  christos add other os support from MirBSD
 1.13 31-Oct-2009  joerg Always define _PATH_DIVNAME to the Unix version. Drop UNIQUE.
Fixes build on Mac OS X.
 1.12 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.11 14-Nov-2001  tv Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.10 01-Sep-1998  enami add -Dunix to CPPFLAGS to suppress cpp warning.
 1.9 30-Aug-1998  perry try another way of fixing #if defined(unix) issues
 1.8 30-Aug-1998  enami Nuke unix symbol warning differently (I've used wrong compiler to check
in previous commit).
 1.7 30-Aug-1998  enami Check __NetBSD__ prior to unix.
 1.6 29-Sep-1995  cgd change #ifdef unix's to also accept __NetBSD__. After 1.1 (per a
decision made a long time ago), 'unix' will no longer be defined, and
is not currently defined on some architectures.
 1.5 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.4 26-Apr-1995  cgd oops; used ifdef instead of if.
 1.3 24-Apr-1995  cgd treat __NetBSD__ like 'unix'
 1.2 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.10 08-Feb-1997  cgd i don't know why this was still here, but it does not belong. It appears
to have been in Lite2, but with a Net/2 SCCS id. It's unnecessary (it's
not used), so it's going away.
 1.9 10-Nov-1996  pk Sync with eval.c. (What's this file doing here, anyway?).
 1.8 06-Nov-1996  pk Implement `$@' macro, as promised by the manual page (PR#2914).
 1.7 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.6 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.5 17-May-1994  cgd copyright foo
 1.4 30-Oct-1993  glass latest m4 from ozan. now does the right thing w/respect to sendmail
 1.3 02-Aug-1993  mycroft Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.3 18-Oct-2000  jdolecek couple more whitespace fixes, by Nathan Ahlstrom
 1.2 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.1 19-Jun-1994  glass branches: 1.1.1;
upgrade to 4.4-lite m4. no local changes of note
 1.1.1.2 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1.1.1 28-Sep-1995  tls imported from 44lite2
 1.6 20-Mar-2012  matt Use C89 function definitions
 1.5 24-May-2011  joerg branches: 1.5.4;
Doesn't need input.
 1.4 29-Oct-2009  christos use %option instead of #define YY_NO_...
 1.3 28-Oct-2009  christos more no unput
 1.2 26-Oct-2009  christos resolve conflicts.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.5.4.1 17-Apr-2012  yamt sync with head
 1.9 25-Jun-2020  uwe Fix --error-output to be more like GNU m4.

GNU m4 --error-output is the same as -o despite the name. It does NOT
affect warnings, error messages, and 'errprint' output so drop the
misguided bit of code that tried to freopen stderr without closing it
on failure. Drop -e (which was our local invention) and make merge
--error-output with -o so that both set traceout. Make trace_file()
preserve the old traceout on error and return error status so that the
caller can emit appropriate warning.

Do not yet support disabling tracing with an empty name, the rest of
the code is not ready, we don't do -o positionally and we don't have
`debugfile'.
 1.8 20-Mar-2012  matt branches: 1.8.34;
Use C89 function definitions
 1.7 05-Mar-2011  christos branches: 1.7.4;
use TOKEN_LINE from MirBSD
 1.6 26-Oct-2009  christos resolve conflicts.
 1.5 20-Jun-2004  jmc Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
 1.4 21-Jan-2002  tv branches: 1.4.4;
Make compilable from src/tools/m4 on non-NetBSD hosts.
 1.3 31-Dec-2001  thorpej Need <string.h> for strcmp() prototype (noticed by gcc 3.1).
 1.2 14-Nov-2001  tv Whitespace nit.
 1.1 14-Nov-2001  tv branches: 1.1.1;
Pull in various changes from OpenBSD, most from Marc Espie, including:
* Provide some GNUisms as extensions.
* Provide dynamically growable string space.
* Make define(defn(foo)) work correctly for builtins.
(The current version is supposed to be capable of satisfying autoconf.)

All still relevant NetBSD changes have been preserved in this version, and
formatting and style fixes have been applied in various places.

Thanks to Masao Uebayashi <uebayasi@soum.co.jp> for pointing this out.
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.4.4.1 22-Jun-2004  tron Pull up revision 1.5 (requested by jmc in ticket #527):
Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')
Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).
Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.
Fixes PR's: PR#17762 PR#25944
 1.7.4.1 17-Apr-2012  yamt sync with head
 1.8.34.1 07-Jul-2020  martin Pull up following revision(s) (requested by uwe in ticket #981):

usr.bin/m4/m4.1: revision 1.28
usr.bin/m4/m4.1: revision 1.29
usr.bin/m4/extern.h: revision 1.20
usr.bin/m4/main.c: revision 1.49
usr.bin/m4/m4.1: revision 1.30
usr.bin/m4/trace.c: revision 1.9
usr.bin/m4/main.c: revision 1.50

Try not to lose error output with --error-output.

Try to avoid the trap we set up ourselves while avoiding freopen(3).
When exit flushes and closes open streams it may close sfp first and
when it comes about to flush and close stderr, the descriptor is
already gone and we lose any buffered error output. This actually
happens on some hosts, breaking --trace output used by autoconf.

Fix --error-output to be more like GNU m4.

GNU m4 --error-output is the same as -o despite the name. It does NOT
affect warnings, error messages, and 'errprint' output so drop the
misguided bit of code that tried to freopen stderr without closing it
on failure. Drop -e (which was our local invention) and make merge
--error-output with -o so that both set traceout. Make trace_file()
preserve the old traceout on error and return error status so that the
caller can emit appropriate warning.

Do not yet support disabling tracing with an empty name, the rest of
the code is not ready, we don't do -o positionally and we don't have
`debugfile'.

Fix --error-output to be more like GNU m4. It's a long version of -o.

Bump date for previous.

Use a date that is actually a real date.
 1.7 07-Dec-2021  uwe m4 manual - adapt to current -ms

Comment out macros related to the Bell Labs memorandum style.
Bring over .MH (abbreviation for "Murray Hill") from tmac.sU.
 1.6 07-Dec-2021  uwe m4 - bring back the m4 manual.

This is the version from the csrg-final tree by way of OpenBSD.
FreeBSD version is identical modulo slightly different license text
formatting and a few macro fixes.
 1.5 07-Dec-2021  rillig m4: remove PSD.doc

make: don't know how to make m4.ms. Stop
 1.4 05-Jul-2014  dholland Rework /usr/share/doc.

Update the <bsd.doc.mk> infrastructure, and update the docs to match
the new infrastructure.

- Build and install text, ps, pdf, and/or html, not roff sources.

- Don't wire the chapter numbers into the build system, or use them in
the installed pathnames. This didn't matter much when the docs were a
museum, but now that we're theoretically going to start maintaining
them again, we're going to add and remove documents periodically and
having the chapter numbers baked in creates a lot of thrashing for no
purpose.

- Specify the document name explicitly, rather than implicitly in a
path. Use this name (instead of other random strings) as the name
of the installed files.

- Specify the document section, which is the subdirectory of
/usr/share/doc to install into.

- Allow multiple subdocuments. (That is, multiple documents in one
output directory.)

- Enumerate the .png files groff emits along with html so they can be
installed.

- Remove assorted hand-rolled rules for running roff and roff widgetry
and add enough variable settings to make these unnecessary. This
includes support for
- explicit use of soelim
- refer
- tbl
- pic
- eqn

- Forcibly apply at least minimal amounts of sanity to certain
autogenerated roff files.

- Don't exclude USD.doc, SMM.doc, and PSD.doc directories from the
build, as they now actually do stuff.

Note: currently we can't generate pdf. This turns out to be a
nontrivial problem with no immediate solution forthcoming. So for now,
as a workaround, install compressed .ps as the printable form.
 1.3 10-Jul-2003  lukem branches: 1.3.62; 1.3.74;
Rename a large chunk of the make(1) variables which refer to a
program/tool from "FOO" to "TOOL_FOO". The new variables are:
TOOL_ASN1_COMPILE TOOL_CAP_MKDB TOOL_CAT TOOL_CKSUM TOOL_COMPILE_ET
TOOL_CONFIG TOOL_CRUNCHGEN TOOL_CTAGS TOOL_DB TOOL_EQN TOOL_FGEN
TOOL_GENCAT TOOL_GROFF TOOL_HEXDUMP TOOL_INDXBIB TOOL_INSTALLBOOT
TOOL_INSTALL_INFO TOOL_M4 TOOL_MAKEFS TOOL_MAKEINFO TOOL_MAKEWHATIS
TOOL_MDSETIMAGE TOOL_MENUC TOOL_MKCSMAPPER TOOL_MKESDB
TOOL_MKLOCALE TOOL_MKMAGIC TOOL_MKTEMP TOOL_MSGC TOOL_MTREE
TOOL_PAX TOOL_PIC TOOL_PREPMKBOOTIMAGE TOOL_PWD_MKDB TOOL_REFER
TOOL_ROFF_ASCII TOOL_ROFF_DVI TOOL_ROFF_HTML TOOL_ROFF_PS
TOOL_ROFF_RAW TOOL_RPCGEN TOOL_SOELIM TOOL_SUNLABEL TOOL_TBL
TOOL_UUDECODE TOOL_VGRIND TOOL_ZIC

For each, provide default in <bsd.sys.mk> of the form:
TOOL_FOO?= foo
and for the ${USETOOLS}=="yes" case in <bsd.own.mk>, provide override:
TOOL_FOO= ${TOOLDIR}/bin/${_TOOL_PREFIX}foo

Document all of these in bsd.README.

This cleans up a chunk of potential (and actual) namespace collision
within our build infrastructure, as well as improves consistency in
the share/mk documentation and provision of appropriate defaults for
each of these variables.
 1.2 09-Jan-1998  perry RCS Id Police.
 1.1 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.3.74.1 10-Aug-2014  tls Rebase.
 1.3.62.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3 07-Dec-2021  uwe m4 manual - bring over the rest of the tmac.sU bits.

All tmac.sU does is sets wider text and defines the .MH abbreviation
for "Murray Hill" (.MH was brought over in the previous commit).
 1.2 07-Dec-2021  uwe m4 manual - adapt to current -ms

Comment out macros related to the Bell Labs memorandum style.
Bring over .MH (abbreviation for "Murray Hill") from tmac.sU.
 1.1 07-Dec-2021  uwe m4 - bring back the m4 manual.

This is the version from the csrg-final tree by way of OpenBSD.
FreeBSD version is identical modulo slightly different license text
formatting and a few macro fixes.
 1.4 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.3 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.4 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.3 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.4 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.3 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.2 06-Oct-2005  drochner s|expr|eval|g, to make the test portable
 1.1 06-Oct-2005  drochner import a test for arithmetic expressions from FreeBSD
 1.4 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.3 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.4 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.3 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.4 28-Sep-1995  tls Sync with 4.4BSD-Lite2
 1.3 19-Jun-1994  glass upgrade to 4.4-lite m4. no local changes of note
 1.2 18-Jun-1993  glass baseline of new version of m4 supplied by Ozan Yigit, original author
of the broken m4 we had. This is his stuff virgin + our Makefile.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 28-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.2 26-Oct-2009  christos fix compilation.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.2 26-Oct-2009  christos fix compilation.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.2 28-Oct-2009  christos Handle nbtools build better.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.
 1.2 26-Oct-2009  christos fix compilation.
 1.1 26-Oct-2009  christos branches: 1.1.1;
Initial revision
 1.1.1.1 26-Oct-2009  christos Import new m4 from OpenBSD.

RSS XML Feed