Node:Evaluation Macros, Next:Forbidden Patterns, Previous:Redefined M4 Macros, Up:Programming in M4sugar
The following macros give some control over the order of the evaluation by adding or removing levels of quotes. They are meant for hard core M4 programmers.
m4_dquote (arg1, ...) | Macro |
Return the arguments as a quoted list of quoted arguments. |
m4_quote (arg1, ...) | Macro |
Return the arguments as a single entity, i.e., wrap them into a pair of quotes. |
The following example aims at emphasing the difference between (i), not
using these macros, (ii), using m4_quote
, and (iii), using
m4_dquote
.
$ cat example.m4 # Over quote, so that quotes are visible. m4_define([show], [$[]1 = [$1], $[]@ = [$@]]) m4_divert(0)dnl show(a, b) show(m4_quote(a, b)) show(m4_dquote(a, b)) $ autom4te -l m4sugar example.m4 $1 = a, $@ = [a],[b] $1 = a,b, $@ = [a,b] $1 = [a],[b], $@ = [[a],[b]]