Files
2024-02-19 00:21:47 -05:00

266 lines
9.9 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>unexpand</title>
</head>
<body bgcolor="white">
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
</script>
<basefont size="3"> <a name="unexpand"></a> <a name="tag_04_156"></a><!-- unexpand -->
<!--header start-->
<center><font size="2">The Open Group Base Specifications Issue 6<br>
IEEE Std 1003.1-2001<br>
Copyright &copy; 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
<!--header end-->
<hr size="2" noshade>
<h4><a name="tag_04_156_01"></a>NAME</h4>
<blockquote>unexpand - convert spaces to tabs</blockquote>
<h4><a name="tag_04_156_02"></a>SYNOPSIS</h4>
<blockquote class="synopsis">
<div class="box"><code><tt><sup>[<a href="javascript:open_code('UP')">UP</a>]</sup> <img src="../images/opt-start.gif" alt=
"[Option Start]" border="0"> unexpand</tt> <b>[</b> <tt>-a| -t</tt> <i>tablist</i><b>][</b><i>file</i><tt>...</tt><b>]</b><tt><img
src="../images/opt-end.gif" alt="[Option End]" border="0"></tt></code></div>
</blockquote>
<h4><a name="tag_04_156_03"></a>DESCRIPTION</h4>
<blockquote>
<p>The <i>unexpand</i> utility shall copy files or standard input to standard output, converting &lt;blank&gt;s at the beginning of
each line into the maximum number of &lt;tab&gt;s followed by the minimum number of &lt;space&gt;s needed to fill the same column
positions originally filled by the translated &lt;blank&gt;s. By default, tabstops shall be set at every eighth column position.
Each &lt;backspace&gt; shall be copied to the output, and shall cause the column position count for tab calculations to be
decremented; the count shall never be decremented to a value less than one.</p>
</blockquote>
<h4><a name="tag_04_156_04"></a>OPTIONS</h4>
<blockquote>
<p>The <i>unexpand</i> utility shall conform to the Base Definitions volume of IEEE&nbsp;Std&nbsp;1003.1-2001, <a href=
"../basedefs/xbd_chap12.html#tag_12_02">Section 12.2, Utility Syntax Guidelines</a>.</p>
<p>The following options shall be supported:</p>
<dl compact>
<dt><b>-a</b></dt>
<dd>In addition to translating &lt;blank&gt;s at the beginning of each line, translate all sequences of two or more &lt;blank&gt;s
immediately preceding a tab stop to the maximum number of &lt;tab&gt;s followed by the minimum number of &lt;space&gt;s needed to
fill the same column positions originally filled by the translated &lt;blank&gt;s.</dd>
<dt><b>-t&nbsp;</b> <i>tablist</i></dt>
<dd>Specify the tab stops. The application shall ensure that the <i>tablist</i> option-argument is a single argument consisting of
a single positive decimal integer or multiple positive decimal integers, separated by &lt;blank&gt;s or commas, in ascending order.
If a single number is given, tabs shall be set <i>tablist</i> column positions apart instead of the default 8. If multiple numbers
are given, the tabs shall be set at those specific column positions.
<p>The application shall ensure that each tab-stop position <i>N</i> is an integer value greater than zero, and the list shall be
in strictly ascending order. This is taken to mean that, from the start of a line of output, tabbing to position <i>N</i> shall
cause the next character output to be in the ( <i>N</i>+1)th column position on that line. When the <b>-t</b> option is not
specified, the default shall be the equivalent of specifying <b>-t&nbsp;8</b> (except for the interaction with <b>-a</b>, described
below).</p>
<p>No &lt;space&gt;-to- &lt;tab&gt; conversions shall occur for characters at positions beyond the last of those specified in a
multiple tab-stop list.</p>
<p>When <b>-t</b> is specified, the presence or absence of the <b>-a</b> option shall be ignored; conversion shall not be limited
to the processing of leading &lt;blank&gt;s.</p>
</dd>
</dl>
</blockquote>
<h4><a name="tag_04_156_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 used as input.</dd>
</dl>
</blockquote>
<h4><a name="tag_04_156_06"></a>STDIN</h4>
<blockquote>
<p>See the INPUT FILES section.</p>
</blockquote>
<h4><a name="tag_04_156_07"></a>INPUT FILES</h4>
<blockquote>
<p>The input files shall be text files.</p>
</blockquote>
<h4><a name="tag_04_156_08"></a>ENVIRONMENT VARIABLES</h4>
<blockquote>
<p>The following environment variables shall affect the execution of <i>unexpand</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&nbsp;Std&nbsp;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), the processing of &lt;tab&gt;s and &lt;space&gt;s, and for the
determination of the width in column positions each character would occupy on an output device.</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><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
Determine the location of message catalogs for the processing of <i>LC_MESSAGES .</i> <img src="../images/opt-end.gif" alt=
"[Option End]" border="0"></dd>
</dl>
</blockquote>
<h4><a name="tag_04_156_09"></a>ASYNCHRONOUS EVENTS</h4>
<blockquote>
<p>Default.</p>
</blockquote>
<h4><a name="tag_04_156_10"></a>STDOUT</h4>
<blockquote>
<p>The standard output shall be equivalent to the input files with the specified &lt;space&gt;-to- &lt;tab&gt; conversions.</p>
</blockquote>
<h4><a name="tag_04_156_11"></a>STDERR</h4>
<blockquote>
<p>The standard error shall be used only for diagnostic messages.</p>
</blockquote>
<h4><a name="tag_04_156_12"></a>OUTPUT FILES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_156_13"></a>EXTENDED DESCRIPTION</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_156_14"></a>EXIT STATUS</h4>
<blockquote>
<p>The following exit values shall be returned:</p>
<dl compact>
<dt>&nbsp;0</dt>
<dd>Successful completion.</dd>
<dt>&gt;0</dt>
<dd>An error occurred.</dd>
</dl>
</blockquote>
<h4><a name="tag_04_156_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_156_16"></a>APPLICATION USAGE</h4>
<blockquote>
<p>One non-intuitive aspect of <i>unexpand</i> is its restriction to leading spaces when neither <b>-a</b> nor <b>-t</b> is
specified. Users who always want to convert all spaces in a file can easily alias <i>unexpand</i> to use the <b>-a</b> or
<b>-t&nbsp;8</b> option.</p>
</blockquote>
<h4><a name="tag_04_156_17"></a>EXAMPLES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_156_18"></a>RATIONALE</h4>
<blockquote>
<p>On several occasions, consideration was given to adding a <b>-t</b> option to the <i>unexpand</i> utility to complement the
<b>-t</b> in <a href="../utilities/expand.html"><i>expand</i></a> (see <a href="expand.html"><i>expand</i></a> ). The historical
intent of <i>unexpand</i> was to translate multiple &lt;blank&gt;s into tab stops, where tab stops were a multiple of eight column
positions on most UNIX systems. An early proposal omitted <b>-t</b> because it seemed outside the scope of the User Portability
Utilities option; it was not described in any of the base documents. However, hard-coding tab stops every eight columns was not
suitable for the international community and broke historical precedents for some vendors in the FORTRAN community, so <b>-t</b>
was restored in conjunction with the list of valid extension categories considered by the standard developers. Thus,
<i>unexpand</i> is now the logical converse of <a href="../utilities/expand.html"><i>expand</i></a>.</p>
</blockquote>
<h4><a name="tag_04_156_19"></a>FUTURE DIRECTIONS</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_156_20"></a>SEE ALSO</h4>
<blockquote>
<p><a href="expand.html"><i>expand</i></a> , <a href="tabs.html"><i>tabs</i></a></p>
</blockquote>
<h4><a name="tag_04_156_21"></a>CHANGE HISTORY</h4>
<blockquote>
<p>First released in Issue 4.</p>
</blockquote>
<h4><a name="tag_04_156_22"></a>Issue 6</h4>
<blockquote>
<p>This utility is marked as part of the User Portability Utilities option.</p>
<p>The definition of the <i>LC_CTYPE</i> environment variable is changed to align with the IEEE&nbsp;P1003.2b draft standard.</p>
<p>The normative text is reworded to avoid use of the term &quot;must&quot; for application requirements.</p>
</blockquote>
<div class="box"><em>End of informative text.</em></div>
<hr>
<hr size="2" noshade>
<center><font size="2"><!--footer start-->
UNIX &reg; is a registered Trademark of The Open Group.<br>
POSIX &reg; 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>