GNU Info

Info Node: (m4.info)Extensions

(m4.info)Extensions


Next: Incompatibilities Prev: Compatibility Up: Compatibility
Enter node , (file) or (file)node

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'.


automatically generated by info2www version 1.2.2.9