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