2004-11-03 13:51:07 +00:00
|
|
|
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
2007-06-20 22:33:04 +00:00
|
|
|
.TH "UNEXPAND" 1P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" unexpand
|
2007-09-20 06:03:25 +00:00
|
|
|
.SH PROLOG
|
|
|
|
This manual page is part of the POSIX Programmer's Manual.
|
|
|
|
The Linux implementation of this interface may differ (consult
|
|
|
|
the corresponding Linux manual page for details of Linux behavior),
|
|
|
|
or the interface may not be implemented on Linux.
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
|
|
|
unexpand \- convert spaces to tabs
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.LP
|
|
|
|
\fBunexpand\fP \fB[\fP \fB-a| -t\fP \fItablist\fP\fB][\fP\fIfile\fP\fB...\fP\fB]\fP\fB\fP
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.LP
|
|
|
|
The \fIunexpand\fP utility shall copy files or standard input to standard
|
|
|
|
output, converting <blank>s at the beginning of
|
|
|
|
each line into the maximum number of <tab>s followed by the minimum
|
|
|
|
number of <space>s needed to fill the same column
|
|
|
|
positions originally filled by the translated <blank>s. By default,
|
|
|
|
tabstops shall be set at every eighth column position.
|
|
|
|
Each <backspace> 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.
|
|
|
|
.SH OPTIONS
|
|
|
|
.LP
|
|
|
|
The \fIunexpand\fP utility shall conform to the Base Definitions volume
|
|
|
|
of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines.
|
|
|
|
.LP
|
|
|
|
The following options shall be supported:
|
|
|
|
.TP 7
|
|
|
|
\fB-a\fP
|
|
|
|
In addition to translating <blank>s at the beginning of each line,
|
|
|
|
translate all sequences of two or more <blank>s
|
|
|
|
immediately preceding a tab stop to the maximum number of <tab>s followed
|
|
|
|
by the minimum number of <space>s needed to
|
|
|
|
fill the same column positions originally filled by the translated
|
|
|
|
<blank>s.
|
|
|
|
.TP 7
|
|
|
|
\fB-t\ \fP \fItablist\fP
|
|
|
|
Specify the tab stops. The application shall ensure that the \fItablist\fP
|
|
|
|
option-argument is a single argument consisting of
|
|
|
|
a single positive decimal integer or multiple positive decimal integers,
|
|
|
|
separated by <blank>s or commas, in ascending order.
|
|
|
|
If a single number is given, tabs shall be set \fItablist\fP column
|
|
|
|
positions apart instead of the default 8. If multiple numbers
|
|
|
|
are given, the tabs shall be set at those specific column positions.
|
|
|
|
.LP
|
|
|
|
The application shall ensure that each tab-stop position \fIN\fP 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 \fIN\fP shall
|
|
|
|
cause the next character output to be in the ( \fIN\fP+1)th column
|
|
|
|
position on that line. When the \fB-t\fP option is not
|
|
|
|
specified, the default shall be the equivalent of specifying \fB-t\ 8\fP
|
|
|
|
(except for the interaction with \fB-a\fP, described
|
|
|
|
below).
|
|
|
|
.LP
|
|
|
|
No <space>-to- <tab> conversions shall occur for characters at positions
|
|
|
|
beyond the last of those specified in a
|
|
|
|
multiple tab-stop list.
|
|
|
|
.LP
|
|
|
|
When \fB-t\fP is specified, the presence or absence of the \fB-a\fP
|
|
|
|
option shall be ignored; conversion shall not be limited
|
|
|
|
to the processing of leading <blank>s.
|
|
|
|
.sp
|
|
|
|
.SH OPERANDS
|
|
|
|
.LP
|
|
|
|
The following operand shall be supported:
|
|
|
|
.TP 7
|
|
|
|
\fIfile\fP
|
|
|
|
A pathname of a text file to be used as input.
|
|
|
|
.sp
|
|
|
|
.SH STDIN
|
|
|
|
.LP
|
|
|
|
See the INPUT FILES section.
|
|
|
|
.SH INPUT FILES
|
|
|
|
.LP
|
|
|
|
The input files shall be text files.
|
|
|
|
.SH ENVIRONMENT VARIABLES
|
|
|
|
.LP
|
|
|
|
The following environment variables shall affect the execution of
|
|
|
|
\fIunexpand\fP:
|
|
|
|
.TP 7
|
|
|
|
\fILANG\fP
|
|
|
|
Provide a default value for the internationalization variables that
|
|
|
|
are unset or null. (See the Base Definitions volume of
|
|
|
|
IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables
|
|
|
|
for
|
|
|
|
the precedence of internationalization variables used to determine
|
|
|
|
the values of locale categories.)
|
|
|
|
.TP 7
|
|
|
|
\fILC_ALL\fP
|
|
|
|
If set to a non-empty string value, override the values of all the
|
|
|
|
other internationalization variables.
|
|
|
|
.TP 7
|
|
|
|
\fILC_CTYPE\fP
|
|
|
|
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 <tab>s and <space>s, and for the
|
|
|
|
determination of the width in column positions each character would
|
|
|
|
occupy on an output device.
|
|
|
|
.TP 7
|
|
|
|
\fILC_MESSAGES\fP
|
|
|
|
Determine the locale that should be used to affect the format and
|
|
|
|
contents of diagnostic messages written to standard
|
|
|
|
error.
|
|
|
|
.TP 7
|
|
|
|
\fINLSPATH\fP
|
|
|
|
Determine the location of message catalogs for the processing of \fILC_MESSAGES
|
|
|
|
\&.\fP
|
|
|
|
.sp
|
|
|
|
.SH ASYNCHRONOUS EVENTS
|
|
|
|
.LP
|
|
|
|
Default.
|
|
|
|
.SH STDOUT
|
|
|
|
.LP
|
|
|
|
The standard output shall be equivalent to the input files with the
|
|
|
|
specified <space>-to- <tab> conversions.
|
|
|
|
.SH STDERR
|
|
|
|
.LP
|
|
|
|
The standard error shall be used only for diagnostic messages.
|
|
|
|
.SH OUTPUT FILES
|
|
|
|
.LP
|
|
|
|
None.
|
|
|
|
.SH EXTENDED DESCRIPTION
|
|
|
|
.LP
|
|
|
|
None.
|
|
|
|
.SH EXIT STATUS
|
|
|
|
.LP
|
|
|
|
The following exit values shall be returned:
|
|
|
|
.TP 7
|
|
|
|
\ 0
|
|
|
|
Successful completion.
|
|
|
|
.TP 7
|
|
|
|
>0
|
|
|
|
An error occurred.
|
|
|
|
.sp
|
|
|
|
.SH CONSEQUENCES OF ERRORS
|
|
|
|
.LP
|
|
|
|
Default.
|
|
|
|
.LP
|
|
|
|
\fIThe following sections are informative.\fP
|
|
|
|
.SH APPLICATION USAGE
|
|
|
|
.LP
|
|
|
|
One non-intuitive aspect of \fIunexpand\fP is its restriction to leading
|
|
|
|
spaces when neither \fB-a\fP nor \fB-t\fP is
|
|
|
|
specified. Users who always want to convert all spaces in a file can
|
|
|
|
easily alias \fIunexpand\fP to use the \fB-a\fP or
|
|
|
|
\fB-t\ 8\fP option.
|
|
|
|
.SH EXAMPLES
|
|
|
|
.LP
|
|
|
|
None.
|
|
|
|
.SH RATIONALE
|
|
|
|
.LP
|
|
|
|
On several occasions, consideration was given to adding a \fB-t\fP
|
|
|
|
option to the \fIunexpand\fP utility to complement the
|
|
|
|
\fB-t\fP in \fIexpand\fP (see \fIexpand\fP ). The historical
|
|
|
|
intent of \fIunexpand\fP was to translate multiple <blank>s into tab
|
|
|
|
stops, where tab stops were a multiple of eight column
|
|
|
|
positions on most UNIX systems. An early proposal omitted \fB-t\fP
|
|
|
|
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 \fB-t\fP
|
|
|
|
was restored in conjunction with the list of valid extension categories
|
|
|
|
considered by the standard developers. Thus,
|
|
|
|
\fIunexpand\fP is now the logical converse of \fIexpand\fP.
|
|
|
|
.SH FUTURE DIRECTIONS
|
|
|
|
.LP
|
|
|
|
None.
|
|
|
|
.SH SEE ALSO
|
|
|
|
.LP
|
2007-09-20 06:36:16 +00:00
|
|
|
\fIexpand\fP, \fItabs\fP
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH COPYRIGHT
|
|
|
|
Portions of this text are reprinted and reproduced in electronic form
|
|
|
|
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
|
|
|
|
-- Portable Operating System Interface (POSIX), The Open Group Base
|
|
|
|
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
|
|
|
|
Electrical and Electronics Engineers, Inc and The Open Group. In the
|
|
|
|
event of any discrepancy between this version and the original IEEE and
|
|
|
|
The Open Group Standard, the original IEEE and The Open Group Standard
|
|
|
|
is the referee document. The original Standard can be obtained online at
|
|
|
|
http://www.opengroup.org/unix/online.html .
|