1.\" $NetBSD: checknr.1,v 1.12 2002/01/21 18:36:44 wiz Exp $ 2.\" 3.\" Copyright (c) 1980, 1990, 1993 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. All advertising materials mentioning features or use of this software 15.\" must display the following acknowledgement: 16.\" This product includes software developed by the University of 17.\" California, Berkeley and its contributors. 18.\" 4. Neither the name of the University nor the names of its contributors 19.\" may be used to endorse or promote products derived from this software 20.\" without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" @(#)checknr.1 8.1 (Berkeley) 6/6/93 35.\" 36.Dd January 21, 2002 37.Dt CHECKNR 1 38.Os 39.Sh NAME 40.Nm checknr 41.Nd check nroff/troff files 42.Sh SYNOPSIS 43.Nm 44.Op Fl a Ns Ar \&.x1.y1.x2.y2. ... \&.xn.yn 45.Op Fl c Ns Ar \&.x1.x2.x3 ... \&.xn 46.Op Fl f 47.Op Fl s 48.Ar file 49.Sh DESCRIPTION 50.Nm 51checks a list of 52.Xr nroff 1 53or 54.Xr troff 1 55input files for certain kinds of errors 56involving mismatched opening and closing delimiters 57and unknown commands. 58If no files are specified, 59.Nm 60checks the standard input. 61.Pp 62Recognized options are: 63.Bl -tag -width xxx -compact -offset indent 64.It Fl a 65Add additional pairs of macros to the list of known macros. 66This must be followed by groups of six characters, each group defining 67a pair of macros. 68The six characters are 69a period, 70the first macro name, 71another period, 72and the second macro name. 73For example, to define a pair .BS and .ES, use 74.Sq Li \-a.BS.ES . 75.It Fl c 76Define commands which would otherwise be complained about 77as undefined. 78.It Fl f 79Request 80.Nm 81to ignore 82.Ql \ef 83font changes. 84.It Fl s 85Ignore 86.Ql \es 87size changes. 88.El 89.Pp 90Delimiters checked are: 91.Bl -enum -compact -offset indent 92.It 93Font changes using \efx ... \efP. 94.It 95Size changes using \esx ... \es0. 96.It 97Macros that come in open ... close forms, for example, 98the .TS and .TE macros which must always come in pairs. 99.El 100.Pp 101.Nm 102is intended for use on documents that are prepared with 103.Nm 104in mind, much the same as 105.Xr lint 1 . 106It expects a certain document writing style for 107.Ql \ef 108and 109.Ql \es 110commands, 111in that each 112.Ql \efx 113must be terminated with 114.Ql \efP 115and 116each 117.Ql \esx 118must be terminated with 119.Ql \es0 . 120While it will work to directly go into the next font or explicitly 121specify the original font or point size, 122and many existing documents actually do this, 123such a practice will produce complaints from 124.Nm "" . 125Since it is probably better to use the 126.Ql \efP 127and 128.Ql \es0 129forms anyway, 130you should think of this as a contribution to your document 131preparation style. 132.Pp 133.Nm 134knows about the 135.Xr ms 7 136and 137.Xr me 7 138macro packages, 139as well as the macros from 140.Xr mdoc 7 . 141.Sh DIAGNOSTICS 142.Bd -ragged -compact 143Complaints about unmatched delimiters. 144Complaints about unrecognized commands. 145Various complaints about the syntax of commands. 146.Ed 147.Sh SEE ALSO 148.Xr nroff 1 , 149.Xr troff 1 , 150.Xr mdoc 7 , 151.Xr me 7 , 152.Xr ms 7 153.Sh HISTORY 154The 155.Nm 156command appeared in 157.Bx 4.0 . 158Basic 159.Xr mdoc 7 160support appeared in 161.Nx 1.6 . 162.Sh BUGS 163There is no way to define a 1 character macro name using 164.Fl a . 165.Pp 166Does not correctly recognize certain reasonable constructs, 167such as conditionals. 168.Pp 169.Xr mdoc 7 170macros that are not at the beginning of the line are not recognized. 171Among others, this results in too many 172.Ql Unmatched Zz 173errors. 174