version 1.32, 2003/06/10 09:12:10 |
version 1.33, 2003/06/27 21:22:52 |
|
|
.Pp |
.Pp |
There cannot be any space following the macro name and the open |
There cannot be any space following the macro name and the open |
parenthesis |
parenthesis |
.Pq Ql ( . |
.Pq Sq ( . |
If the macro name is not followed by an open |
If the macro name is not followed by an open |
parenthesis it is processed with no arguments. |
parenthesis it is processed with no arguments. |
.Pp |
.Pp |
|
|
.Dq [a-zA-Z_][a-zA-Z0-9_]* . |
.Dq [a-zA-Z_][a-zA-Z0-9_]* . |
.Pp |
.Pp |
In arguments to macros, leading unquoted space, tab, and newline |
In arguments to macros, leading unquoted space, tab, and newline |
.Pq Ql \en |
.Pq Sq \en |
characters are ignored. |
characters are ignored. |
To quote strings, use left and right single |
To quote strings, use left and right single quotes |
quotes (e.g., |
.Po e.g.,\ \& |
.Ql "\ this is a string with a leading space" ) . |
.Sq "\ this is a string with a leading space" |
|
.Pc . |
You can change the quote characters with the |
You can change the quote characters with the |
.Ic changequote |
.Ic changequote |
built-in macro. |
built-in macro. |
|
|
.It Ic changecom |
.It Ic changecom |
Change the start and end comment sequences. |
Change the start and end comment sequences. |
The default is the pound sign |
The default is the pound sign |
.Pq Ql # |
.Pq Sq # |
and the newline character. |
and the newline character. |
With no arguments comments are turned off. |
With no arguments comments are turned off. |
The maximum length for a comment marker is five characters. |
The maximum length for a comment marker is five characters. |
|
|
Define a new macro named by the first argument to have the |
Define a new macro named by the first argument to have the |
value of the second argument. |
value of the second argument. |
Each occurrence of |
Each occurrence of |
.Ql $n |
.Sq $n |
(where |
(where |
.Ar n |
.Ar n |
is 0 through 9) is replaced by the |
is 0 through 9) is replaced by the |
.Ar n Ns 'th |
.Ar n Ns 'th |
argument. |
argument. |
.Ql $0 |
.Sq $0 |
is the name of the calling macro. |
is the name of the calling macro. |
Undefined arguments are replaced by a null string. |
Undefined arguments are replaced by a null string. |
.Ql $# |
.Sq $# |
is replaced by the number of arguments; |
is replaced by the number of arguments; |
.Ql $* |
.Sq $* |
is replaced by all arguments comma separated; |
is replaced by all arguments comma separated; |
.Ql $@ |
.Sq $@ |
is the same as |
is the same as |
.Ql $* |
.Sq $* |
but all arguments are quoted against further expansion. |
but all arguments are quoted against further expansion. |
.It Ic defn |
.It Ic defn |
Returns the quoted definition for each argument. |
Returns the quoted definition for each argument. |
|
|
.It Ic esyscmd |
.It Ic esyscmd |
Passes its first argument to a shell and returns the shell's standard output. |
Passes its first argument to a shell and returns the shell's standard output. |
Note that the shell shares its standard input and standard error with |
Note that the shell shares its standard input and standard error with |
.Nm |
.Nm m4 . |
.It Ic eval |
.It Ic eval |
Computes the first argument as an arithmetic expression using 32-bit |
Computes the first argument as an arithmetic expression using 32-bit |
arithmetic. |
arithmetic. |
|
|
.It Ic patsubst |
.It Ic patsubst |
Substitutes a regular expression in a string with a replacement string. |
Substitutes a regular expression in a string with a replacement string. |
Usual substitution patterns apply: an ampersand |
Usual substitution patterns apply: an ampersand |
.Pq Ql & |
.Pq Sq \&& |
is replaced by the string matching the regular expression. |
is replaced by the string matching the regular expression. |
The string |
The string |
.Ql \e# , |
.Sq \e# , |
where |
where |
.Ql # |
.Sq # |
is a digit, is replaced by the corresponding back-reference. |
is a digit, is replaced by the corresponding back-reference. |
.It Ic popdef |
.It Ic popdef |
Restores the |
Restores the |