<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=32v_1m_m4</id>
		<title>32v 1m m4 - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://gunkies.org/index.php?action=history&amp;feed=atom&amp;title=32v_1m_m4"/>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=32v_1m_m4&amp;action=history"/>
		<updated>2026-05-11T15:22:25Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.1</generator>

	<entry>
		<id>https://gunkies.org/w/index.php?title=32v_1m_m4&amp;diff=6987&amp;oldid=prev</id>
		<title>Neozeed: New page: M4(1)               UNIX Programmer's Manual                M4(1)    == NAME ==      m4 - macro processor  == SYNOPSIS ==      m4 [ files ]  == DESCRIPTION ==      _M_4 is a macro processo...</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=32v_1m_m4&amp;diff=6987&amp;oldid=prev"/>
				<updated>2009-10-26T14:44:08Z</updated>
		
		<summary type="html">&lt;p&gt;New page: M4(1)               UNIX Programmer&amp;#039;s Manual                M4(1)    == NAME ==      m4 - macro processor  == SYNOPSIS ==      m4 [ files ]  == DESCRIPTION ==      _M_4 is a macro processo...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;M4(1)               UNIX Programmer's Manual                M4(1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NAME ==&lt;br /&gt;
     m4 - macro processor&lt;br /&gt;
&lt;br /&gt;
== SYNOPSIS ==&lt;br /&gt;
     m4 [ files ]&lt;br /&gt;
&lt;br /&gt;
== DESCRIPTION ==&lt;br /&gt;
     _M_4 is a macro processor intended as a front end for Ratfor,&lt;br /&gt;
     C, and other languages.  Each of the argument files is pro-&lt;br /&gt;
     cessed in order; if there are no arguments, or if an argu-&lt;br /&gt;
     ment is `-', the standard input is read.  The processed text&lt;br /&gt;
     is written on the standard output.&lt;br /&gt;
&lt;br /&gt;
     Macro calls have the form&lt;br /&gt;
&lt;br /&gt;
          name(arg1,arg2, . . . , argn)&lt;br /&gt;
&lt;br /&gt;
     The `(' must immediately follow the name of the macro.  If a&lt;br /&gt;
     defined macro name is not followed by a `(', it is deemed to&lt;br /&gt;
     have no arguments.  Leading unquoted blanks, tabs, and new-&lt;br /&gt;
     lines are ignored while collecting arguments.  Potential&lt;br /&gt;
     macro names consist of alphabetic letters, digits, and&lt;br /&gt;
     underscore `_', where the first character is not a digit.&lt;br /&gt;
&lt;br /&gt;
     Left and right single quotes (`') are used to quote strings.&lt;br /&gt;
     The value of a quoted string is the string stripped of the&lt;br /&gt;
     quotes.&lt;br /&gt;
&lt;br /&gt;
     When a macro name is recognized, its arguments are collected&lt;br /&gt;
     by searching for a matching right parenthesis.  Macro&lt;br /&gt;
     evaluation proceeds normally during the collection of the&lt;br /&gt;
     arguments, and any commas or right parentheses which happen&lt;br /&gt;
     to turn up within the value of a nested call are as effec-&lt;br /&gt;
     tive as those in the original input text.  After argument&lt;br /&gt;
     collection, the value of the macro is pushed back onto the&lt;br /&gt;
     input stream and rescanned.&lt;br /&gt;
&lt;br /&gt;
     _M_4 makes available the following built-in macros.  They may&lt;br /&gt;
     be redefined, but once this is done the original meaning is&lt;br /&gt;
     lost.  Their values are null unless otherwise stated.&lt;br /&gt;
&lt;br /&gt;
     define    The second argument is installed as the value of&lt;br /&gt;
               the macro whose name is the first argument.  Each&lt;br /&gt;
               occurrence of $_n in the replacement text, where _n&lt;br /&gt;
               is a digit, is replaced by the _n-th argument.&lt;br /&gt;
               Argument 0 is the name of the macro; missing argu-&lt;br /&gt;
               ments are replaced by the null string.&lt;br /&gt;
&lt;br /&gt;
     undefine  removes the definition of the macro named in its&lt;br /&gt;
               argument.&lt;br /&gt;
&lt;br /&gt;
     ifdef     If the first argument is defined, the value is the&lt;br /&gt;
               second argument, otherwise the third.  If there is&lt;br /&gt;
               no third argument, the value is null.  The word&lt;br /&gt;
               _u_n_i_x is predefined on UNIX versions of _m_4.&lt;br /&gt;
&lt;br /&gt;
     changequote&lt;br /&gt;
               Change quote characters to the first and second&lt;br /&gt;
               arguments.  _C_h_a_n_g_e_q_u_o_t_e without arguments restores&lt;br /&gt;
               the original values (i.e., `').&lt;br /&gt;
&lt;br /&gt;
     divert    _M_4 maintains 10 output streams, numbered 0-9.  The&lt;br /&gt;
               final output is the concatenation of the streams&lt;br /&gt;
               in numerical order; initially stream 0 is the&lt;br /&gt;
               current stream.  The _d_i_v_e_r_t macro changes the&lt;br /&gt;
               current output stream to its (digit-string) argu-&lt;br /&gt;
               ment.  Output diverted to a stream other than 0&lt;br /&gt;
               through 9 is discarded.&lt;br /&gt;
&lt;br /&gt;
     undivert  causes immediate output of text from diversions&lt;br /&gt;
               named as arguments, or all diversions if no argu-&lt;br /&gt;
               ment.  Text may be undiverted into another diver-&lt;br /&gt;
               sion.  Undiverting discards the diverted text.&lt;br /&gt;
&lt;br /&gt;
     divnum    returns the value of the current output stream.&lt;br /&gt;
&lt;br /&gt;
     dnl       reads and discards characters up to and including&lt;br /&gt;
               the next newline.&lt;br /&gt;
&lt;br /&gt;
     ifelse    has three or more arguments.  If the first argu-&lt;br /&gt;
               ment is the same string as the second, then the&lt;br /&gt;
               value is the third argument.  If not, and if there&lt;br /&gt;
               are more than four arguments, the process is&lt;br /&gt;
               repeated with arguments 4, 5, 6 and 7.  Otherwise,&lt;br /&gt;
               the value is either the fourth string, or, if it&lt;br /&gt;
               is not present, null.&lt;br /&gt;
&lt;br /&gt;
     incr      returns the value of its argument incremented by&lt;br /&gt;
               1.  The value of the argument is calculated by&lt;br /&gt;
               interpreting an initial digit-string as a decimal&lt;br /&gt;
               number.&lt;br /&gt;
&lt;br /&gt;
     eval      evaluates its argument as an arithmetic expres-&lt;br /&gt;
               sion, using 32-bit arithmetic.  Operators include&lt;br /&gt;
               +, -, *, /, %, ^ (exponentiation); relationals;&lt;br /&gt;
               parentheses.&lt;br /&gt;
&lt;br /&gt;
     len       returns the number of characters in its argument.&lt;br /&gt;
&lt;br /&gt;
     index     returns the position in its first argument where&lt;br /&gt;
               the second argument begins (zero origin), or -1 if&lt;br /&gt;
               the second argument does not occur.&lt;br /&gt;
&lt;br /&gt;
     substr    returns a substring of its first argument.  The&lt;br /&gt;
               second argument is a zero origin number selecting&lt;br /&gt;
               the first character; the third argument indicates&lt;br /&gt;
               the length of the substring.  A missing third&lt;br /&gt;
               argument is taken to be large enough to extend to&lt;br /&gt;
               the end of the first string.&lt;br /&gt;
&lt;br /&gt;
     translit  transliterates the characters in its first argu-&lt;br /&gt;
               ment from the set given by the second argument to&lt;br /&gt;
               the set given by the third.  No abbreviations are&lt;br /&gt;
               permitted.&lt;br /&gt;
&lt;br /&gt;
     include   returns the contents of the file named in the&lt;br /&gt;
               argument.&lt;br /&gt;
&lt;br /&gt;
     sinclude  is identical to _i_n_c_l_u_d_e, except that it says noth-&lt;br /&gt;
               ing if the file is inaccessible.&lt;br /&gt;
&lt;br /&gt;
     syscmd    executes the UNIX command given in the first argu-&lt;br /&gt;
               ment.  No value is returned.&lt;br /&gt;
&lt;br /&gt;
     maketemp  fills in a string of XXXXX in its argument with&lt;br /&gt;
               the current process id.&lt;br /&gt;
&lt;br /&gt;
     errprint  prints its argument on the diagnostic output file.&lt;br /&gt;
&lt;br /&gt;
     dumpdef   prints current names and definitions, for the&lt;br /&gt;
               named items, or for all if no arguments are given.&lt;br /&gt;
&lt;br /&gt;
== SEE ALSO ==&lt;br /&gt;
     B. W. Kernighan and D. M. Ritchie, _T_h_e _M_4 _M_a_c_r_o _P_r_o_c_e_s_s_o_r&lt;br /&gt;
&lt;br /&gt;
[[Category:32v man section 1]]&lt;/div&gt;</summary>
		<author><name>Neozeed</name></author>	</entry>

	</feed>