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_dnlis 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 namem4_patsubstis kept for future versions of M4sh, on top of GNU M4 which will
provide extended regular expression syntax viaepatsubst. | 
| 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 namem4_regexpis kept for future versions of M4sh, on top of GNU M4 which will
provide extended regular expression syntax viaeregexp. | 
| 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 |