m4 man page on Ultrix

Man page or keyword search:  
man Server   3690 pages
apropos Keyword Search (all sections)
Output format
Ultrix logo
[printable version]

m4(1)									 m4(1)

       m4 - macro processor

       m4 [options] [files]

       The macro processor is intended as a front end for Ratfor, C, and other
       languages.  Each of the argument files is processed in order; if	 there
       are no arguments, or if an argument is hypen (-), the standard input is
       read.  The processed text is written on the standard output.

       The options and their effects are as follows:

       -e	      Operate interactively.  Interrupts are ignored  and  the
		      output is unbuffered.

       -s	      Enable  line  sync  output for the C preprocessor (#line

       -Bint	      Change the size of the push-back and argument collection
		      buffers from the default of 4,096.

       -Hint	      Change  the size of the symbol table hash array from the
		      default of 199.  The size should be prime.

       -Sint	      Change the size of the call stack from  the  default  of
		      100 slots.  Macros take three slots, and non-macro argu‐
		      ments take one.

       -Tint	      Change the size of the token buffer from the default  of
		      512 bytes.

       To  be  effective,  these  flags	 must appear before any file names and
       before any -D or -U flags:

	      Defines name to val or to null in val's absence.

       -Uname undefines name.

       Macro calls have the following form:
       name(arg1,arg2, . . . , argn)

       The left parenthesis ( ( ) must immediately  follow  the	 name  of  the
       macro.	If a defined macro name is not followed by a left parenthesis,
       it is deemed to have no arguments.

       Leading unquoted blanks, tabs, and new lines are ignored while collect‐
       ing  arguments.	 Potential  macro names consist of alphabetic letters,
       digits, and underscore (_), where the first character is not a digit.

       Left and right single quotes (`´) are used to quote strings.  The value
       of a quoted string is the string stripped of the quotes.

       When a macro name is recognized, its arguments are collected by search‐
       ing for a matching right parenthesis.  Macro evaluation	proceeds  nor‐
       mally  during  the collection of the arguments, and any commas or right
       parentheses which happen to turn up within the value of a  nested  call
       are  as	effective as those in the original input text.	After argument
       collection, the value of the macro is pushed back onto the input stream
       and rescanned.

       The  makes  available the following built-in macros.  They may be rede‐
       fined, but once this is done the original meaning is lost.  Their  val‐
       ues are null unless otherwise stated.

       define		   The	second	argument  is installed as the value of
			   the macro whose name is the first  argument.	  Each
			   occurrence  of  $n in the replacement text, where n
			   is a digit,	is  replaced  by  the  n-th  argument.
			   Argument  0 is the name of the macro; missing argu‐
			   ments are replaced  by  the	null  string.	$#  is
			   replaced by the number of arguments; $∗ is replaced
			   by a list of all the arguments separated by commas;
			   $@  is  like	 $∗, but each argument is quoted (with
			   the current quotes).

       undefine		   removes the definition of the macro	named  in  its

       defn		   returns  the	 quoted definition of its argument(s).
			   It is useful for renaming macros, especially built-

       pushdef		   like define, but saves any previous definition.

       popdef		   removes  current  definition	 of  its  argument(s),
			   exposing the previous one, if any.

       ifdef		   If the first argument is defined, the value is  the
			   second  argument, otherwise the third.  If there is
			   no third argument, the value	 is  null.   The  word
			   unix is predefined on UNIX versions of

       changequote	   Change  quote  characters  to  the first and second
			   arguments.	The  changequote   without   arguments
			   restores the original values (that is, `´).

       changecom	   change  left	 and  right  comment  markers from the
			   default # and new-line.   With  no  arguments,  the
			   comment  mechanism  is  effectively disabled.  With
			   one argument, the left marker becomes the  argument
			   and	the  right  marker becomes new-line.  With two
			   arguments,  both  markers  are  affected.   Comment
			   markers may be up to five characters long.

       divert		   The maintains 10 output streams, numbered 0-9.  The
			   final output is the concatenation of the streams in
			   numerical  order; initially stream 0 is the current
			   stream.  The divert macro changes the current  out‐
			   put	stream to its (digit-string) argument.	Output
			   diverted to a stream other than 0 through 9 is dis‐

       undivert		   causes  immediate  output  of  text from diversions
			   named as arguments, or all diversions if  no	 argu‐
			   ment.   Text	 may be undiverted into another diver‐
			   sion.  Undiverting discards the diverted text.

       divnum		   returns the value of the current output stream.

       dnl		   reads and discards characters up to	and  including
			   the next new line.

       ifelse		   has three or more arguments.	 If the first argument
			   is the same string as the second, then the value is
			   the	third argument.	 If not, and if there are more
			   than four arguments, the process is	repeated  with
			   arguments  4,  5, 6 and 7.  Otherwise, the value is
			   either the fourth string, or, if it is not present,

       incr		   returns the value of its argument incremented by 1.
			   The value of the argument is calculated  by	inter‐
			   preting  an	initial digit-string as a decimal num‐

       decr		   returns the value of its argument decremented by 1.

       eval		   evaluates its argument as an arithmetic expression,
			   using  32-bit  arithmetic.  Operators include +, -,
			   ∗, /, %, ^ (exponentiation), bitwise &, ⎪,  ^,  and
			   ~; relationals; parentheses.	 Octal and hex numbers
			   may be specified as	in  C.	 The  second  argument
			   specifies  the radix for the result; the default is
			   10.	The third argument may be used to specify  the
			   minimum number of digits in the result.

       len		   returns the number of characters in its argument.

       index		   returns  the	 position  in its first argument where
			   the second argument begins (zero origin), or -1  if
			   the second argument does not occur.

       substr		   returns  a  substring  of  its first argument.  The
			   second argument is a zero origin  number  selecting
			   the	first  character; the third argument indicates
			   the length of the substring.	 A missing third argu‐
			   ment	 is  taken to be large enough to extend to the
			   end of the first string.

       shift		   is an unimplemented macro.  Using  shift  generates
			   an error message.

       translit		   transliterates the characters in its first argument
			   from the set given by the second  argument  to  the
			   set	given by the third.  No abbreviations are per‐

       include		   returns the contents of the file named in the argu‐

       sinclude		   is  identical to include, except that it says noth‐
			   ing if the file is inaccessible.

       syscmd		   executes the UNIX command given in the first	 argu‐
			   ment.  No value is returned.

       sysval		   is the return code from the last call to syscmd.

       maketemp		   fills in a string of XXXXX in its argument with the
			   current process id.

       m4exit		   causes immediate exit  from	m4.   Argument	1,  if
			   given, is the exit code; the default is 0.

       m4wrap		   argument  1	will be pushed back at final EOF.  For

       errprint		   prints its argument on the diagnostic output file.

       dumpdef		   prints current names and definitions, for the named
			   items, or for all if no arguments are given.

       traceon		   with	 no arguments, turns on tracing for all macros
			   (including built-ins).  Otherwise, turns on tracing
			   for named macros.

       traceoff		   turns  off trace globally and for any macros speci‐
			   fied.  Macros specifically traced by traceon can be
			   untraced only by specific calls to traceoff.

See Also
       "The  M4	 Macro Processor," ULTRIX Supplementary Documents Vol. II:Pro‐


List of man pages available for Ultrix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net