xref: /openbsd/usr.bin/spell/spell.1 (revision 4bdff4be)
1.\" $OpenBSD: spell.1,v 1.16 2022/08/03 07:43:45 jsg Exp $
2.\"
3.\" Copyright (C) 1985, 1993, 1994
4.\"	The Regents of the University of California.  All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. Neither the name of the University nor the names of its contributors
15.\"    may be used to endorse or promote products derived from this software
16.\"    without specific prior written permission.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE.
29.\"
30.\" Copyright (C) Caldera International Inc.  2001-2002.
31.\" All rights reserved.
32.\"
33.\" Redistribution and use in source and binary forms, with or without
34.\" modification, are permitted provided that the following conditions
35.\" are met:
36.\" 1. Redistributions of source code and documentation must retain the above
37.\"    copyright notice, this list of conditions and the following disclaimer.
38.\" 2. Redistributions in binary form must reproduce the above copyright
39.\"    notice, this list of conditions and the following disclaimer in the
40.\"    documentation and/or other materials provided with the distribution.
41.\" 3. All advertising materials mentioning features or use of this software
42.\"    must display the following acknowledgement:
43.\"	This product includes software developed or owned by Caldera
44.\"	International, Inc.
45.\" 4. Neither the name of Caldera International, Inc. nor the names of other
46.\"    contributors may be used to endorse or promote products derived from
47.\"    this software without specific prior written permission.
48.\"
49.\" USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
50.\" INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
51.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53.\" IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE LIABLE FOR ANY DIRECT,
54.\" INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
55.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
56.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
57.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
58.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
59.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
60.\" POSSIBILITY OF SUCH DAMAGE.
61.\"
62.\"	@(#)spell.1	8.2 (Berkeley) 4/18/94
63.\"
64.Dd $Mdocdate: August 3 2022 $
65.Dt SPELL 1
66.Os
67.Sh NAME
68.Nm spell
69.Nd find spelling errors
70.Sh SYNOPSIS
71.Nm spell
72.Op Fl biltvx
73.Op Fl d Ar list
74.Op Fl h Ar spellhist
75.Oo
76.Fl m
77.Ar a | e | l | m | s
78.Oc
79.Op Fl s Ar list
80.Op + Ns Ar extra_list
81.Op Ar
82.Sh DESCRIPTION
83.Nm spell
84collects words from the named documents and looks them up in a spelling list.
85Words that neither occur among nor are derivable (by applying certain
86inflections, prefixes or suffixes) from words in the spelling list
87are printed on the standard output.
88.Pp
89If no files are named, words are collected from the standard input.
90.Nm
91ignores most troff, tbl, eqn, and pic constructions.
92Copies of all output may be accumulated in the history file,
93if one is specified.
94.Pp
95By default,
96.Nm
97(like
98.Xr deroff 1 )
99follows chains of included files
100.Po
101.Dq .so
102and
103.Dq .nx
104commands
105.Pc .
106.Pp
107The default spelling list is based on Webster's Second International
108dictionary and should be fairly complete.
109Words that appear in the
110.Dq stop list
111are immediately flagged as misspellings, regardless of whether or not
112they exist in one of the word lists.
113This helps filter out misspellings (e.g. thier=thy\-y+ier)
114that would otherwise pass.
115Additionally, the
116.Pa british
117file is also used as a stop list unless the
118.Fl b
119option is specified.
120.Pp
121Site administrators may add words to the local word list,
122.Pa /usr/local/share/dict/words
123or the local stop list,
124.Pa /usr/local/share/dict/stop .
125.Pp
126All word (and stop) lists must be sorted in lexicographical order
127with case folded.
128The simplest way to achieve this is to use
129.Dq sort -df .
130If the word files are incorrectly sorted,
131.Nm
132will not be able to operate correctly.
133.Pp
134The options are as follows:
135.Bl -tag -width Ds
136.It Fl b
137Check British spelling.
138Besides preferring
139.Em centre , colour , speciality , travelled ,
140etc., this option insists upon
141.Fl ise
142in words like
143.Em standardise ,
144Fowler and the OED to the contrary notwithstanding.
145In this mode, American variants of words are added to the stop list.
146.It Fl d Ar list
147Use the specified word list instead of the default system word list.
148The word list must be sorted as specified above.
149.It Fl h Ar spellhist
150Store misspelled words in the specified history file.
151The output of
152.Li who -m
153is appended to the history file after the list of misspelled words.
154.It Fl i
155Instruct
156.Xr deroff 1
157to ignore
158.Dq .so
159and
160.Dq .nx
161commands.
162.It Fl l
163Use
164.Sy delatex
165instead of
166.Xr deroff 1
167if it is present on the system.
168.It Fl m
169Enable support for common
170troff macro packages; this option is passed verbatim to
171.Xr deroff 1 .
172Refer to the
173.Fl m
174description in
175.Xr deroff 1
176for details.
177.It Fl s Ar list
178Use the specified stop list instead of the default system stop list.
179The stop list must be sorted as specified above.
180.It Fl t
181Use
182.Sy detex
183instead of
184.Xr deroff 1
185if it is present on the system.
186.It Fl v
187Print all words not literally in the spelling list in addition to
188plausible derivations from spelling list words.
189.It Fl x
190Print every plausible stem, prefixed with
191.Sq = .
192.It + Ns Ar extra_list
193Use
194.Ar extra_list
195in addition to the default word list.
196The extra word list must be sorted as specified above.
197.El
198.Sh FILES
199.Bl -tag -width /usr/local/share/dict/wordsxx -compact
200.It Pa /usr/share/dict/words
201Default spelling list.
202.It Pa /usr/share/dict/american
203American spelling of certain words.
204.It Pa /usr/share/dict/british
205British spelling of certain words.
206.It Pa /usr/share/dict/stop
207Default stop list.
208.It Pa /usr/local/share/dict/words
209Local spelling list (optional).
210.It Pa /usr/local/share/dict/stop
211Local stop list (optional).
212.It Pa /usr/libexec/spellprog
213Binary executed by the shell script
214.Pa /usr/bin/spell .
215.El
216.Sh SEE ALSO
217.Xr deroff 1 ,
218.Xr look 1 ,
219.Xr sed 1 ,
220.Xr sort 1 ,
221.Xr tee 1
222.Sh HISTORY
223The
224.Nm spell
225command first appeared in
226.At v5 .
227It did not appear in freely redistributable
228.Bx
229releases for licensing reasons.
230After Caldera relicensed early UNIX releases the
231.Bx 4.4
232version was added to
233.Ox 3.1 .
234.Pp
235Unlike historic versions, the
236.Ox
237.Nm
238command does not use hashed word files.
239Instead, it uses lexicographically sorted files and the same technique as
240.Xr look 1 .
241.Sh BUGS
242The spelling list lacks many technical terms; new installations will
243probably wish to monitor the output for several months to gather local
244additions.
245.Pp
246British spelling was done by an American.
247.Pp
248In
249.Fl x
250mode it would be nicer if the stems were grouped with the appropriate word.
251