Extensions in GNU `m4'
======================
This version of `m4' contains a few facilities, that do not exist in
System V `m4'. These extra facilities are all suppressed by using the
`-G' command line option, unless overridden by other command line
options.
* In the `$'N notation for macro arguments, N can contain several
digits, while the System V `m4' only accepts one digit. This
allows macros in GNU `m4' to take any number of arguments, and not
only nine (Note:Arguments).
* Files included with `include' and `sinclude' are sought in a user
specified search path, if they are not found in the working
directory. The search path is specified by the `-I' option and the
`M4PATH' environment variable (Note:Search Path).
* Arguments to `undivert' can be non-numeric, in which case the named
file will be included uninterpreted in the output (Note:Undivert).
* Formatted output is supported through the `format' builtin, which
is modeled after the C library function `printf' (Note:Format).
* Searches and text substitution through regular expressions are
supported by the `regexp' (Note:Regexp) and `patsubst' (Note:Patsubst) builtins.
* The output of shell commands can be read into `m4' with `esyscmd'
(Note:Esyscmd).
* There is indirect access to any builtin macro with `builtin'
(Note:Builtin).
* Macros can be called indirectly through `indir' (Note:Indir).
* The name of the current input file and the current input line
number are accessible through the builtins `__file__' and
`__line__' (Note:Errprint).
* The format of the output from `dumpdef' and macro tracing can be
controlled with `debugmode' (Note:Debug Levels).
* The destination of trace and debug output can be controlled with
`debugfile' (Note:Debug Output).
In addition to the above extensions, GNU `m4' implements the
following command line options: `-F', `-G', `-I', `-L', `-R', `-V',
`-W', `-d', `-l', `-o' and `-t'. Note:Invoking m4, for a
description of these options.
Also, the debugging and tracing facilities in GNU `m4' are much more
extensive than in most other versions of `m4'.