Node:Quadrigraphs, Next:Quotation Rule Of Thumb, Previous:Changequote is Evil, Up:M4 Quotation
When writing an autoconf macro you may occasionally need to generate
special characters that are difficult to express with the standard
autoconf quoting rules. For example, you may need to output the regular
[^, which matches any character other than
This expression contains unbalanced brackets so it cannot be put easily
into an M4 macro.
You can work around this problem by using one of the following quadrigraphs:
Quadrigraphs are replaced at a late stage of the translation process,
m4 is run, so they do not get in the way of M4 quoting.
For example, the string
^@<:@, independently of its quotation,
will appear as
^[ in the output.
The empty quadrigraph can be used:
Trailing spaces are smashed by
autom4te. This is a feature.
For instance you might want to mention
AC_FOO is a comment, while
still being sure that
autom4te will still catch unexpanded
AC_*. Then write
@&t@ was suggested by Paul Eggert:
I should give some credit to the
&is my own invention, but the
tcame from the source code of the ALGOL68C compiler, written by Steve Bourne (of Bourne shell fame), and which used
mtto denote the empty string. In C, it would have looked like something like:char const mt = "";
but of course the source code was written in Algol 68.
I don't know where he got
mtfrom: it could have been his own invention, and I suppose it could have been a common pun around the Cambridge University computer lab at the time.