xref: /openbsd/usr.bin/fold/fold.1 (revision dda28197)
1.\"	$OpenBSD: fold.1,v 1.19 2016/10/24 13:46:58 schwarze Exp $
2.\"	$NetBSD: fold.1,v 1.5 1995/09/01 01:42:42 jtc Exp $
3.\"
4.\" Copyright (c) 1980, 1993
5.\"	The Regents of the University of California.  All rights reserved.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\" 3. Neither the name of the University nor the names of its contributors
16.\"    may be used to endorse or promote products derived from this software
17.\"    without specific prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.\"	@(#)fold.1	8.1 (Berkeley) 6/6/93
32.\"
33.Dd $Mdocdate: October 24 2016 $
34.Dt FOLD 1
35.Os
36.Sh NAME
37.Nm fold
38.Nd fold long lines for finite width output device
39.Sh SYNOPSIS
40.Nm fold
41.Op Fl bs
42.Op Fl w Ar width
43.Op Ar
44.Sh DESCRIPTION
45.Nm
46is a filter which folds the contents of the specified files,
47or the standard input if no files are specified,
48breaking the lines to have a maximum of 80 display columns.
49.Pp
50The options are as follows:
51.Bl -tag -width 8n
52.It Fl b
53Count
54.Ar width
55in bytes rather than column positions.
56.It Fl s
57If an output line would be broken after a non-blank character but
58contains at least one blank character, break the line earlier,
59after the last blank character.
60This is useful to avoid line breaks in the middle of words, if
61possible.
62.It Fl w Ar width
63Specifies a line width to use instead of the default of 80.
64.El
65.Pp
66Unless
67.Fl b
68is specified, a backspace character decrements the column position
69by one, a carriage return resets the column position to zero, and
70a tab advances the column position to the next multiple of eight.
71.Sh ENVIRONMENT
72.Bl -tag -width 8n
73.It Ev LC_CTYPE
74The character encoding
75.Xr locale 1 .
76It decides which byte sequences form characters
77and what their display width is.
78If unset or set to
79.Qq C ,
80.Qq POSIX ,
81or an unsupported value, each byte except backspace, tab, newline,
82and carriage return is treated as a character of display width 1.
83.El
84.Sh EXIT STATUS
85.Ex -std fold
86.Sh SEE ALSO
87.Xr expand 1 ,
88.Xr fmt 1
89.Sh STANDARDS
90The
91.Nm
92utility is compliant with the
93.St -p1003.1-2008
94specification.
95.Sh HISTORY
96The
97.Nm
98utility first appeared in
99.Bx 1 .
100It was rewritten for
101.Bx 4.3 Reno
102to improve speed and modernize style.
103The
104.Fl b
105and
106.Fl s
107options were added to
108.Nx 1.0
109for
110.St -p1003.2
111compliance.
112.Sh AUTHORS
113.An -nosplit
114.An Bill Joy
115wrote the original version of
116.Nm
117on June 28, 1977.
118.An Kevin Ruddy
119rewrote the command in 1990, and
120.An J. T. Conklin
121added the missing options in 1993.
122.Sh BUGS
123Traditional
124.Xr roff 7
125output semantics, implemented both by GNU nroff and by
126.Xr mandoc 1 ,
127only uses a single backspace for backing up the previous character,
128even for double-width characters.
129The
130.Nm
131backspace semantics required by POSIX mishandles such backspace-encoded
132sequences, breaking lines early.
133The
134.Xr fmt 1
135utility provides similar functionality and does not suffer from that
136problem, but isn't standardized by POSIX.
137