summaryrefslogtreecommitdiff
path: root/usr.bin/m4/m4.1
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/m4/m4.1')
-rw-r--r--usr.bin/m4/m4.1381
1 files changed, 0 insertions, 381 deletions
diff --git a/usr.bin/m4/m4.1 b/usr.bin/m4/m4.1
deleted file mode 100644
index ccd793d6e2a3b..0000000000000
--- a/usr.bin/m4/m4.1
+++ /dev/null
@@ -1,381 +0,0 @@
-.\" @(#) $OpenBSD: m4.1,v 1.24 2002/04/18 18:57:23 espie Exp $
-.\"
-.\"
-.Dd January 26, 1993
-.Dt M4 1
-.Os
-.Sh NAME
-.Nm m4
-.Nd macro language processor
-.Sh SYNOPSIS
-.Nm m4
-.Op Fl d Ar flags
-.Op Fl t Ar name
-.Op Fl g
-.Oo
-.Fl D Ns Ar name Ns Op Ar =value
-.Oc
-.Op Fl U Ns Ar name
-.Op Fl I Ar dirname
-.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).
-.Nm m4
-reads from the standard input and writes
-the processed text 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
-parenthesis
-.Pq Ql ( .
-If the macro name is not followed by an open
-parenthesis it is processed with no arguments.
-.Pp
-Macro names consist of a leading alphabetic or underscore
-possibly followed by alphanumeric or underscore characters, e.g.,
-valid macro names match the pattern
-.Dq [a-zA-Z_][a-zA-Z0-9_]* .
-.Pp
-In arguments to macros, leading unquoted space, tab, and newline
-.Pq Ql \en
-characters are ignored.
-To quote strings, use left and right single
-quotes (e.g.,
-.Sq \ this is a string with a leading space ) .
-You can change the quote characters with the
-.Ic changequote
-built-in macro.
-.Pp
-Most built-ins don't make any sense without arguments, and hence are not
-recognized as special when not followed by an open parenthesis.
-.Pp
-The options are as follows:
-.Bl -tag -width Ds
-.It Fl D Ns Ar name Ns Oo
-.Ar =value
-.Oc
-Define the symbol
-.Ar name
-to have some value (or
-.Dv NULL ) .
-.It Fl "U" Ns Ar "name"
-Undefine the symbol
-.Ar name .
-.It Fl I Ar "dirname"
-Add directory
-.Ar dirname
-to the include path.
-.It Fl d Ar "flags"
-Set trace flags.
-.Ar flags
-may hold the following:
-.Bl -tag -width Ds
-.It Ar a
-print macro arguments.
-.It Ar c
-print macro expansion over several lines.
-.It Ar e
-print result of macro expansion.
-.It Ar f
-print filename location.
-.It Ar l
-print line number.
-.It Ar q
-quote arguments and expansion with the current quotes.
-.It Ar t
-start with all macros traced.
-.It Ar x
-number macro expansions.
-.It Ar V
-turn on all options.
-.El
-.Pp
-By default, trace is set to
-.Qq eq .
-.It Fl t Ar macro
-Turn tracing on for
-.Ar macro .
-.It Fl g
-Activate GNU-m4 compatibility mode.
-In this mode, changequote with
-two empty parameters deactivates quotes, translit handles simple character
-ranges (e.g., a-z), regular expressions mimic emacs behavior,
-and the number of diversions is unlimited.
-.El
-.Sh SYNTAX
-.Nm m4
-provides the following built-in macros.
-They may be redefined, losing their original meaning.
-Return values are null unless otherwise stated.
-.Bl -tag -width changequotexxx
-.It Ic builtin
-Calls a built-in by its name, overriding possible redefinitions.
-.It Ic changecom
-Change the start and end comment sequences.
-The default is the pound sign
-.Pq Ql #
-and the newline character.
-With no arguments comments are turned off.
-The maximum length for a comment marker is five characters.
-.It Ic 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 Ic decr
-Decrements the argument by 1.
-The argument must be a valid numeric string.
-.It Ic define
-Define a new macro named by the first argument to have the
-value of the second argument.
-Each occurrence of
-.Ql $n
-(where
-.Ar n
-is 0 through 9) is replaced by the
-.Ar n Ns 'th
-argument.
-.Ql $0
-is the name of the calling macro.
-Undefined arguments are replaced by a null string.
-.Ql $#
-is replaced by the number of arguments;
-.Ql $*
-is replaced by all arguments comma separated;
-.Ql $@
-is the same as
-.Ql $*
-but all arguments are quoted against further expansion.
-.It Ic defn
-Returns the quoted definition for each argument.
-This can be used to rename
-macro definitions (even for built-in macros).
-.It Ic 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 Ic divnum
-Returns the current output queue number.
-.It Ic dnl
-Discard input characters up to and including the next newline.
-.It Ic dumpdef
-Prints the names and definitions for the named items, or for everything
-if no arguments are passed.
-.It Ic errprint
-Prints the first argument on the standard error output stream.
-.It Ic esyscmd
-Pass 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
-.Nm
-.It Ic 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 Ic expr
-This is an alias for
-.Ic eval .
-.It Ic 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
-.Dv NULL .
-The word
-.Qq unix
-is predefined.
-.It Ic ifelse
-If the first argument matches the second argument then
-.Ic 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
-.Dv NULL
-is returned if no other matches were found.
-.It Ic include
-Returns the contents of the file specified in the first argument.
-If the file is not found as is, look through the include path:
-first the directories specified with
-.Fl I
-on the command line, then the environment variable
-.Ev M4PATH ,
-as a colon-separated list of directories.
-Include aborts with an error message if the file cannot be included.
-.It Ic incr
-Increments the argument by 1.
-The argument must be a valid numeric string.
-.It Ic index
-Returns the index of the second argument in the first argument (e.g.,
-.Ic index(the quick brown fox jumped, fox)
-returns 16).
-If the second
-argument is not found index returns \-1.
-.It Ic indir
-Indirectly calls the macro whose name is passed as the first arguments,
-with the remaining arguments passed as first, ... arguments.
-.It Ic len
-Returns the number of characters in the first argument.
-Extra arguments
-are ignored.
-.It Ic m4exit
-Immediately exits with the return value specified by the first argument,
-0 if none.
-.It Ic m4wrap
-Allows you to define what happens at the final
-.Dv EOF ,
-usually for cleanup purposes (e.g.,
-.Ic m4wrap("cleanup(tempfile)")
-causes the macro cleanup to be
-invoked after all other processing is done).
-.It Ic maketemp
-Translates the string
-.Dq 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 Ic 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 Ic patsubst
-Substitutes a regular expression in a string with a replacement string.
-Usual substitution patterns apply: an ampersand
-.Pq Ql &
-is replaced by the string matching the regular expression.
-The string
-.Ql \e# ,
-where
-.Ql #
-is a digit, is replaced by the corresponding back-reference.
-.It Ic popdef
-Restores the
-.Ic pushdef Ns ed
-definition for each argument.
-.It Ic pushdef
-Takes the same arguments as
-.Ic define ,
-but it saves the definition on a
-stack for later retrieval by
-.Ic popdef .
-.It Ic regexp
-Finds a regular expression in a string.
-If no further arguments are given,
-it returns the first match position or \-1 if no match.
-If a third argument
-is provided, it returns the replacement string, with sub-patterns replaced.
-.It Ic 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 Ic sinclude
-Similar to
-.Ic include ,
-except it ignores any errors.
-.It Ic spaste
-Similar to
-.Ic paste ,
-except it ignores any errors.
-.It Ic 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 Ic syscmd
-Passes the first argument to the shell.
-Nothing is returned.
-.It Ic sysval
-Returns the return value from the last
-.Ic syscmd .
-.It Ic traceon
-Enables tracing of macro expansions for the given arguments, or for all
-macros if no argument is given.
-.It Ic traceoff
-Disables tracing of macro expansions for the given arguments, or for all
-macros if no argument is given.
-.It Ic 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 Ic undefine
-Removes the definition for the macros specified by its arguments.
-.It Ic undivert
-Flushes the named output queues (or all queues if no arguments).
-.It Ic unix
-A pre-defined macro for testing the OS platform.
-.It Ic __line__
-Returns the current file's line number.
-.It Ic __file__
-Returns the current file's name.
-.El
-.Sh COMPATIBILITY
-.Nm
-follows the Single Unix 2 specification, along with a few extensions taken
-from
-.Nm gnu-m4 .
-.Pp
-The
-.Fl s
-option
-.Po
-.Xr cpp 1 's
-#line directives
-.Pc
-is currently not supported.
-Flags
-.Fl I ,
-.Fl d ,
-.Fl t
-are non-standard.
-.Pp
-The output format of tracing and of
-.Ic dumpdef
-are not specified in any standard,
-are likely to change and should not be relied upon.
-The current format of tracing is closely modelled on
-.Nm gnu-m4 ,
-to allow
-.Nm autoconf
-to work.
-.Pp
-For portability, one should not use the macros
-.Ic builtin ,
-.Ic esycmd ,
-.Ic expr ,
-.Ic indir ,
-.Ic paste ,
-.Ic patsubst ,
-.Ic regexp ,
-.Ic spaste ,
-.Ic unix ,
-.Ic __line__ ,
-.Ic __file__ .
-.Pp
-All builtins do expand without arguments in many other
-.Nm m4 .
-.Pp
-Many other
-.Nm
-have dire size limitations with respect to buffer sizes.
-.Sh AUTHORS
-Ozan Yigit <oz@sis.yorku.ca> and Richard A. O'Keefe (ok@goanna.cs.rmit.OZ.AU).
-GNU-m4 compatibility extensions by Marc Espie <espie@cvs.openbsd.org>.