summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1994-08-11 01:06:29 +0000
committerjkh <jkh@FreeBSD.org>1994-08-11 01:06:29 +0000
commit092e4def22b35de799ad710f65d83f8b0ad83577 (patch)
tree120ea12d6fa36ce40c0f2a9edbc2248d641337f9
parent76b3c1dd38fa5efbcde18b5387fd4d0bdedea906 (diff)
downloadFreeBSD-src-092e4def22b35de799ad710f65d83f8b0ad83577.zip
FreeBSD-src-092e4def22b35de799ad710f65d83f8b0ad83577.tar.gz
Somewhere in the shuffle this lost its man page. Use the 1.1.5
one. Submitted by: jkh
-rw-r--r--usr.bin/m4/m4.1181
1 files changed, 181 insertions, 0 deletions
diff --git a/usr.bin/m4/m4.1 b/usr.bin/m4/m4.1
new file mode 100644
index 0000000..5318019
--- /dev/null
+++ b/usr.bin/m4/m4.1
@@ -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)
OpenPOWER on IntegriCloud