[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3.1 Redefined M4 Macros

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.

Macro: dnl
This macro kept its original name: no m4_dnl is defined.

Macro: m4_defn (macro)
Contrary to the M4 builtin, this macro fails if macro is not defined. See m4_undefine.

Macro: m4_exit (exit-status)
This macro corresponds to m4exit.

Macro: m4_if (comment)
Macro: m4_if (string-1, string-2, equal, [not-equal])
Macro: m4_if (string-1, string-2, equal, ...)
This macro corresponds to ifelse.

Macro: m4_undefine (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.

Macro: m4_bpatsubst (string, regexp, [replacement])
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.

Macro: m4_popdef (macro)
Contrary to the M4 builtin, this macro fails if macro is not defined. See m4_undefine.

Macro: m4_bregexp (string, regexp, [replacement])
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.

Macro: m4_wrap (text)
This macro corresponds to m4wrap.

You are encouraged to end text with `[]', so that there are no risks that two consecutive invocations of m4_wrap result in an unexpected pasting of tokens, as in

 
m4_define([foo], [Foo])
m4_define([bar], [Bar])
m4_define([foobar], [FOOBAR])
m4_wrap([bar])
m4_wrap([foo])
=>FOOBAR


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Jeff Bailey on December, 24 2002 using texi2html