Somewhere in the shuffle this lost its man page. Use the 1.1.5
one. Submitted by: jkh
This commit is contained in:
parent
0419c5b941
commit
97ad975557
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=2021
181
usr.bin/m4/m4.1
Normal file
181
usr.bin/m4/m4.1
Normal file
@ -0,0 +1,181 @@
|
||||
.\"
|
||||
.\" @(#) $Id: m4.1,v 1.4 1994/01/16 00:30:31 swallace Exp $
|
||||
.\"
|
||||
.Dd January 26, 1993
|
||||
.Dt m4 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm m4
|
||||
.Nd macro language processor
|
||||
.Sh SYNOPSIS
|
||||
.Nm m4
|
||||
.Oo
|
||||
.Fl D Ns Ar name Ns Op Ar =value
|
||||
.Oc
|
||||
.Op Fl U Ns Ar name
|
||||
.Op Ar filename
|
||||
\|.\|.\|.
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm m4
|
||||
utility is a macro processor that can be used as a front end to any
|
||||
language (e.g., C, ratfor, fortran, lex, and yacc).
|
||||
Each of the argument files is processed in order.
|
||||
If there are no files, or if a filename is \`-\', the standard input is read.
|
||||
The processed text is sent to the standard output.
|
||||
.Pp
|
||||
Macro calls have the form name(argument1[, argument2, ...,] argumentN).
|
||||
.Pp
|
||||
There cannot be any space following the macro name and the open
|
||||
parentheses '('. If the macro name is not followed by an open
|
||||
parentheses it is processed with no arguments.
|
||||
.Pp
|
||||
Macro names consist of a leading alphabetic or underscore
|
||||
possibly followed by alphanumeric or underscore characters, therefore
|
||||
valid macro names match this pattern [a-zA-Z_][a-zA-Z0-9_]*.
|
||||
.Pp
|
||||
In arguments to macros, leading unquoted space, tab and newline
|
||||
characters are ignored. To quote strings use left and right single
|
||||
quotes (e.g., ` this is a string with a leading space'). You can change
|
||||
the quote characters with the changequote built-in macro.
|
||||
.Pp
|
||||
The options are as follows:
|
||||
.Bl -tag -width "-Dname[=value]xxx"
|
||||
.It Fl D Ns Ar name Ns Oo
|
||||
.Ar =value
|
||||
.Oc
|
||||
Define the symbol
|
||||
.Ar name
|
||||
to have some value (or NULL).
|
||||
.It Fl "U" Ns Ar "name"
|
||||
Undefine the symbol
|
||||
.Ar name .
|
||||
.El
|
||||
.Sh SYNTAX
|
||||
.Nm m4
|
||||
provides the following built-in macros. They may be
|
||||
redefined, loosing their original meaning.
|
||||
Return values are NULL unless otherwise stated.
|
||||
.Bl -tag -width changequotexxx
|
||||
.It changecom
|
||||
Change the start and end comment sequences. The default is
|
||||
the pound sign `#' and the newline character. With no arguments
|
||||
comments are turned off. The maximum length for a comment marker is
|
||||
five characters.
|
||||
.It changequote
|
||||
Defines the quote symbols to be the first and second arguments.
|
||||
The symbols may be up to five characters long. If no arguments are
|
||||
given it restores the default open and close single quotes.
|
||||
.It decr
|
||||
Decrements the argument by 1. The argument must be a valid numeric string.
|
||||
.It define
|
||||
Define a new macro named by the first argument to have the
|
||||
value of the second argument. Each occurrence of $n (where n
|
||||
is 0 through 9) is replaced by the n'th argument. $0 is the name
|
||||
of the calling macro. Undefined arguments are replaced by a
|
||||
NULL string. $# is replaced by the number of arguments; $*
|
||||
is replaced by all arguments comma separated; $@ is the same
|
||||
as $* but all arguments are quoted against further expansion.
|
||||
.It defn
|
||||
Returns the quoted definition for each argument. This can be used to rename
|
||||
macro definitions (even for built-in macros).
|
||||
.It divert
|
||||
There are 10 output queues (numbered 0-9).
|
||||
At the end of processing
|
||||
.Nm m4
|
||||
concatenates all the queues in numerical order to produce the
|
||||
final output. Initially the output queue is 0. The divert
|
||||
macro allows you to select a new output queue (an invalid argument
|
||||
passed to divert causes output to be discarded).
|
||||
.It divnum
|
||||
Returns the current output queue number.
|
||||
.It dnl
|
||||
Discard input characters up to and including the next newline.
|
||||
.It dumpdef
|
||||
Prints the names and definitions for the named items, or for everything
|
||||
if no arguments are passed.
|
||||
.It errprint
|
||||
Prints the first argument on the standard error output stream.
|
||||
.It eval
|
||||
Computes the first argument as an arithmetic expression using 32-bit
|
||||
arithmetic. Operators are the standard C ternary, arithmetic, logical,
|
||||
shift, relational, bitwise, and parentheses operators. You can specify
|
||||
octal, decimal, and hexadecimal numbers as in C. The second argument (if
|
||||
any) specifies the radix for the result and the third argument (if
|
||||
any) specifies the minimum number of digits in the result.
|
||||
.It expr
|
||||
This is an alias for eval.
|
||||
.It ifdef
|
||||
If the macro named by the first argument is defined then return the second
|
||||
argument, otherwise the third. If there is no third argument,
|
||||
the value is NULL. The word `unix' is predefined.
|
||||
.It ifelse
|
||||
If the first argument matches the second argument then ifelse returns
|
||||
the third argument. If the match fails the three arguments are
|
||||
discarded and the next three arguments are used until there is
|
||||
zero or one arguments left, either this last argument or NULL is
|
||||
returned if no other matches were found.
|
||||
.It include
|
||||
Returns the contents of the file specified in the first argument.
|
||||
Include aborts with an error message if the file cannot be included.
|
||||
.It incr
|
||||
Increments the argument by 1. The argument must be a valid numeric string.
|
||||
.It index
|
||||
Returns the index of the second argument in the first argument (e.g.,
|
||||
index(the quick brown fox jumped, fox) returns 16). If the second
|
||||
argument is not found index returns -1.
|
||||
.It len
|
||||
Returns the number of characters in the first argument. Extra arguments
|
||||
are ignored.
|
||||
.It m4exit
|
||||
Immediately exits with the return value specified by the first argument,
|
||||
0 if none.
|
||||
.It m4wrap
|
||||
Allows you to define what happens at the final EOF, usually for cleanup
|
||||
purposes (e.g., m4wrap("cleanup(tempfile)") causes the macro cleanup to
|
||||
invoked after all other processing is done.)
|
||||
.It maketemp
|
||||
Translates the string XXXXX in the first argument with the current process
|
||||
ID leaving other characters alone. This can be used to create unique
|
||||
temporary file names.
|
||||
.It paste
|
||||
Includes the contents of the file specified by the first argument without
|
||||
any macro processing. Aborts with an error message if the file cannot be
|
||||
included.
|
||||
.It popdef
|
||||
Restores the pushdef'ed definition for each argument.
|
||||
.It pushdef
|
||||
Takes the same arguments as define, but it saves the definition on a
|
||||
stack for later retrieval by popdef.
|
||||
.It shift
|
||||
Returns all but the first argument, the remaining arguments are
|
||||
quoted and pushed back with commas in between. The quoting
|
||||
nullifies the effect of the extra scan that will subsequently be
|
||||
performed.
|
||||
.It sinclude
|
||||
Similar to include, except it ignores any errors.
|
||||
.It spaste
|
||||
Similar to spaste, except it ignores any errors.
|
||||
.It substr
|
||||
Returns a substring of the first argument starting at the offset specified
|
||||
by the second argument and the length specified by the third argument.
|
||||
If no third argument is present it returns the rest of the string.
|
||||
.It syscmd
|
||||
Passes the first argument to the shell. Nothing is returned.
|
||||
.It sysval
|
||||
Returns the return value from the last syscmd.
|
||||
.It translit
|
||||
Transliterate the characters in the first argument from the set
|
||||
given by the second argument to the set given by the third. You cannot
|
||||
use
|
||||
.Xr tr 1
|
||||
style abbreviations.
|
||||
.It undefine
|
||||
Removes the definition for the macro specified by the first argument.
|
||||
.It undivert
|
||||
Flushes the named output queues (or all queues if no arguments).
|
||||
.It unix
|
||||
A pre-defined macro for testing the OS platform.
|
||||
.El
|
||||
.Sh AUTHOR
|
||||
Ozan Yigit <oz@sis.yorku.ca> and Richard A. O'Keefe (ok@goanna.cs.rmit.OZ.AU)
|
Loading…
Reference in New Issue
Block a user