Annotation of src/usr.bin/fold/fold.1, Revision 1.19
1.19 ! schwarze 1: .\" $OpenBSD: fold.1,v 1.18 2016/05/23 10:31:42 schwarze Exp $
1.1 deraadt 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.
1.8 millert 15: .\" 3. Neither the name of the University nor the names of its contributors
1.1 deraadt 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: .\"
1.19 ! schwarze 33: .Dd $Mdocdate: May 23 2016 $
1.1 deraadt 34: .Dt FOLD 1
35: .Os
36: .Sh NAME
37: .Nm fold
1.3 aaron 38: .Nd fold long lines for finite width output device
1.1 deraadt 39: .Sh SYNOPSIS
40: .Nm fold
41: .Op Fl bs
42: .Op Fl w Ar width
1.14 sobrado 43: .Op Ar
1.1 deraadt 44: .Sh DESCRIPTION
1.4 aaron 45: .Nm
1.1 deraadt 46: is a filter which folds the contents of the specified files,
47: or the standard input if no files are specified,
1.17 schwarze 48: breaking the lines to have a maximum of 80 display columns.
1.1 deraadt 49: .Pp
50: The options are as follows:
1.18 schwarze 51: .Bl -tag -width 8n
1.1 deraadt 52: .It Fl b
53: Count
54: .Ar width
55: in bytes rather than column positions.
56: .It Fl s
1.17 schwarze 57: If an output line would be broken after a non-blank character but
58: contains at least one blank character, break the line earlier,
59: after the last blank character.
60: This is useful to avoid line breaks in the middle of words, if
61: possible.
1.5 deraadt 62: .It Fl w Ar width
1.17 schwarze 63: Specifies a line width to use instead of the default of 80.
1.1 deraadt 64: .El
1.18 schwarze 65: .Pp
66: Unless
67: .Fl b
68: is specified, a backspace character decrements the column position
69: by one, a carriage return resets the column position to zero, and
70: a tab advances the column position to the next multiple of eight.
71: .Sh ENVIRONMENT
72: .Bl -tag -width 8n
73: .It Ev LC_CTYPE
1.19 ! schwarze 74: The character encoding
1.18 schwarze 75: .Xr locale 1 .
1.19 ! schwarze 76: It decides which byte sequences form characters
! 77: and what their display width is.
! 78: If unset or set to
1.18 schwarze 79: .Qq C ,
80: .Qq POSIX ,
81: or an unsupported value, each byte except backspace, tab, newline,
1.19 ! schwarze 82: and carriage return is treated as a character of display width 1.
1.18 schwarze 83: .El
1.15 jmc 84: .Sh EXIT STATUS
1.10 jmc 85: .Ex -std fold
1.1 deraadt 86: .Sh SEE ALSO
1.18 schwarze 87: .Xr expand 1 ,
88: .Xr fmt 1
1.1 deraadt 89: .Sh STANDARDS
1.4 aaron 90: The
91: .Nm
1.11 jmc 92: utility is compliant with the
1.13 jmc 93: .St -p1003.1-2008
1.11 jmc 94: specification.
1.16 schwarze 95: .Sh HISTORY
96: The
97: .Nm
98: utility first appeared in
99: .Bx 1 .
100: It was rewritten for
101: .Bx 4.3 Reno
102: to improve speed and modernize style.
103: The
104: .Fl b
105: and
106: .Fl s
107: options were added to
108: .Nx 1.0
109: for
110: .St -p1003.2
111: compliance.
112: .Sh AUTHORS
113: .An -nosplit
114: .An Bill Joy
115: wrote the original version of
116: .Nm
117: on June 28, 1977.
118: .An Kevin Ruddy
119: rewrote the command in 1990, and
120: .An J. T. Conklin
121: added the missing options in 1993.
1.1 deraadt 122: .Sh BUGS
1.18 schwarze 123: Traditional
124: .Xr roff 7
125: output semantics, implemented both by GNU nroff and by
126: .Xr mandoc 1 ,
127: only uses a single backspace for backing up the previous character,
128: even for double-width characters.
129: The
130: .Nm
131: backspace semantics required by POSIX mishandles such backspace-encoded
132: sequences, breaking lines early.
133: The
134: .Xr fmt 1
135: utility provides similar functionality and does not suffer from that
136: problem, but isn't standardized by POSIX.