536 lines
21 KiB
HTML
536 lines
21 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
|
|
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
|
|
<title>m4</title>
|
|
</head>
|
|
<body bgcolor="white">
|
|
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
|
|
</script>
|
|
|
|
<basefont size="3"> <a name="m4"></a> <a name="tag_04_82"></a><!-- m4 -->
|
|
<!--header start-->
|
|
<center><font size="2">The Open Group Base Specifications Issue 6<br>
|
|
IEEE Std 1003.1-2001<br>
|
|
Copyright © 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
|
|
|
|
<!--header end-->
|
|
<hr size="2" noshade>
|
|
<h4><a name="tag_04_82_01"></a>NAME</h4>
|
|
|
|
<blockquote>m4 - macro processor (<b>DEVELOPMENT</b>)</blockquote>
|
|
|
|
<h4><a name="tag_04_82_02"></a>SYNOPSIS</h4>
|
|
|
|
<blockquote class="synopsis">
|
|
<div class="box"><code><tt><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt=
|
|
"[Option Start]" border="0"> m4</tt> <b>[</b><tt>-s</tt><b>][</b><tt>-D</tt>
|
|
<i>name</i><b>[</b><tt>=</tt><i>val</i><b>]]</b><tt>...</tt><b>[</b><tt>-U</tt> <i>name</i><b>]</b><tt>...</tt> <i>file</i><tt>...
|
|
<img src="../images/opt-end.gif" alt="[Option End]" border="0"></tt></code></div>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_03"></a>DESCRIPTION</h4>
|
|
|
|
<blockquote>
|
|
<p>The <i>m4</i> utility is a macro processor that shall read one or more text files, process them according to their included
|
|
macro statements, and write the results to standard output.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_04"></a>OPTIONS</h4>
|
|
|
|
<blockquote>
|
|
<p>The <i>m4</i> utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, <a href=
|
|
"../basedefs/xbd_chap12.html#tag_12_02">Section 12.2, Utility Syntax Guidelines</a>, except that the order of the <b>-D</b> and
|
|
<b>-U</b> options shall be significant.</p>
|
|
|
|
<p>The following options shall be supported:</p>
|
|
|
|
<dl compact>
|
|
<dt><b>-s</b></dt>
|
|
|
|
<dd>Enable line synchronization output for the <a href="../utilities/c99.html"><i>c99</i></a> preprocessor phase (that is,
|
|
<b>#line</b> directives).</dd>
|
|
|
|
<dt><b>-D </b> <i>name</i><b>[</b>=<i>val</i><b>]</b></dt>
|
|
|
|
<dd><br>
|
|
Define <i>name</i> to <i>val</i> or to null if = <i>val</i> is omitted.</dd>
|
|
|
|
<dt><b>-U </b> <i>name</i></dt>
|
|
|
|
<dd>Undefine <i>name</i>.</dd>
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_05"></a>OPERANDS</h4>
|
|
|
|
<blockquote>
|
|
<p>The following operand shall be supported:</p>
|
|
|
|
<dl compact>
|
|
<dt><i>file</i></dt>
|
|
|
|
<dd>A pathname of a text file to be processed. If no <i>file</i> is given, or if it is <tt>'-'</tt> , the standard input shall be
|
|
read.</dd>
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_06"></a>STDIN</h4>
|
|
|
|
<blockquote>
|
|
<p>The standard input shall be a text file that is used if no <i>file</i> operand is given, or if it is <tt>'-'</tt> .</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_07"></a>INPUT FILES</h4>
|
|
|
|
<blockquote>
|
|
<p>The input file named by the <i>file</i> operand shall be a text file.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_08"></a>ENVIRONMENT VARIABLES</h4>
|
|
|
|
<blockquote>
|
|
<p>The following environment variables shall affect the execution of <i>m4</i>:</p>
|
|
|
|
<dl compact>
|
|
<dt><i>LANG</i></dt>
|
|
|
|
<dd>Provide a default value for the internationalization variables that are unset or null. (See the Base Definitions volume of
|
|
IEEE Std 1003.1-2001, <a href="../basedefs/xbd_chap08.html#tag_08_02">Section 8.2, Internationalization Variables</a> for
|
|
the precedence of internationalization variables used to determine the values of locale categories.)</dd>
|
|
|
|
<dt><i>LC_ALL</i></dt>
|
|
|
|
<dd>If set to a non-empty string value, override the values of all the other internationalization variables.</dd>
|
|
|
|
<dt><i>LC_CTYPE</i></dt>
|
|
|
|
<dd>Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as
|
|
opposed to multi-byte characters in arguments and input files).</dd>
|
|
|
|
<dt><i>LC_MESSAGES</i></dt>
|
|
|
|
<dd>Determine the locale that should be used to affect the format and contents of diagnostic messages written to standard
|
|
error.</dd>
|
|
|
|
<dt><i>NLSPATH</i></dt>
|
|
|
|
<dd>Determine the location of message catalogs for the processing of <i>LC_MESSAGES .</i></dd>
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_09"></a>ASYNCHRONOUS EVENTS</h4>
|
|
|
|
<blockquote>
|
|
<p>Default.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_10"></a>STDOUT</h4>
|
|
|
|
<blockquote>
|
|
<p>The standard output shall be the same as the input files, after being processed for macro expansion.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_11"></a>STDERR</h4>
|
|
|
|
<blockquote>
|
|
<p>The standard error shall be used to display strings with the <b>errprint</b> macro, macro tracing enabled by the <b>traceon</b>
|
|
macro, the defined text for macros written by the <b>dumpdef</b> macro, or for diagnostic messages.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_12"></a>OUTPUT FILES</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_13"></a>EXTENDED DESCRIPTION</h4>
|
|
|
|
<blockquote>
|
|
<p>The <i>m4</i> utility shall compare each token from the input against the set of built-in and user-defined macros. If the token
|
|
matches the name of a macro, then the token shall be replaced by the macro's defining text, if any, and rescanned for matching
|
|
macro names. Once no portion of the token matches the name of a macro, it shall be written to standard output. Macros may have
|
|
arguments, in which case the arguments shall be substituted into the defining text before it is rescanned.</p>
|
|
|
|
<p>Macro calls have the form:</p>
|
|
|
|
<pre>
|
|
<i>name</i><tt>(</tt><i>arg1</i><tt>,</tt> <i>arg2</i><tt>, ...,</tt> <i>argn</i><tt>)
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>Macro names shall consist of letters, digits, and underscores, where the first character is not a digit. Tokens not of this form
|
|
shall not be treated as macros.</p>
|
|
|
|
<p>The application shall ensure that the left parenthesis immediately follows the name of the macro. If a token matching the name
|
|
of a macro is not followed by a left parenthesis, it is handled as a use of that macro without arguments.</p>
|
|
|
|
<p>If a macro name is followed by a left parenthesis, its arguments are the comma-separated tokens between the left parenthesis and
|
|
the matching right parenthesis. Unquoted <blank>s and <newline>s preceding each argument shall be ignored. All other
|
|
characters, including trailing <blank>s and <newline>s, are retained. Commas enclosed between left and right
|
|
parenthesis characters do not delimit arguments.</p>
|
|
|
|
<p>Arguments are positionally defined and referenced. The string <tt>"$1"</tt> in the defining text shall be replaced by the first
|
|
argument. Systems shall support at least nine arguments; only the first nine can be referenced, using the strings <tt>"$1"</tt> to
|
|
<tt>"$9"</tt> , inclusive. The string <tt>"$0"</tt> is replaced with the name of the macro. The string <tt>"$#"</tt> is replaced by
|
|
the number of arguments as a string. The string <tt>"$*"</tt> is replaced by a list of all of the arguments, separated by commas.
|
|
The string <tt>"$@"</tt> is replaced by a list of all of the arguments separated by commas, and each argument is quoted using the
|
|
current left and right quoting strings.</p>
|
|
|
|
<p>If fewer arguments are supplied than are in the macro definition, the omitted arguments are taken to be null. It is not an error
|
|
if more arguments are supplied than are in the macro definition.</p>
|
|
|
|
<p>No special meaning is given to any characters enclosed between matching left and right quoting strings, but the quoting strings
|
|
are themselves discarded. By default, the left quoting string consists of a grave accent ( <tt>'`'</tt> ) and the right quoting
|
|
string consists of an acute accent ( <tt>'"</tt> ); see also the <b>changequote</b> macro.</p>
|
|
|
|
<p>Comments are written but not scanned for matching macro names; by default, the begin-comment string consists of the number sign
|
|
character and the end-comment string consists of a <newline>. See also the <b>changecom</b> and <b>dnl</b> macros.</p>
|
|
|
|
<p>The <i>m4</i> utility shall make available the following built-in macros. They can be redefined, but once this is done the
|
|
original meaning is lost. Their values shall be null unless otherwise stated. In the descriptions below, the term <i>defining
|
|
text</i> refers to the value of the macro: the second argument to the <b>define</b> macro, among other things. Except for the first
|
|
argument to the <b>eval</b> macro, all numeric arguments to built-in macros shall be interpreted as decimal values. The string
|
|
values produced as the defining text of the <b>decr</b>, <b>divnum</b>, <b>incr</b>, <b>index</b>, <b>len</b>, and <b>sysval</b>
|
|
built-in macros shall be in the form of a decimal-constant as defined in the C language.</p>
|
|
|
|
<dl compact>
|
|
<dt><b>changecom</b></dt>
|
|
|
|
<dd>The <b>changecom</b> macro shall set the begin-comment and end-comment strings. With no arguments, the comment mechanism shall
|
|
be disabled. With a single argument, that argument shall become the begin-comment string and the <newline> shall become the
|
|
end-comment string. With two arguments, the first argument shall become the begin-comment string and the second argument shall
|
|
become the end-comment string. Systems shall support comment strings of at least five characters.</dd>
|
|
|
|
<dt><b>changequote</b></dt>
|
|
|
|
<dd>The <b>changequote</b> macro shall set the begin-quote and end-quote strings. With no arguments, the quote strings shall be set
|
|
to the default values (that is, <tt>`'</tt>). With a single argument, that argument shall become the begin-quote string and the
|
|
<newline> shall become the end-quote string. With two arguments, the first argument shall become the begin-quote string and
|
|
the second argument shall become the end-quote string. Systems shall support quote strings of at least five characters.</dd>
|
|
|
|
<dt><b>decr</b></dt>
|
|
|
|
<dd>The defining text of the <b>decr</b> macro shall be its first argument decremented by 1. It shall be an error to specify an
|
|
argument containing any non-numeric characters.</dd>
|
|
|
|
<dt><b>define</b></dt>
|
|
|
|
<dd>The second argument shall become the defining text of the macro whose name is the first argument.</dd>
|
|
|
|
<dt><b>defn</b></dt>
|
|
|
|
<dd>The defining text of the <b>defn</b> macro shall be the quoted definition (using the current quoting strings) of its
|
|
arguments.</dd>
|
|
|
|
<dt><b>divert</b></dt>
|
|
|
|
<dd>The <i>m4</i> utility maintains nine temporary buffers, numbered 1 to 9, inclusive. When the last of the input has been
|
|
processed, any output that has been placed in these buffers shall be written to standard output in buffer-numerical order. The
|
|
<b>divert</b> macro shall divert future output to the buffer specified by its argument. Specifying no argument or an argument of 0
|
|
shall resume the normal output process. Output diverted to a stream other than 0 to 9 shall be discarded. It shall be an error to
|
|
specify an argument containing any non-numeric characters.</dd>
|
|
|
|
<dt><b>divnum</b></dt>
|
|
|
|
<dd>The defining text of the <b>divnum</b> macro shall be the number of the current output stream as a string.</dd>
|
|
|
|
<dt><b>dnl</b></dt>
|
|
|
|
<dd>The <b>dnl</b> macro shall cause <i>m4</i> to discard all input characters up to and including the next <newline>.</dd>
|
|
|
|
<dt><b>dumpdef</b></dt>
|
|
|
|
<dd>The <b>dumpdef</b> macro shall write the defined text to standard error for each of the macros specified as arguments, or, if
|
|
no arguments are specified, for all macros.</dd>
|
|
|
|
<dt><b>errprint</b></dt>
|
|
|
|
<dd>The <b>errprint</b> macro shall write its arguments to standard error.</dd>
|
|
|
|
<dt><b>eval</b></dt>
|
|
|
|
<dd>The <b>eval</b> macro shall evaluate its first argument as an arithmetic expression, using 32-bit signed integer arithmetic.
|
|
All of the C-language operators shall be supported, except for:
|
|
|
|
<pre>
|
|
<tt>[]
|
|
->
|
|
++
|
|
--
|
|
(</tt><i>type</i><tt>)
|
|
unary *
|
|
</tt><i>sizeof</i><tt>,
|
|
.
|
|
?:
|
|
unary &
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>and all assignment operators. It shall be an error to specify any of these operators. Precedence and associativity shall be as
|
|
in the ISO C standard. Systems shall support octal and hexadecimal numbers as in the ISO C standard. The second argument,
|
|
if specified, shall set the radix for the result; the default is 10. The third argument, if specified, sets the minimum number of
|
|
digits in the result. It shall be an error to specify the second or third argument containing any non-numeric characters.</p>
|
|
</dd>
|
|
|
|
<dt><b>ifdef</b></dt>
|
|
|
|
<dd>If the first argument to the <b>ifdef</b> macro is defined, the defining text shall be the second argument. Otherwise, the
|
|
defining text shall be the third argument, if specified, or the null string, if not.</dd>
|
|
|
|
<dt><b>ifelse</b></dt>
|
|
|
|
<dd>The <b>ifelse</b> macro takes three or more arguments. If the first two arguments compare as equal strings (after macro
|
|
expansion of both arguments), the defining text shall be the third argument. If the first two arguments do not compare as equal
|
|
strings and there are three arguments, the defining text shall be null. If the first two arguments do not compare as equal strings
|
|
and there are four or five arguments, the defining text shall be the fourth argument. If the first two arguments do not compare as
|
|
equal strings and there are six or more arguments, the first three arguments shall be discarded and processing shall restart with
|
|
the remaining arguments.</dd>
|
|
|
|
<dt><b>include</b></dt>
|
|
|
|
<dd>The defining text for the <b>include</b> macro shall be the contents of the file named by the first argument. It shall be an
|
|
error if the file cannot be read.</dd>
|
|
|
|
<dt><b>incr</b></dt>
|
|
|
|
<dd>The defining text of the <b>incr</b> macro shall be its first argument incremented by 1. It shall be an error to specify an
|
|
argument containing any non-numeric characters.</dd>
|
|
|
|
<dt><b>index</b></dt>
|
|
|
|
<dd>The defining text of the <b>index</b> macro shall be the first character position (as a string) in the first argument where a
|
|
string matching the second argument begins (zero origin), or -1 if the second argument does not occur.</dd>
|
|
|
|
<dt><b>len</b></dt>
|
|
|
|
<dd>The defining text of the <b>len</b> macro shall be the length (as a string) of the first argument.</dd>
|
|
|
|
<dt><b>m4exit</b></dt>
|
|
|
|
<dd>Exit from the <i>m4</i> utility. If the first argument is specified, it is the exit code. The default is zero. It shall be an
|
|
error to specify an argument containing any non-numeric characters.</dd>
|
|
|
|
<dt><b>m4wrap</b></dt>
|
|
|
|
<dd>The first argument shall be processed when EOF is reached. If the <b>m4wrap</b> macro is used multiple times, the arguments
|
|
specified shall be processed in the order in which the <b>m4wrap</b> macros were processed.</dd>
|
|
|
|
<dt><b>maketemp</b></dt>
|
|
|
|
<dd>The defining text shall be the first argument, with any trailing <tt>'X'</tt> characters replaced with the current process ID
|
|
as a string.</dd>
|
|
|
|
<dt><b>popdef</b></dt>
|
|
|
|
<dd>The <b>popdef</b> macro shall delete the current definition of its arguments, replacing that definition with the previous one.
|
|
If there is no previous definition, the macro is undefined.</dd>
|
|
|
|
<dt><b>pushdef</b></dt>
|
|
|
|
<dd>The <b>pushdef</b> macro shall be equivalent to the <b>define</b> macro with the exception that it shall preserve any current
|
|
definition for future retrieval using the <b>popdef</b> macro.</dd>
|
|
|
|
<dt><b>shift</b></dt>
|
|
|
|
<dd>The defining text for the <b>shift</b> macro shall be all of its arguments except for the first one.</dd>
|
|
|
|
<dt><b>sinclude</b></dt>
|
|
|
|
<dd>The <b>sinclude</b> macro shall be equivalent to the <b>include</b> macro, except that it shall not be an error if the file is
|
|
inaccessible.</dd>
|
|
|
|
<dt><b>substr</b></dt>
|
|
|
|
<dd>The defining text for the <b>substr</b> macro shall be the substring of the first argument beginning at the zero-offset
|
|
character position specified by the second argument. The third argument, if specified, shall be the number of characters to select;
|
|
if not specified, the characters from the starting point to the end of the first argument shall become the defining text. It shall
|
|
not be an error to specify a starting point beyond the end of the first argument and the defining text shall be null. It shall be
|
|
an error to specify an argument containing any non-numeric characters.</dd>
|
|
|
|
<dt><b>syscmd</b></dt>
|
|
|
|
<dd>The <b>syscmd</b> macro shall interpret its first argument as a shell command line. The defining text shall be the string
|
|
result of that command. No output redirection shall be performed by the <i>m4</i> utility. The exit status value from the command
|
|
can be retrieved using the <b>sysval</b> macro.</dd>
|
|
|
|
<dt><b>sysval</b></dt>
|
|
|
|
<dd>The defining text of the <b>sysval</b> macro shall be the exit value of the utility last invoked by the <b>syscmd</b> macro (as
|
|
a string).</dd>
|
|
|
|
<dt><b>traceon</b></dt>
|
|
|
|
<dd>The <b>traceon</b> macro shall enable tracing for the macros specified as arguments, or, if no arguments are specified, for all
|
|
macros. The trace output shall be written to standard error in an unspecified format.</dd>
|
|
|
|
<dt><b>traceoff</b></dt>
|
|
|
|
<dd>The <b>traceoff</b> macro shall disable tracing for the macros specified as arguments, or, if no arguments are specified, for
|
|
all macros.</dd>
|
|
|
|
<dt><b>translit</b></dt>
|
|
|
|
<dd>The defining text of the <b>translit</b> macro shall be the first argument with every character that occurs in the second
|
|
argument replaced with the corresponding character from the third argument.</dd>
|
|
|
|
<dt><b>undefine</b></dt>
|
|
|
|
<dd>The <b>undefine</b> macro shall delete all definitions (including those preserved using the <b>pushdef</b> macro) of the macros
|
|
named by its arguments.</dd>
|
|
|
|
<dt><b>undivert</b></dt>
|
|
|
|
<dd>The <b>undivert</b> macro shall cause immediate output of any text in temporary buffers named as arguments, or all temporary
|
|
buffers if no arguments are specified. Buffers can be undiverted into other temporary buffers. Undiverting shall discard the
|
|
contents of the temporary buffer. It shall be an error to specify an argument containing any non-numeric characters.</dd>
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_14"></a>EXIT STATUS</h4>
|
|
|
|
<blockquote>
|
|
<p>The following exit values shall be returned:</p>
|
|
|
|
<dl compact>
|
|
<dt> 0</dt>
|
|
|
|
<dd>Successful completion.</dd>
|
|
|
|
<dt>>0</dt>
|
|
|
|
<dd>An error occurred</dd>
|
|
</dl>
|
|
|
|
<p>If the <b>m4exit</b> macro is used, the exit value can be specified by the input file.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_15"></a>CONSEQUENCES OF ERRORS</h4>
|
|
|
|
<blockquote>
|
|
<p>Default.</p>
|
|
</blockquote>
|
|
|
|
<hr>
|
|
<div class="box"><em>The following sections are informative.</em></div>
|
|
|
|
<h4><a name="tag_04_82_16"></a>APPLICATION USAGE</h4>
|
|
|
|
<blockquote>
|
|
<p>The <b>defn</b> macro is useful for renaming macros, especially built-ins.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_17"></a>EXAMPLES</h4>
|
|
|
|
<blockquote>
|
|
<p>An example of a single <i>m4</i> input file capable of generating two output files follows. The file <b>file1.m4</b> could
|
|
contain lines such as:</p>
|
|
|
|
<pre>
|
|
<tt>if(VER, 1,</tt> <i>do_something</i><tt>)
|
|
if(VER, 2,</tt> <i>do_something</i><tt>)
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>The makefile for the program might include:</p>
|
|
|
|
<pre>
|
|
<tt>file1.1.c : file1.m4
|
|
m4 -D VER=1 file1.m4 > file1.1.c
|
|
...
|
|
file1.2.c : file1.m4
|
|
m4 -D VER=2 file1.m4 > file1.2.c
|
|
...
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>The <b>-U</b> option can be used to undefine <b>VER</b>. If <b>file1.m4</b> contains:</p>
|
|
|
|
<pre>
|
|
<tt>if(VER, 1, </tt> <i>do_something</i><tt>)
|
|
if(VER, 2, </tt> <i>do_something</i><tt>)
|
|
ifndef(VER,</tt> <i>do_something</i><tt>)
|
|
</tt>
|
|
</pre>
|
|
|
|
<p>then the makefile would contain:</p>
|
|
|
|
<pre>
|
|
<tt>file1.0.c : file1.m4
|
|
m4 -U VER file1.m4 > file1.0.c
|
|
...
|
|
file1.1.c : file1.m4
|
|
m4 -D VER=1 file1.m4 > file1.1.c
|
|
...
|
|
file1.2.c : file1.m4
|
|
m4 -D VER=2 file1.m4 > file1.2.c
|
|
...
|
|
</tt>
|
|
</pre>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_18"></a>RATIONALE</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_19"></a>FUTURE DIRECTIONS</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_20"></a>SEE ALSO</h4>
|
|
|
|
<blockquote>
|
|
<p><a href="c99.html"><i>c99</i></a></p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_21"></a>CHANGE HISTORY</h4>
|
|
|
|
<blockquote>
|
|
<p>First released in Issue 2.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_22"></a>Issue 5</h4>
|
|
|
|
<blockquote>
|
|
<p>The phrase "the defined text for macros written by the <b>dumpdef</b> macro" is added to the description of STDERR, and the
|
|
description of <b>dumpdef</b> is updated to indicate that output is written to standard error. The description of <b>eval</b> is
|
|
updated to indicate that the list of excluded C operators excludes unary <tt>'&'</tt> and <tt>'.'</tt> . In the description of
|
|
<b>ifdef</b>, the phrase "and it is not defined to be zero" is deleted.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_82_23"></a>Issue 6</h4>
|
|
|
|
<blockquote>
|
|
<p>In the EXTENDED DESCRIPTION, the <b>eval</b> text is updated to include a <tt>'&'</tt> character in the excepted list.</p>
|
|
|
|
<p>The EXTENDED DESCRIPTION of <b>divert</b> is updated to clarify that there are only nine diversion buffers.</p>
|
|
|
|
<p>The normative text is reworded to avoid use of the term "must" for application requirements.</p>
|
|
|
|
<p>The Open Group Base Resolution bwg2000-006 is applied.</p>
|
|
</blockquote>
|
|
|
|
<div class="box"><em>End of informative text.</em></div>
|
|
|
|
<hr>
|
|
<hr size="2" noshade>
|
|
<center><font size="2"><!--footer start-->
|
|
UNIX ® is a registered Trademark of The Open Group.<br>
|
|
POSIX ® is a registered Trademark of The IEEE.<br>
|
|
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
|
|
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
|
|
]</font></center>
|
|
|
|
<!--footer end-->
|
|
<hr size="2" noshade>
|
|
</body>
|
|
</html>
|
|
|