Node:Redefined M4 Macros, Next:Evaluation Macros, Up:Programming in M4sugar
With a few exceptions, all the M4 native macros are moved in the
m4_
pseudo-namespace, e.g., M4sugar renames define
as
m4_define
etc.
Some M4 macros are redefined, and are slightly incompatible with their native equivalent.
dnl | Macro |
This macro kept its original name: no m4_dnl is defined.
|
m4_defn (macro) | Macro |
Contrary to the M4 builtin, this macro fails if macro is not
defined. See m4_undefine .
|
m4_exit (exit-status) | Macro |
This macro corresponds to m4exit .
|
m4_if (comment) | Macro |
m4_if (string-1, string-2, equal, [not-equal]) | Macro |
m4_if (string-1, string-2, equal, ...) | Macro |
This macro corresponds to ifelse .
|
m4_undefine (macro) | Macro |
Contrary to the M4 builtin, this macro fails if macro is not
defined. Use
m4_ifdef([macro], [m4_undefine([macro])]) to recover the behavior of the builtin. |
m4_bpatsubst (string, regexp, [replacement]) | Macro |
This macro corresponds to patsubst . The name m4_patsubst
is kept for future versions of M4sh, on top of GNU M4 which will
provide extended regular expression syntax via epatsubst .
|
m4_popdef (macro) | Macro |
Contrary to the M4 builtin, this macro fails if macro is not
defined. See m4_undefine .
|
m4_bregexp (string, regexp, [replacement]) | Macro |
This macro corresponds to regexp . The name m4_regexp
is kept for future versions of M4sh, on top of GNU M4 which will
provide extended regular expression syntax via eregexp .
|
m4_wrap (text) | Macro |
This macro corresponds to m4wrap .
You are encouraged to end text with m4_define([foo], [Foo]) m4_define([bar], [Bar]) m4_define([foobar], [FOOBAR]) m4_wrap([bar]) m4_wrap([foo]) =>FOOBAR |