xref: /openbsd-src/usr.bin/fold/fold.1 (revision f2da64fbbbf1b03f09f390ab01267c93dfd77c4c)
1.\"	$OpenBSD: fold.1,v 1.18 2016/05/23 10:31:42 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: May 23 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 set
75.Xr locale 1 .
76It is used to decide which byte sequences form characters and what
77their display width is.
78If it is unset or set to
79.Qq C ,
80.Qq POSIX ,
81or an unsupported value, each byte except backspace, tab, newline,
82and carriage return is assumed to represent a character of display
83width 1.
84.El
85.Sh EXIT STATUS
86.Ex -std fold
87.Sh SEE ALSO
88.Xr expand 1 ,
89.Xr fmt 1
90.Sh STANDARDS
91The
92.Nm
93utility is compliant with the
94.St -p1003.1-2008
95specification.
96.Sh HISTORY
97The
98.Nm
99utility first appeared in
100.Bx 1 .
101It was rewritten for
102.Bx 4.3 Reno
103to improve speed and modernize style.
104The
105.Fl b
106and
107.Fl s
108options were added to
109.Nx 1.0
110for
111.St -p1003.2
112compliance.
113.Sh AUTHORS
114.An -nosplit
115.An Bill Joy
116wrote the original version of
117.Nm
118on June 28, 1977.
119.An Kevin Ruddy
120rewrote the command in 1990, and
121.An J. T. Conklin
122added the missing options in 1993.
123.Sh BUGS
124Traditional
125.Xr roff 7
126output semantics, implemented both by GNU nroff and by
127.Xr mandoc 1 ,
128only uses a single backspace for backing up the previous character,
129even for double-width characters.
130The
131.Nm
132backspace semantics required by POSIX mishandles such backspace-encoded
133sequences, breaking lines early.
134The
135.Xr fmt 1
136utility provides similar functionality and does not suffer from that
137problem, but isn't standardized by POSIX.
138