1*61d06d6bSBaptiste Daroussin.\" $Id: mandoc.1,v 1.226 2018/07/28 18:34:15 schwarze Exp $ 2*61d06d6bSBaptiste Daroussin.\" 3*61d06d6bSBaptiste Daroussin.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> 4*61d06d6bSBaptiste Daroussin.\" Copyright (c) 2012, 2014-2018 Ingo Schwarze <schwarze@openbsd.org> 5*61d06d6bSBaptiste Daroussin.\" 6*61d06d6bSBaptiste Daroussin.\" Permission to use, copy, modify, and distribute this software for any 7*61d06d6bSBaptiste Daroussin.\" purpose with or without fee is hereby granted, provided that the above 8*61d06d6bSBaptiste Daroussin.\" copyright notice and this permission notice appear in all copies. 9*61d06d6bSBaptiste Daroussin.\" 10*61d06d6bSBaptiste Daroussin.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11*61d06d6bSBaptiste Daroussin.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12*61d06d6bSBaptiste Daroussin.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13*61d06d6bSBaptiste Daroussin.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14*61d06d6bSBaptiste Daroussin.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15*61d06d6bSBaptiste Daroussin.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16*61d06d6bSBaptiste Daroussin.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17*61d06d6bSBaptiste Daroussin.\" 18*61d06d6bSBaptiste Daroussin.Dd $Mdocdate: July 28 2018 $ 19*61d06d6bSBaptiste Daroussin.Dt MANDOC 1 20*61d06d6bSBaptiste Daroussin.Os 21*61d06d6bSBaptiste Daroussin.Sh NAME 22*61d06d6bSBaptiste Daroussin.Nm mandoc 23*61d06d6bSBaptiste Daroussin.Nd format manual pages 24*61d06d6bSBaptiste Daroussin.Sh SYNOPSIS 25*61d06d6bSBaptiste Daroussin.Nm mandoc 26*61d06d6bSBaptiste Daroussin.Op Fl ac 27*61d06d6bSBaptiste Daroussin.Op Fl I Cm os Ns = Ns Ar name 28*61d06d6bSBaptiste Daroussin.Op Fl K Ar encoding 29*61d06d6bSBaptiste Daroussin.Op Fl mdoc | man 30*61d06d6bSBaptiste Daroussin.Op Fl O Ar options 31*61d06d6bSBaptiste Daroussin.Op Fl T Ar output 32*61d06d6bSBaptiste Daroussin.Op Fl W Ar level 33*61d06d6bSBaptiste Daroussin.Op Ar 34*61d06d6bSBaptiste Daroussin.Sh DESCRIPTION 35*61d06d6bSBaptiste DaroussinThe 36*61d06d6bSBaptiste Daroussin.Nm 37*61d06d6bSBaptiste Daroussinutility formats manual pages for display. 38*61d06d6bSBaptiste Daroussin.Pp 39*61d06d6bSBaptiste DaroussinBy default, 40*61d06d6bSBaptiste Daroussin.Nm 41*61d06d6bSBaptiste Daroussinreads 42*61d06d6bSBaptiste Daroussin.Xr mdoc 7 43*61d06d6bSBaptiste Daroussinor 44*61d06d6bSBaptiste Daroussin.Xr man 7 45*61d06d6bSBaptiste Daroussintext from stdin and produces 46*61d06d6bSBaptiste Daroussin.Fl T Cm locale 47*61d06d6bSBaptiste Daroussinoutput. 48*61d06d6bSBaptiste Daroussin.Pp 49*61d06d6bSBaptiste DaroussinThe options are as follows: 50*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 51*61d06d6bSBaptiste Daroussin.It Fl a 52*61d06d6bSBaptiste DaroussinIf the standard output is a terminal device and 53*61d06d6bSBaptiste Daroussin.Fl c 54*61d06d6bSBaptiste Daroussinis not specified, use 55*61d06d6bSBaptiste Daroussin.Xr more 1 56*61d06d6bSBaptiste Daroussinto paginate the output, just like 57*61d06d6bSBaptiste Daroussin.Xr man 1 58*61d06d6bSBaptiste Daroussinwould. 59*61d06d6bSBaptiste Daroussin.It Fl c 60*61d06d6bSBaptiste DaroussinCopy the formatted manual pages to the standard output without using 61*61d06d6bSBaptiste Daroussin.Xr more 1 62*61d06d6bSBaptiste Daroussinto paginate them. 63*61d06d6bSBaptiste DaroussinThis is the default. 64*61d06d6bSBaptiste DaroussinIt can be specified to override 65*61d06d6bSBaptiste Daroussin.Fl a . 66*61d06d6bSBaptiste Daroussin.It Fl I Cm os Ns = Ns Ar name 67*61d06d6bSBaptiste DaroussinOverride the default operating system 68*61d06d6bSBaptiste Daroussin.Ar name 69*61d06d6bSBaptiste Daroussinfor the 70*61d06d6bSBaptiste Daroussin.Xr mdoc 7 71*61d06d6bSBaptiste Daroussin.Ic \&Os 72*61d06d6bSBaptiste Daroussinand for the 73*61d06d6bSBaptiste Daroussin.Xr man 7 74*61d06d6bSBaptiste Daroussin.Ic \&TH 75*61d06d6bSBaptiste Daroussinmacro. 76*61d06d6bSBaptiste Daroussin.It Fl K Ar encoding 77*61d06d6bSBaptiste DaroussinSpecify the input encoding. 78*61d06d6bSBaptiste DaroussinThe supported 79*61d06d6bSBaptiste Daroussin.Ar encoding 80*61d06d6bSBaptiste Daroussinarguments are 81*61d06d6bSBaptiste Daroussin.Cm us-ascii , 82*61d06d6bSBaptiste Daroussin.Cm iso-8859-1 , 83*61d06d6bSBaptiste Daroussinand 84*61d06d6bSBaptiste Daroussin.Cm utf-8 . 85*61d06d6bSBaptiste DaroussinIf not specified, autodetection uses the first match in the following 86*61d06d6bSBaptiste Daroussinlist: 87*61d06d6bSBaptiste Daroussin.Bl -enum 88*61d06d6bSBaptiste Daroussin.It 89*61d06d6bSBaptiste DaroussinIf the first three bytes of the input file are the UTF-8 byte order 90*61d06d6bSBaptiste Daroussinmark (BOM, 0xefbbbf), input is interpreted as 91*61d06d6bSBaptiste Daroussin.Cm utf-8 . 92*61d06d6bSBaptiste Daroussin.It 93*61d06d6bSBaptiste DaroussinIf the first or second line of the input file matches the 94*61d06d6bSBaptiste Daroussin.Sy emacs 95*61d06d6bSBaptiste Daroussinmode line format 96*61d06d6bSBaptiste Daroussin.Pp 97*61d06d6bSBaptiste Daroussin.D1 .\e" -*- Oo ...; Oc coding: Ar encoding ; No -*- 98*61d06d6bSBaptiste Daroussin.Pp 99*61d06d6bSBaptiste Daroussinthen input is interpreted according to 100*61d06d6bSBaptiste Daroussin.Ar encoding . 101*61d06d6bSBaptiste Daroussin.It 102*61d06d6bSBaptiste DaroussinIf the first non-ASCII byte in the file introduces a valid UTF-8 103*61d06d6bSBaptiste Daroussinsequence, input is interpreted as 104*61d06d6bSBaptiste Daroussin.Cm utf-8 . 105*61d06d6bSBaptiste Daroussin.It 106*61d06d6bSBaptiste DaroussinOtherwise, input is interpreted as 107*61d06d6bSBaptiste Daroussin.Cm iso-8859-1 . 108*61d06d6bSBaptiste Daroussin.El 109*61d06d6bSBaptiste Daroussin.It Fl mdoc | man 110*61d06d6bSBaptiste DaroussinWith 111*61d06d6bSBaptiste Daroussin.Fl mdoc , 112*61d06d6bSBaptiste Daroussinall input files are interpreted as 113*61d06d6bSBaptiste Daroussin.Xr mdoc 7 . 114*61d06d6bSBaptiste DaroussinWith 115*61d06d6bSBaptiste Daroussin.Fl man , 116*61d06d6bSBaptiste Daroussinall input files are interpreted as 117*61d06d6bSBaptiste Daroussin.Xr man 7 . 118*61d06d6bSBaptiste DaroussinBy default, the input language is automatically detected for each file: 119*61d06d6bSBaptiste Daroussinif the first macro is 120*61d06d6bSBaptiste Daroussin.Ic \&Dd 121*61d06d6bSBaptiste Daroussinor 122*61d06d6bSBaptiste Daroussin.Ic \&Dt , 123*61d06d6bSBaptiste Daroussinthe 124*61d06d6bSBaptiste Daroussin.Xr mdoc 7 125*61d06d6bSBaptiste Daroussinparser is used; otherwise, the 126*61d06d6bSBaptiste Daroussin.Xr man 7 127*61d06d6bSBaptiste Daroussinparser is used. 128*61d06d6bSBaptiste DaroussinWith other arguments, 129*61d06d6bSBaptiste Daroussin.Fl m 130*61d06d6bSBaptiste Daroussinis silently ignored. 131*61d06d6bSBaptiste Daroussin.It Fl O Ar options 132*61d06d6bSBaptiste DaroussinComma-separated output options. 133*61d06d6bSBaptiste DaroussinSee the descriptions of the individual output formats for supported 134*61d06d6bSBaptiste Daroussin.Ar options . 135*61d06d6bSBaptiste Daroussin.It Fl T Ar output 136*61d06d6bSBaptiste DaroussinSelect the output format. 137*61d06d6bSBaptiste DaroussinSupported values for the 138*61d06d6bSBaptiste Daroussin.Ar output 139*61d06d6bSBaptiste Daroussinargument are 140*61d06d6bSBaptiste Daroussin.Cm ascii , 141*61d06d6bSBaptiste Daroussin.Cm html , 142*61d06d6bSBaptiste Daroussinthe default of 143*61d06d6bSBaptiste Daroussin.Cm locale , 144*61d06d6bSBaptiste Daroussin.Cm man , 145*61d06d6bSBaptiste Daroussin.Cm markdown , 146*61d06d6bSBaptiste Daroussin.Cm pdf , 147*61d06d6bSBaptiste Daroussin.Cm ps , 148*61d06d6bSBaptiste Daroussin.Cm tree , 149*61d06d6bSBaptiste Daroussinand 150*61d06d6bSBaptiste Daroussin.Cm utf8 . 151*61d06d6bSBaptiste Daroussin.Pp 152*61d06d6bSBaptiste DaroussinThe special 153*61d06d6bSBaptiste Daroussin.Fl T Cm lint 154*61d06d6bSBaptiste Daroussinmode only parses the input and produces no output. 155*61d06d6bSBaptiste DaroussinIt implies 156*61d06d6bSBaptiste Daroussin.Fl W Cm all 157*61d06d6bSBaptiste Daroussinand redirects parser messages, which usually appear on standard 158*61d06d6bSBaptiste Daroussinerror output, to standard output. 159*61d06d6bSBaptiste Daroussin.It Fl W Ar level 160*61d06d6bSBaptiste DaroussinSpecify the minimum message 161*61d06d6bSBaptiste Daroussin.Ar level 162*61d06d6bSBaptiste Daroussinto be reported on the standard error output and to affect the exit status. 163*61d06d6bSBaptiste DaroussinThe 164*61d06d6bSBaptiste Daroussin.Ar level 165*61d06d6bSBaptiste Daroussincan be 166*61d06d6bSBaptiste Daroussin.Cm base , 167*61d06d6bSBaptiste Daroussin.Cm style , 168*61d06d6bSBaptiste Daroussin.Cm warning , 169*61d06d6bSBaptiste Daroussin.Cm error , 170*61d06d6bSBaptiste Daroussinor 171*61d06d6bSBaptiste Daroussin.Cm unsupp . 172*61d06d6bSBaptiste DaroussinThe 173*61d06d6bSBaptiste Daroussin.Cm base 174*61d06d6bSBaptiste Daroussinlevel automatically derives the operating system from the contents of the 175*61d06d6bSBaptiste Daroussin.Ic \&Os 176*61d06d6bSBaptiste Daroussinmacro, from the 177*61d06d6bSBaptiste Daroussin.Fl Ios 178*61d06d6bSBaptiste Daroussincommand line option, or from the 179*61d06d6bSBaptiste Daroussin.Xr uname 3 180*61d06d6bSBaptiste Daroussinreturn value. 181*61d06d6bSBaptiste DaroussinThe levels 182*61d06d6bSBaptiste Daroussin.Cm openbsd 183*61d06d6bSBaptiste Daroussinand 184*61d06d6bSBaptiste Daroussin.Cm netbsd 185*61d06d6bSBaptiste Daroussinare variants of 186*61d06d6bSBaptiste Daroussin.Cm base 187*61d06d6bSBaptiste Daroussinthat bypass autodetection and request validation of base system 188*61d06d6bSBaptiste Daroussinconventions for a particular operating system. 189*61d06d6bSBaptiste DaroussinThe level 190*61d06d6bSBaptiste Daroussin.Cm all 191*61d06d6bSBaptiste Daroussinis an alias for 192*61d06d6bSBaptiste Daroussin.Cm base . 193*61d06d6bSBaptiste DaroussinBy default, 194*61d06d6bSBaptiste Daroussin.Nm 195*61d06d6bSBaptiste Daroussinis silent. 196*61d06d6bSBaptiste DaroussinSee 197*61d06d6bSBaptiste Daroussin.Sx EXIT STATUS 198*61d06d6bSBaptiste Daroussinand 199*61d06d6bSBaptiste Daroussin.Sx DIAGNOSTICS 200*61d06d6bSBaptiste Daroussinfor details. 201*61d06d6bSBaptiste Daroussin.Pp 202*61d06d6bSBaptiste DaroussinThe special option 203*61d06d6bSBaptiste Daroussin.Fl W Cm stop 204*61d06d6bSBaptiste Daroussintells 205*61d06d6bSBaptiste Daroussin.Nm 206*61d06d6bSBaptiste Daroussinto exit after parsing a file that causes warnings or errors of at least 207*61d06d6bSBaptiste Daroussinthe requested level. 208*61d06d6bSBaptiste DaroussinNo formatted output will be produced from that file. 209*61d06d6bSBaptiste DaroussinIf both a 210*61d06d6bSBaptiste Daroussin.Ar level 211*61d06d6bSBaptiste Daroussinand 212*61d06d6bSBaptiste Daroussin.Cm stop 213*61d06d6bSBaptiste Daroussinare requested, they can be joined with a comma, for example 214*61d06d6bSBaptiste Daroussin.Fl W Cm error , Ns Cm stop . 215*61d06d6bSBaptiste Daroussin.It Ar file 216*61d06d6bSBaptiste DaroussinRead from the given input file. 217*61d06d6bSBaptiste DaroussinIf multiple files are specified, they are processed in the given order. 218*61d06d6bSBaptiste DaroussinIf unspecified, 219*61d06d6bSBaptiste Daroussin.Nm 220*61d06d6bSBaptiste Daroussinreads from standard input. 221*61d06d6bSBaptiste Daroussin.El 222*61d06d6bSBaptiste Daroussin.Pp 223*61d06d6bSBaptiste DaroussinThe options 224*61d06d6bSBaptiste Daroussin.Fl fhklw 225*61d06d6bSBaptiste Daroussinare also supported and are documented in man(1). 226*61d06d6bSBaptiste DaroussinIn 227*61d06d6bSBaptiste Daroussin.Fl f 228*61d06d6bSBaptiste Daroussinand 229*61d06d6bSBaptiste Daroussin.Fl k 230*61d06d6bSBaptiste Daroussinmode, 231*61d06d6bSBaptiste Daroussin.Nm 232*61d06d6bSBaptiste Daroussinalso supports the options 233*61d06d6bSBaptiste Daroussin.Fl CMmOSs 234*61d06d6bSBaptiste Daroussindescribed in the 235*61d06d6bSBaptiste Daroussin.Xr apropos 1 236*61d06d6bSBaptiste Daroussinmanual. 237*61d06d6bSBaptiste DaroussinThe options 238*61d06d6bSBaptiste Daroussin.Fl fkl 239*61d06d6bSBaptiste Daroussinare mutually exclusive and override each other. 240*61d06d6bSBaptiste Daroussin.Ss ASCII Output 241*61d06d6bSBaptiste DaroussinUse 242*61d06d6bSBaptiste Daroussin.Fl T Cm ascii 243*61d06d6bSBaptiste Daroussinto force text output in 7-bit ASCII character encoding documented in the 244*61d06d6bSBaptiste Daroussin.Xr ascii 7 245*61d06d6bSBaptiste Daroussinmanual page, ignoring the 246*61d06d6bSBaptiste Daroussin.Xr locale 1 247*61d06d6bSBaptiste Daroussinset in the environment. 248*61d06d6bSBaptiste Daroussin.Pp 249*61d06d6bSBaptiste DaroussinFont styles are applied by using back-spaced encoding such that an 250*61d06d6bSBaptiste Daroussinunderlined character 251*61d06d6bSBaptiste Daroussin.Sq c 252*61d06d6bSBaptiste Daroussinis rendered as 253*61d06d6bSBaptiste Daroussin.Sq _ Ns \e[bs] Ns c , 254*61d06d6bSBaptiste Daroussinwhere 255*61d06d6bSBaptiste Daroussin.Sq \e[bs] 256*61d06d6bSBaptiste Daroussinis the back-space character number 8. 257*61d06d6bSBaptiste DaroussinEmboldened characters are rendered as 258*61d06d6bSBaptiste Daroussin.Sq c Ns \e[bs] Ns c . 259*61d06d6bSBaptiste Daroussin.Pp 260*61d06d6bSBaptiste DaroussinThe special characters documented in 261*61d06d6bSBaptiste Daroussin.Xr mandoc_char 7 262*61d06d6bSBaptiste Daroussinare rendered best-effort in an ASCII equivalent. 263*61d06d6bSBaptiste Daroussin.Pp 264*61d06d6bSBaptiste DaroussinThe following 265*61d06d6bSBaptiste Daroussin.Fl O 266*61d06d6bSBaptiste Daroussinarguments are accepted: 267*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 268*61d06d6bSBaptiste Daroussin.It Cm indent Ns = Ns Ar indent 269*61d06d6bSBaptiste DaroussinThe left margin for normal text is set to 270*61d06d6bSBaptiste Daroussin.Ar indent 271*61d06d6bSBaptiste Daroussinblank characters instead of the default of five for 272*61d06d6bSBaptiste Daroussin.Xr mdoc 7 273*61d06d6bSBaptiste Daroussinand seven for 274*61d06d6bSBaptiste Daroussin.Xr man 7 . 275*61d06d6bSBaptiste DaroussinIncreasing this is not recommended; it may result in degraded formatting, 276*61d06d6bSBaptiste Daroussinfor example overfull lines or ugly line breaks. 277*61d06d6bSBaptiste DaroussinWhen output is to a pager on a terminal that is less than 66 columns 278*61d06d6bSBaptiste Daroussinwide, the default is reduced to three columns. 279*61d06d6bSBaptiste Daroussin.It Cm mdoc 280*61d06d6bSBaptiste DaroussinFormat 281*61d06d6bSBaptiste Daroussin.Xr man 7 282*61d06d6bSBaptiste Daroussininput files in 283*61d06d6bSBaptiste Daroussin.Xr mdoc 7 284*61d06d6bSBaptiste Daroussinoutput style. 285*61d06d6bSBaptiste DaroussinSpecifically, this suppresses the two additional blank lines near the 286*61d06d6bSBaptiste Daroussintop and the bottom of each page, and it implies 287*61d06d6bSBaptiste Daroussin.Fl O Cm indent Ns =5 . 288*61d06d6bSBaptiste DaroussinOne useful application is for checking that 289*61d06d6bSBaptiste Daroussin.Fl T Cm man 290*61d06d6bSBaptiste Daroussinoutput formats in the same way as the 291*61d06d6bSBaptiste Daroussin.Xr mdoc 7 292*61d06d6bSBaptiste Daroussinsource it was generated from. 293*61d06d6bSBaptiste Daroussin.It Cm width Ns = Ns Ar width 294*61d06d6bSBaptiste DaroussinThe output width is set to 295*61d06d6bSBaptiste Daroussin.Ar width 296*61d06d6bSBaptiste Daroussininstead of the default of 78. 297*61d06d6bSBaptiste DaroussinWhen output is to a pager on a terminal that is less than 79 columns 298*61d06d6bSBaptiste Daroussinwide, the default is reduced to one less than the terminal width. 299*61d06d6bSBaptiste DaroussinIn any case, lines that are output in literal mode are never wrapped 300*61d06d6bSBaptiste Daroussinand may exceed the output width. 301*61d06d6bSBaptiste Daroussin.El 302*61d06d6bSBaptiste Daroussin.Ss HTML Output 303*61d06d6bSBaptiste DaroussinOutput produced by 304*61d06d6bSBaptiste Daroussin.Fl T Cm html 305*61d06d6bSBaptiste Daroussinconforms to HTML5 using optional self-closing tags. 306*61d06d6bSBaptiste DaroussinDefault styles use only CSS1. 307*61d06d6bSBaptiste DaroussinEquations rendered from 308*61d06d6bSBaptiste Daroussin.Xr eqn 7 309*61d06d6bSBaptiste Daroussinblocks use MathML. 310*61d06d6bSBaptiste Daroussin.Pp 311*61d06d6bSBaptiste DaroussinThe 312*61d06d6bSBaptiste Daroussin.Pa mandoc.css 313*61d06d6bSBaptiste Daroussinfile documents style-sheet classes available for customising output. 314*61d06d6bSBaptiste DaroussinIf a style-sheet is not specified with 315*61d06d6bSBaptiste Daroussin.Fl O Cm style , 316*61d06d6bSBaptiste Daroussin.Fl T Cm html 317*61d06d6bSBaptiste Daroussindefaults to simple output (via an embedded style-sheet) 318*61d06d6bSBaptiste Daroussinreadable in any graphical or text-based web 319*61d06d6bSBaptiste Daroussinbrowser. 320*61d06d6bSBaptiste Daroussin.Pp 321*61d06d6bSBaptiste DaroussinNon-ASCII characters are rendered 322*61d06d6bSBaptiste Daroussinas hexadecimal Unicode character references. 323*61d06d6bSBaptiste Daroussin.Pp 324*61d06d6bSBaptiste DaroussinThe following 325*61d06d6bSBaptiste Daroussin.Fl O 326*61d06d6bSBaptiste Daroussinarguments are accepted: 327*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 328*61d06d6bSBaptiste Daroussin.It Cm fragment 329*61d06d6bSBaptiste DaroussinOmit the <!DOCTYPE> declaration and the <html>, <head>, and <body> 330*61d06d6bSBaptiste Daroussinelements and only emit the subtree below the <body> element. 331*61d06d6bSBaptiste DaroussinThe 332*61d06d6bSBaptiste Daroussin.Cm style 333*61d06d6bSBaptiste Daroussinargument will be ignored. 334*61d06d6bSBaptiste DaroussinThis is useful when embedding manual content within existing documents. 335*61d06d6bSBaptiste Daroussin.It Cm includes Ns = Ns Ar fmt 336*61d06d6bSBaptiste DaroussinThe string 337*61d06d6bSBaptiste Daroussin.Ar fmt , 338*61d06d6bSBaptiste Daroussinfor example, 339*61d06d6bSBaptiste Daroussin.Ar ../src/%I.html , 340*61d06d6bSBaptiste Daroussinis used as a template for linked header files (usually via the 341*61d06d6bSBaptiste Daroussin.Ic \&In 342*61d06d6bSBaptiste Daroussinmacro). 343*61d06d6bSBaptiste DaroussinInstances of 344*61d06d6bSBaptiste Daroussin.Sq \&%I 345*61d06d6bSBaptiste Daroussinare replaced with the include filename. 346*61d06d6bSBaptiste DaroussinThe default is not to present a 347*61d06d6bSBaptiste Daroussinhyperlink. 348*61d06d6bSBaptiste Daroussin.It Cm man Ns = Ns Ar fmt 349*61d06d6bSBaptiste DaroussinThe string 350*61d06d6bSBaptiste Daroussin.Ar fmt , 351*61d06d6bSBaptiste Daroussinfor example, 352*61d06d6bSBaptiste Daroussin.Ar ../html%S/%N.%S.html , 353*61d06d6bSBaptiste Daroussinis used as a template for linked manuals (usually via the 354*61d06d6bSBaptiste Daroussin.Ic \&Xr 355*61d06d6bSBaptiste Daroussinmacro). 356*61d06d6bSBaptiste DaroussinInstances of 357*61d06d6bSBaptiste Daroussin.Sq \&%N 358*61d06d6bSBaptiste Daroussinand 359*61d06d6bSBaptiste Daroussin.Sq %S 360*61d06d6bSBaptiste Daroussinare replaced with the linked manual's name and section, respectively. 361*61d06d6bSBaptiste DaroussinIf no section is included, section 1 is assumed. 362*61d06d6bSBaptiste DaroussinThe default is not to 363*61d06d6bSBaptiste Daroussinpresent a hyperlink. 364*61d06d6bSBaptiste Daroussin.It Cm style Ns = Ns Ar style.css 365*61d06d6bSBaptiste DaroussinThe file 366*61d06d6bSBaptiste Daroussin.Ar style.css 367*61d06d6bSBaptiste Daroussinis used for an external style-sheet. 368*61d06d6bSBaptiste DaroussinThis must be a valid absolute or 369*61d06d6bSBaptiste Daroussinrelative URI. 370*61d06d6bSBaptiste Daroussin.El 371*61d06d6bSBaptiste Daroussin.Ss Locale Output 372*61d06d6bSBaptiste DaroussinBy default, 373*61d06d6bSBaptiste Daroussin.Nm 374*61d06d6bSBaptiste Daroussinautomatically selects UTF-8 or ASCII output according to the current 375*61d06d6bSBaptiste Daroussin.Xr locale 1 . 376*61d06d6bSBaptiste DaroussinIf any of the environment variables 377*61d06d6bSBaptiste Daroussin.Ev LC_ALL , 378*61d06d6bSBaptiste Daroussin.Ev LC_CTYPE , 379*61d06d6bSBaptiste Daroussinor 380*61d06d6bSBaptiste Daroussin.Ev LANG 381*61d06d6bSBaptiste Daroussinare set and the first one that is set 382*61d06d6bSBaptiste Daroussinselects the UTF-8 character encoding, it produces 383*61d06d6bSBaptiste Daroussin.Sx UTF-8 Output ; 384*61d06d6bSBaptiste Daroussinotherwise, it falls back to 385*61d06d6bSBaptiste Daroussin.Sx ASCII Output . 386*61d06d6bSBaptiste DaroussinThis output mode can also be selected explicitly with 387*61d06d6bSBaptiste Daroussin.Fl T Cm locale . 388*61d06d6bSBaptiste Daroussin.Ss Man Output 389*61d06d6bSBaptiste DaroussinUse 390*61d06d6bSBaptiste Daroussin.Fl T Cm man 391*61d06d6bSBaptiste Daroussinto translate 392*61d06d6bSBaptiste Daroussin.Xr mdoc 7 393*61d06d6bSBaptiste Daroussininput into 394*61d06d6bSBaptiste Daroussin.Xr man 7 395*61d06d6bSBaptiste Daroussinoutput format. 396*61d06d6bSBaptiste DaroussinThis is useful for distributing manual sources to legacy systems 397*61d06d6bSBaptiste Daroussinlacking 398*61d06d6bSBaptiste Daroussin.Xr mdoc 7 399*61d06d6bSBaptiste Daroussinformatters. 400*61d06d6bSBaptiste Daroussin.Pp 401*61d06d6bSBaptiste DaroussinIf the input format of a file is 402*61d06d6bSBaptiste Daroussin.Xr man 7 , 403*61d06d6bSBaptiste Daroussinthe input is copied to the output, expanding any 404*61d06d6bSBaptiste Daroussin.Xr roff 7 405*61d06d6bSBaptiste Daroussin.Ic so 406*61d06d6bSBaptiste Daroussinrequests. 407*61d06d6bSBaptiste DaroussinThe parser is also run, and as usual, the 408*61d06d6bSBaptiste Daroussin.Fl W 409*61d06d6bSBaptiste Daroussinlevel controls which 410*61d06d6bSBaptiste Daroussin.Sx DIAGNOSTICS 411*61d06d6bSBaptiste Daroussinare displayed before copying the input to the output. 412*61d06d6bSBaptiste Daroussin.Ss Markdown Output 413*61d06d6bSBaptiste DaroussinUse 414*61d06d6bSBaptiste Daroussin.Fl T Cm markdown 415*61d06d6bSBaptiste Daroussinto translate 416*61d06d6bSBaptiste Daroussin.Xr mdoc 7 417*61d06d6bSBaptiste Daroussininput to the markdown format conforming to 418*61d06d6bSBaptiste Daroussin.Lk http://daringfireball.net/projects/markdown/syntax.text\ 419*61d06d6bSBaptiste Daroussin "John Gruber's 2004 specification" . 420*61d06d6bSBaptiste DaroussinThe output also almost conforms to the 421*61d06d6bSBaptiste Daroussin.Lk http://commonmark.org/ CommonMark 422*61d06d6bSBaptiste Daroussinspecification. 423*61d06d6bSBaptiste Daroussin.Pp 424*61d06d6bSBaptiste DaroussinThe character set used for the markdown output is ASCII. 425*61d06d6bSBaptiste DaroussinNon-ASCII characters are encoded as HTML entities. 426*61d06d6bSBaptiste DaroussinSince that is not possible in literal font contexts, because these 427*61d06d6bSBaptiste Daroussinare rendered as code spans and code blocks in the markdown output, 428*61d06d6bSBaptiste Daroussinnon-ASCII characters are transliterated to ASCII approximations in 429*61d06d6bSBaptiste Daroussinthese contexts. 430*61d06d6bSBaptiste Daroussin.Pp 431*61d06d6bSBaptiste DaroussinMarkdown is a very weak markup language, so all semantic markup is 432*61d06d6bSBaptiste Daroussinlost, and even part of the presentational markup may be lost. 433*61d06d6bSBaptiste DaroussinDo not use this as an intermediate step in converting to HTML; 434*61d06d6bSBaptiste Daroussininstead, use 435*61d06d6bSBaptiste Daroussin.Fl T Cm html 436*61d06d6bSBaptiste Daroussindirectly. 437*61d06d6bSBaptiste Daroussin.Pp 438*61d06d6bSBaptiste DaroussinThe 439*61d06d6bSBaptiste Daroussin.Xr man 7 , 440*61d06d6bSBaptiste Daroussin.Xr tbl 7 , 441*61d06d6bSBaptiste Daroussinand 442*61d06d6bSBaptiste Daroussin.Xr eqn 7 443*61d06d6bSBaptiste Daroussininput languages are not supported by 444*61d06d6bSBaptiste Daroussin.Fl T Cm markdown 445*61d06d6bSBaptiste Daroussinoutput mode. 446*61d06d6bSBaptiste Daroussin.Ss PDF Output 447*61d06d6bSBaptiste DaroussinPDF-1.1 output may be generated by 448*61d06d6bSBaptiste Daroussin.Fl T Cm pdf . 449*61d06d6bSBaptiste DaroussinSee 450*61d06d6bSBaptiste Daroussin.Sx PostScript Output 451*61d06d6bSBaptiste Daroussinfor 452*61d06d6bSBaptiste Daroussin.Fl O 453*61d06d6bSBaptiste Daroussinarguments and defaults. 454*61d06d6bSBaptiste Daroussin.Ss PostScript Output 455*61d06d6bSBaptiste DaroussinPostScript 456*61d06d6bSBaptiste Daroussin.Qq Adobe-3.0 457*61d06d6bSBaptiste DaroussinLevel-2 pages may be generated by 458*61d06d6bSBaptiste Daroussin.Fl T Cm ps . 459*61d06d6bSBaptiste DaroussinOutput pages default to letter sized and are rendered in the Times font 460*61d06d6bSBaptiste Daroussinfamily, 11-point. 461*61d06d6bSBaptiste DaroussinMargins are calculated as 1/9 the page length and width. 462*61d06d6bSBaptiste DaroussinLine-height is 1.4m. 463*61d06d6bSBaptiste Daroussin.Pp 464*61d06d6bSBaptiste DaroussinSpecial characters are rendered as in 465*61d06d6bSBaptiste Daroussin.Sx ASCII Output . 466*61d06d6bSBaptiste Daroussin.Pp 467*61d06d6bSBaptiste DaroussinThe following 468*61d06d6bSBaptiste Daroussin.Fl O 469*61d06d6bSBaptiste Daroussinarguments are accepted: 470*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 471*61d06d6bSBaptiste Daroussin.It Cm paper Ns = Ns Ar name 472*61d06d6bSBaptiste DaroussinThe paper size 473*61d06d6bSBaptiste Daroussin.Ar name 474*61d06d6bSBaptiste Daroussinmay be one of 475*61d06d6bSBaptiste Daroussin.Ar a3 , 476*61d06d6bSBaptiste Daroussin.Ar a4 , 477*61d06d6bSBaptiste Daroussin.Ar a5 , 478*61d06d6bSBaptiste Daroussin.Ar legal , 479*61d06d6bSBaptiste Daroussinor 480*61d06d6bSBaptiste Daroussin.Ar letter . 481*61d06d6bSBaptiste DaroussinYou may also manually specify dimensions as 482*61d06d6bSBaptiste Daroussin.Ar NNxNN , 483*61d06d6bSBaptiste Daroussinwidth by height in millimetres. 484*61d06d6bSBaptiste DaroussinIf an unknown value is encountered, 485*61d06d6bSBaptiste Daroussin.Ar letter 486*61d06d6bSBaptiste Daroussinis used. 487*61d06d6bSBaptiste Daroussin.El 488*61d06d6bSBaptiste Daroussin.Ss UTF-8 Output 489*61d06d6bSBaptiste DaroussinUse 490*61d06d6bSBaptiste Daroussin.Fl T Cm utf8 491*61d06d6bSBaptiste Daroussinto force text output in UTF-8 multi-byte character encoding, 492*61d06d6bSBaptiste Daroussinignoring the 493*61d06d6bSBaptiste Daroussin.Xr locale 1 494*61d06d6bSBaptiste Daroussinsettings in the environment. 495*61d06d6bSBaptiste DaroussinSee 496*61d06d6bSBaptiste Daroussin.Sx ASCII Output 497*61d06d6bSBaptiste Daroussinregarding font styles and 498*61d06d6bSBaptiste Daroussin.Fl O 499*61d06d6bSBaptiste Daroussinarguments. 500*61d06d6bSBaptiste Daroussin.Pp 501*61d06d6bSBaptiste DaroussinOn operating systems lacking locale or wide character support, and 502*61d06d6bSBaptiste Daroussinon those where the internal character representation is not UCS-4, 503*61d06d6bSBaptiste Daroussin.Nm 504*61d06d6bSBaptiste Daroussinalways falls back to 505*61d06d6bSBaptiste Daroussin.Sx ASCII Output . 506*61d06d6bSBaptiste Daroussin.Ss Syntax tree output 507*61d06d6bSBaptiste DaroussinUse 508*61d06d6bSBaptiste Daroussin.Fl T Cm tree 509*61d06d6bSBaptiste Daroussinto show a human readable representation of the syntax tree. 510*61d06d6bSBaptiste DaroussinIt is useful for debugging the source code of manual pages. 511*61d06d6bSBaptiste DaroussinThe exact format is subject to change, so don't write parsers for it. 512*61d06d6bSBaptiste Daroussin.Pp 513*61d06d6bSBaptiste DaroussinThe first paragraph shows meta data found in the 514*61d06d6bSBaptiste Daroussin.Xr mdoc 7 515*61d06d6bSBaptiste Daroussinprologue, on the 516*61d06d6bSBaptiste Daroussin.Xr man 7 517*61d06d6bSBaptiste Daroussin.Ic \&TH 518*61d06d6bSBaptiste Daroussinline, or the fallbacks used. 519*61d06d6bSBaptiste Daroussin.Pp 520*61d06d6bSBaptiste DaroussinIn the tree dump, each output line shows one syntax tree node. 521*61d06d6bSBaptiste DaroussinChild nodes are indented with respect to their parent node. 522*61d06d6bSBaptiste DaroussinThe columns are: 523*61d06d6bSBaptiste Daroussin.Pp 524*61d06d6bSBaptiste Daroussin.Bl -enum -compact 525*61d06d6bSBaptiste Daroussin.It 526*61d06d6bSBaptiste DaroussinFor macro nodes, the macro name; for text and 527*61d06d6bSBaptiste Daroussin.Xr tbl 7 528*61d06d6bSBaptiste Daroussinnodes, the content. 529*61d06d6bSBaptiste DaroussinThere is a special format for 530*61d06d6bSBaptiste Daroussin.Xr eqn 7 531*61d06d6bSBaptiste Daroussinnodes. 532*61d06d6bSBaptiste Daroussin.It 533*61d06d6bSBaptiste DaroussinNode type (text, elem, block, head, body, body-end, tail, tbl, eqn). 534*61d06d6bSBaptiste Daroussin.It 535*61d06d6bSBaptiste DaroussinFlags: 536*61d06d6bSBaptiste Daroussin.Bl -dash -compact 537*61d06d6bSBaptiste Daroussin.It 538*61d06d6bSBaptiste DaroussinAn opening parenthesis if the node is an opening delimiter. 539*61d06d6bSBaptiste Daroussin.It 540*61d06d6bSBaptiste DaroussinAn asterisk if the node starts a new input line. 541*61d06d6bSBaptiste Daroussin.It 542*61d06d6bSBaptiste DaroussinThe input line number (starting at one). 543*61d06d6bSBaptiste Daroussin.It 544*61d06d6bSBaptiste DaroussinA colon. 545*61d06d6bSBaptiste Daroussin.It 546*61d06d6bSBaptiste DaroussinThe input column number (starting at one). 547*61d06d6bSBaptiste Daroussin.It 548*61d06d6bSBaptiste DaroussinA closing parenthesis if the node is a closing delimiter. 549*61d06d6bSBaptiste Daroussin.It 550*61d06d6bSBaptiste DaroussinA full stop if the node ends a sentence. 551*61d06d6bSBaptiste Daroussin.It 552*61d06d6bSBaptiste DaroussinBROKEN if the node is a block broken by another block. 553*61d06d6bSBaptiste Daroussin.It 554*61d06d6bSBaptiste DaroussinNOSRC if the node is not in the input file, 555*61d06d6bSBaptiste Daroussinbut automatically generated from macros. 556*61d06d6bSBaptiste Daroussin.It 557*61d06d6bSBaptiste DaroussinNOPRT if the node is not supposed to generate output 558*61d06d6bSBaptiste Daroussinfor any output format. 559*61d06d6bSBaptiste Daroussin.El 560*61d06d6bSBaptiste Daroussin.El 561*61d06d6bSBaptiste Daroussin.Pp 562*61d06d6bSBaptiste DaroussinThe following 563*61d06d6bSBaptiste Daroussin.Fl O 564*61d06d6bSBaptiste Daroussinargument is accepted: 565*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 566*61d06d6bSBaptiste Daroussin.It Cm noval 567*61d06d6bSBaptiste DaroussinSkip validation and show the unvalidated syntax tree. 568*61d06d6bSBaptiste DaroussinThis can help to find out whether a given behaviour is caused by 569*61d06d6bSBaptiste Daroussinthe parser or by the validator. 570*61d06d6bSBaptiste DaroussinMeta data is not available in this case. 571*61d06d6bSBaptiste Daroussin.El 572*61d06d6bSBaptiste Daroussin.Sh ENVIRONMENT 573*61d06d6bSBaptiste Daroussin.Bl -tag -width MANPAGER 574*61d06d6bSBaptiste Daroussin.It Ev LC_CTYPE 575*61d06d6bSBaptiste DaroussinThe character encoding 576*61d06d6bSBaptiste Daroussin.Xr locale 1 . 577*61d06d6bSBaptiste DaroussinWhen 578*61d06d6bSBaptiste Daroussin.Sx Locale Output 579*61d06d6bSBaptiste Daroussinis selected, it decides whether to use ASCII or UTF-8 output format. 580*61d06d6bSBaptiste DaroussinIt never affects the interpretation of input files. 581*61d06d6bSBaptiste Daroussin.It Ev MANPAGER 582*61d06d6bSBaptiste DaroussinAny non-empty value of the environment variable 583*61d06d6bSBaptiste Daroussin.Ev MANPAGER 584*61d06d6bSBaptiste Daroussinis used instead of the standard pagination program, 585*61d06d6bSBaptiste Daroussin.Xr more 1 ; 586*61d06d6bSBaptiste Daroussinsee 587*61d06d6bSBaptiste Daroussin.Xr man 1 588*61d06d6bSBaptiste Daroussinfor details. 589*61d06d6bSBaptiste DaroussinOnly used if 590*61d06d6bSBaptiste Daroussin.Fl a 591*61d06d6bSBaptiste Daroussinor 592*61d06d6bSBaptiste Daroussin.Fl l 593*61d06d6bSBaptiste Daroussinis specified. 594*61d06d6bSBaptiste Daroussin.It Ev PAGER 595*61d06d6bSBaptiste DaroussinSpecifies the pagination program to use when 596*61d06d6bSBaptiste Daroussin.Ev MANPAGER 597*61d06d6bSBaptiste Daroussinis not defined. 598*61d06d6bSBaptiste DaroussinIf neither PAGER nor MANPAGER is defined, 599*61d06d6bSBaptiste Daroussin.Xr more 1 600*61d06d6bSBaptiste Daroussin.Fl s 601*61d06d6bSBaptiste Daroussinis used. 602*61d06d6bSBaptiste DaroussinOnly used if 603*61d06d6bSBaptiste Daroussin.Fl a 604*61d06d6bSBaptiste Daroussinor 605*61d06d6bSBaptiste Daroussin.Fl l 606*61d06d6bSBaptiste Daroussinis specified. 607*61d06d6bSBaptiste Daroussin.El 608*61d06d6bSBaptiste Daroussin.Sh EXIT STATUS 609*61d06d6bSBaptiste DaroussinThe 610*61d06d6bSBaptiste Daroussin.Nm 611*61d06d6bSBaptiste Daroussinutility exits with one of the following values, controlled by the message 612*61d06d6bSBaptiste Daroussin.Ar level 613*61d06d6bSBaptiste Daroussinassociated with the 614*61d06d6bSBaptiste Daroussin.Fl W 615*61d06d6bSBaptiste Daroussinoption: 616*61d06d6bSBaptiste Daroussin.Pp 617*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds -compact 618*61d06d6bSBaptiste Daroussin.It 0 619*61d06d6bSBaptiste DaroussinNo base system convention violations, style suggestions, warnings, 620*61d06d6bSBaptiste Daroussinor errors occurred, or those that did were ignored because they 621*61d06d6bSBaptiste Daroussinwere lower than the requested 622*61d06d6bSBaptiste Daroussin.Ar level . 623*61d06d6bSBaptiste Daroussin.It 1 624*61d06d6bSBaptiste DaroussinAt least one base system convention violation or style suggestion 625*61d06d6bSBaptiste Daroussinoccurred, but no warning or error, and 626*61d06d6bSBaptiste Daroussin.Fl W Cm base 627*61d06d6bSBaptiste Daroussinor 628*61d06d6bSBaptiste Daroussin.Fl W Cm style 629*61d06d6bSBaptiste Daroussinwas specified. 630*61d06d6bSBaptiste Daroussin.It 2 631*61d06d6bSBaptiste DaroussinAt least one warning occurred, but no error, and 632*61d06d6bSBaptiste Daroussin.Fl W Cm warning 633*61d06d6bSBaptiste Daroussinor a lower 634*61d06d6bSBaptiste Daroussin.Ar level 635*61d06d6bSBaptiste Daroussinwas requested. 636*61d06d6bSBaptiste Daroussin.It 3 637*61d06d6bSBaptiste DaroussinAt least one parsing error occurred, 638*61d06d6bSBaptiste Daroussinbut no unsupported feature was encountered, and 639*61d06d6bSBaptiste Daroussin.Fl W Cm error 640*61d06d6bSBaptiste Daroussinor a lower 641*61d06d6bSBaptiste Daroussin.Ar level 642*61d06d6bSBaptiste Daroussinwas requested. 643*61d06d6bSBaptiste Daroussin.It 4 644*61d06d6bSBaptiste DaroussinAt least one unsupported feature was encountered, and 645*61d06d6bSBaptiste Daroussin.Fl W Cm unsupp 646*61d06d6bSBaptiste Daroussinor a lower 647*61d06d6bSBaptiste Daroussin.Ar level 648*61d06d6bSBaptiste Daroussinwas requested. 649*61d06d6bSBaptiste Daroussin.It 5 650*61d06d6bSBaptiste DaroussinInvalid command line arguments were specified. 651*61d06d6bSBaptiste DaroussinNo input files have been read. 652*61d06d6bSBaptiste Daroussin.It 6 653*61d06d6bSBaptiste DaroussinAn operating system error occurred, for example exhaustion 654*61d06d6bSBaptiste Daroussinof memory, file descriptors, or process table entries. 655*61d06d6bSBaptiste DaroussinSuch errors cause 656*61d06d6bSBaptiste Daroussin.Nm 657*61d06d6bSBaptiste Daroussinto exit at once, possibly in the middle of parsing or formatting a file. 658*61d06d6bSBaptiste Daroussin.El 659*61d06d6bSBaptiste Daroussin.Pp 660*61d06d6bSBaptiste DaroussinNote that selecting 661*61d06d6bSBaptiste Daroussin.Fl T Cm lint 662*61d06d6bSBaptiste Daroussinoutput mode implies 663*61d06d6bSBaptiste Daroussin.Fl W Cm all . 664*61d06d6bSBaptiste Daroussin.Sh EXAMPLES 665*61d06d6bSBaptiste DaroussinTo page manuals to the terminal: 666*61d06d6bSBaptiste Daroussin.Pp 667*61d06d6bSBaptiste Daroussin.Dl $ mandoc -l mandoc.1 man.1 apropos.1 makewhatis.8 668*61d06d6bSBaptiste Daroussin.Pp 669*61d06d6bSBaptiste DaroussinTo produce HTML manuals with 670*61d06d6bSBaptiste Daroussin.Pa mandoc.css 671*61d06d6bSBaptiste Daroussinas the style-sheet: 672*61d06d6bSBaptiste Daroussin.Pp 673*61d06d6bSBaptiste Daroussin.Dl $ mandoc \-T html -O style=mandoc.css mdoc.7 \*(Gt mdoc.7.html 674*61d06d6bSBaptiste Daroussin.Pp 675*61d06d6bSBaptiste DaroussinTo check over a large set of manuals: 676*61d06d6bSBaptiste Daroussin.Pp 677*61d06d6bSBaptiste Daroussin.Dl $ mandoc \-T lint \(gafind /usr/src -name \e*\e.[1-9]\(ga 678*61d06d6bSBaptiste Daroussin.Pp 679*61d06d6bSBaptiste DaroussinTo produce a series of PostScript manuals for A4 paper: 680*61d06d6bSBaptiste Daroussin.Pp 681*61d06d6bSBaptiste Daroussin.Dl $ mandoc \-T ps \-O paper=a4 mdoc.7 man.7 \*(Gt manuals.ps 682*61d06d6bSBaptiste Daroussin.Pp 683*61d06d6bSBaptiste DaroussinConvert a modern 684*61d06d6bSBaptiste Daroussin.Xr mdoc 7 685*61d06d6bSBaptiste Daroussinmanual to the older 686*61d06d6bSBaptiste Daroussin.Xr man 7 687*61d06d6bSBaptiste Daroussinformat, for use on systems lacking an 688*61d06d6bSBaptiste Daroussin.Xr mdoc 7 689*61d06d6bSBaptiste Daroussinparser: 690*61d06d6bSBaptiste Daroussin.Pp 691*61d06d6bSBaptiste Daroussin.Dl $ mandoc \-T man foo.mdoc \*(Gt foo.man 692*61d06d6bSBaptiste Daroussin.Sh DIAGNOSTICS 693*61d06d6bSBaptiste DaroussinMessages displayed by 694*61d06d6bSBaptiste Daroussin.Nm 695*61d06d6bSBaptiste Daroussinfollow this format: 696*61d06d6bSBaptiste Daroussin.Bd -ragged -offset indent 697*61d06d6bSBaptiste Daroussin.Nm : 698*61d06d6bSBaptiste Daroussin.Ar file : Ns Ar line : Ns Ar column : level : message : macro args 699*61d06d6bSBaptiste Daroussin.Pq Ar os 700*61d06d6bSBaptiste Daroussin.Ed 701*61d06d6bSBaptiste Daroussin.Pp 702*61d06d6bSBaptiste DaroussinLine and column numbers start at 1. 703*61d06d6bSBaptiste DaroussinBoth are omitted for messages referring to an input file as a whole. 704*61d06d6bSBaptiste DaroussinMacro names and arguments are omitted where meaningless. 705*61d06d6bSBaptiste DaroussinThe 706*61d06d6bSBaptiste Daroussin.Ar os 707*61d06d6bSBaptiste Daroussinoperating system specifier is omitted for messages that are relevant 708*61d06d6bSBaptiste Daroussinfor all operating systems. 709*61d06d6bSBaptiste DaroussinFatal messages about invalid command line arguments 710*61d06d6bSBaptiste Daroussinor operating system errors, for example when memory is exhausted, 711*61d06d6bSBaptiste Daroussinmay also omit the 712*61d06d6bSBaptiste Daroussin.Ar file 713*61d06d6bSBaptiste Daroussinand 714*61d06d6bSBaptiste Daroussin.Ar level 715*61d06d6bSBaptiste Daroussinfields. 716*61d06d6bSBaptiste Daroussin.Pp 717*61d06d6bSBaptiste DaroussinMessage levels have the following meanings: 718*61d06d6bSBaptiste Daroussin.Bl -tag -width "warning" 719*61d06d6bSBaptiste Daroussin.It Cm unsupp 720*61d06d6bSBaptiste DaroussinAn input file uses unsupported low-level 721*61d06d6bSBaptiste Daroussin.Xr roff 7 722*61d06d6bSBaptiste Daroussinfeatures. 723*61d06d6bSBaptiste DaroussinThe output may be incomplete and/or misformatted, 724*61d06d6bSBaptiste Daroussinso using GNU troff instead of 725*61d06d6bSBaptiste Daroussin.Nm 726*61d06d6bSBaptiste Daroussinto process the file may be preferable. 727*61d06d6bSBaptiste Daroussin.It Cm error 728*61d06d6bSBaptiste DaroussinIndicates a risk of information loss or severe misformatting, 729*61d06d6bSBaptiste Daroussinin most cases caused by serious syntax errors. 730*61d06d6bSBaptiste Daroussin.It Cm warning 731*61d06d6bSBaptiste DaroussinIndicates a risk that the information shown or its formatting 732*61d06d6bSBaptiste Daroussinmay mismatch the author's intent in minor ways. 733*61d06d6bSBaptiste DaroussinAdditionally, syntax errors are classified at least as warnings, 734*61d06d6bSBaptiste Daroussineven if they do not usually cause misformatting. 735*61d06d6bSBaptiste Daroussin.It Cm style 736*61d06d6bSBaptiste DaroussinAn input file uses dubious or discouraged style. 737*61d06d6bSBaptiste DaroussinThis is not a complaint about the syntax, and probably neither 738*61d06d6bSBaptiste Daroussinformatting nor portability are in danger. 739*61d06d6bSBaptiste DaroussinWhile great care is taken to avoid false positives on the higher 740*61d06d6bSBaptiste Daroussinmessage levels, the 741*61d06d6bSBaptiste Daroussin.Cm style 742*61d06d6bSBaptiste Daroussinlevel tries to reduce the probability that issues go unnoticed, 743*61d06d6bSBaptiste Daroussinso it may occasionally issue bogus suggestions. 744*61d06d6bSBaptiste DaroussinPlease use your good judgement to decide whether any particular 745*61d06d6bSBaptiste Daroussin.Cm style 746*61d06d6bSBaptiste Daroussinsuggestion really justifies a change to the input file. 747*61d06d6bSBaptiste Daroussin.It Cm base 748*61d06d6bSBaptiste DaroussinA convention used in the base system of a specific operating system 749*61d06d6bSBaptiste Daroussinis not adhered to. 750*61d06d6bSBaptiste DaroussinThese are not markup mistakes, and neither the quality of formatting 751*61d06d6bSBaptiste Daroussinnor portability are in danger. 752*61d06d6bSBaptiste DaroussinMessages of the 753*61d06d6bSBaptiste Daroussin.Cm base 754*61d06d6bSBaptiste Daroussinlevel are printed with the more intuitive 755*61d06d6bSBaptiste Daroussin.Cm style 756*61d06d6bSBaptiste Daroussin.Ar level 757*61d06d6bSBaptiste Daroussintag. 758*61d06d6bSBaptiste Daroussin.El 759*61d06d6bSBaptiste Daroussin.Pp 760*61d06d6bSBaptiste DaroussinMessages of the 761*61d06d6bSBaptiste Daroussin.Cm base , 762*61d06d6bSBaptiste Daroussin.Cm style , 763*61d06d6bSBaptiste Daroussin.Cm warning , 764*61d06d6bSBaptiste Daroussin.Cm error , 765*61d06d6bSBaptiste Daroussinand 766*61d06d6bSBaptiste Daroussin.Cm unsupp 767*61d06d6bSBaptiste Daroussinlevels except those about non-existent or unreadable input files 768*61d06d6bSBaptiste Daroussinare hidden unless their level, or a lower level, is requested using a 769*61d06d6bSBaptiste Daroussin.Fl W 770*61d06d6bSBaptiste Daroussinoption or 771*61d06d6bSBaptiste Daroussin.Fl T Cm lint 772*61d06d6bSBaptiste Daroussinoutput mode. 773*61d06d6bSBaptiste Daroussin.Pp 774*61d06d6bSBaptiste DaroussinAs indicated below, all 775*61d06d6bSBaptiste Daroussin.Cm base 776*61d06d6bSBaptiste Daroussinand some 777*61d06d6bSBaptiste Daroussin.Cm style 778*61d06d6bSBaptiste Daroussinchecks are only performed if a specific operating system name occurs 779*61d06d6bSBaptiste Daroussinin the arguments of the 780*61d06d6bSBaptiste Daroussin.Fl W 781*61d06d6bSBaptiste Daroussincommand line option, of the 782*61d06d6bSBaptiste Daroussin.Ic \&Os 783*61d06d6bSBaptiste Daroussinmacro, of the 784*61d06d6bSBaptiste Daroussin.Fl Ios 785*61d06d6bSBaptiste Daroussincommand line option, or, if neither are present, in the return value 786*61d06d6bSBaptiste Daroussinof the 787*61d06d6bSBaptiste Daroussin.Xr uname 3 788*61d06d6bSBaptiste Daroussinfunction. 789*61d06d6bSBaptiste Daroussin.Ss Conventions for base system manuals 790*61d06d6bSBaptiste Daroussin.Bl -ohang 791*61d06d6bSBaptiste Daroussin.It Sy "Mdocdate found" 792*61d06d6bSBaptiste Daroussin.Pq mdoc , Nx 793*61d06d6bSBaptiste DaroussinThe 794*61d06d6bSBaptiste Daroussin.Ic \&Dd 795*61d06d6bSBaptiste Daroussinmacro uses CVS 796*61d06d6bSBaptiste Daroussin.Ic Mdocdate 797*61d06d6bSBaptiste Daroussinkeyword substitution, which is not supported by the 798*61d06d6bSBaptiste Daroussin.Nx 799*61d06d6bSBaptiste Daroussinbase system. 800*61d06d6bSBaptiste DaroussinConsider using the conventional 801*61d06d6bSBaptiste Daroussin.Dq "Month dd, yyyy" 802*61d06d6bSBaptiste Daroussinformat instead. 803*61d06d6bSBaptiste Daroussin.It Sy "Mdocdate missing" 804*61d06d6bSBaptiste Daroussin.Pq mdoc , Ox 805*61d06d6bSBaptiste DaroussinThe 806*61d06d6bSBaptiste Daroussin.Ic \&Dd 807*61d06d6bSBaptiste Daroussinmacro does not use CVS 808*61d06d6bSBaptiste Daroussin.Ic Mdocdate 809*61d06d6bSBaptiste Daroussinkeyword substitution, but using it is conventionally expected in the 810*61d06d6bSBaptiste Daroussin.Ox 811*61d06d6bSBaptiste Daroussinbase system. 812*61d06d6bSBaptiste Daroussin.It Sy "unknown architecture" 813*61d06d6bSBaptiste Daroussin.Pq mdoc , Ox , Nx 814*61d06d6bSBaptiste DaroussinThe third argument of the 815*61d06d6bSBaptiste Daroussin.Ic \&Dt 816*61d06d6bSBaptiste Daroussinmacro does not match any of the architectures this operating system 817*61d06d6bSBaptiste Daroussinis running on. 818*61d06d6bSBaptiste Daroussin.It Sy "operating system explicitly specified" 819*61d06d6bSBaptiste Daroussin.Pq mdoc , Ox , Nx 820*61d06d6bSBaptiste DaroussinThe 821*61d06d6bSBaptiste Daroussin.Ic \&Os 822*61d06d6bSBaptiste Daroussinmacro has an argument. 823*61d06d6bSBaptiste DaroussinIn the base system, it is conventionally left blank. 824*61d06d6bSBaptiste Daroussin.It Sy "RCS id missing" 825*61d06d6bSBaptiste Daroussin.Pq Ox , Nx 826*61d06d6bSBaptiste DaroussinThe manual page lacks the comment line with the RCS identifier 827*61d06d6bSBaptiste Daroussingenerated by CVS 828*61d06d6bSBaptiste Daroussin.Ic OpenBSD 829*61d06d6bSBaptiste Daroussinor 830*61d06d6bSBaptiste Daroussin.Ic NetBSD 831*61d06d6bSBaptiste Daroussinkeyword substitution as conventionally used in these operating systems. 832*61d06d6bSBaptiste Daroussin.It Sy "referenced manual not found" 833*61d06d6bSBaptiste Daroussin.Pq mdoc 834*61d06d6bSBaptiste DaroussinAn 835*61d06d6bSBaptiste Daroussin.Ic \&Xr 836*61d06d6bSBaptiste Daroussinmacro references a manual page that is not found in the base system. 837*61d06d6bSBaptiste DaroussinThe path to look for base system manuals is configurable at compile 838*61d06d6bSBaptiste Daroussintime and defaults to 839*61d06d6bSBaptiste Daroussin.Pa /usr/share/man : /usr/X11R6/man . 840*61d06d6bSBaptiste Daroussin.El 841*61d06d6bSBaptiste Daroussin.Ss Style suggestions 842*61d06d6bSBaptiste Daroussin.Bl -ohang 843*61d06d6bSBaptiste Daroussin.It Sy "legacy man(7) date format" 844*61d06d6bSBaptiste Daroussin.Pq mdoc 845*61d06d6bSBaptiste DaroussinThe 846*61d06d6bSBaptiste Daroussin.Ic \&Dd 847*61d06d6bSBaptiste Daroussinmacro uses the legacy 848*61d06d6bSBaptiste Daroussin.Xr man 7 849*61d06d6bSBaptiste Daroussindate format 850*61d06d6bSBaptiste Daroussin.Dq yyyy-dd-mm . 851*61d06d6bSBaptiste DaroussinConsider using the conventional 852*61d06d6bSBaptiste Daroussin.Xr mdoc 7 853*61d06d6bSBaptiste Daroussindate format 854*61d06d6bSBaptiste Daroussin.Dq "Month dd, yyyy" 855*61d06d6bSBaptiste Daroussininstead. 856*61d06d6bSBaptiste Daroussin.It Sy "normalizing date format to" : No ... 857*61d06d6bSBaptiste Daroussin.Pq mdoc , man 858*61d06d6bSBaptiste DaroussinThe 859*61d06d6bSBaptiste Daroussin.Ic \&Dd 860*61d06d6bSBaptiste Daroussinor 861*61d06d6bSBaptiste Daroussin.Ic \&TH 862*61d06d6bSBaptiste Daroussinmacro provides an abbreviated month name or a day number with a 863*61d06d6bSBaptiste Daroussinleading zero. 864*61d06d6bSBaptiste DaroussinIn the formatted output, the month name is written out in full 865*61d06d6bSBaptiste Daroussinand the leading zero is omitted. 866*61d06d6bSBaptiste Daroussin.It Sy "lower case character in document title" 867*61d06d6bSBaptiste Daroussin.Pq mdoc , man 868*61d06d6bSBaptiste DaroussinThe title is still used as given in the 869*61d06d6bSBaptiste Daroussin.Ic \&Dt 870*61d06d6bSBaptiste Daroussinor 871*61d06d6bSBaptiste Daroussin.Ic \&TH 872*61d06d6bSBaptiste Daroussinmacro. 873*61d06d6bSBaptiste Daroussin.It Sy "duplicate RCS id" 874*61d06d6bSBaptiste DaroussinA single manual page contains two copies of the RCS identifier for 875*61d06d6bSBaptiste Daroussinthe same operating system. 876*61d06d6bSBaptiste DaroussinConsider deleting the later instance and moving the first one up 877*61d06d6bSBaptiste Daroussinto the top of the page. 878*61d06d6bSBaptiste Daroussin.It Sy "possible typo in section name" 879*61d06d6bSBaptiste Daroussin.Pq mdoc 880*61d06d6bSBaptiste DaroussinFuzzy string matching revealed that the argument of an 881*61d06d6bSBaptiste Daroussin.Ic \&Sh 882*61d06d6bSBaptiste Daroussinmacro is similar, but not identical to a standard section name. 883*61d06d6bSBaptiste Daroussin.It Sy "unterminated quoted argument" 884*61d06d6bSBaptiste Daroussin.Pq roff 885*61d06d6bSBaptiste DaroussinMacro arguments can be enclosed in double quote characters 886*61d06d6bSBaptiste Daroussinsuch that space characters and macro names contained in the quoted 887*61d06d6bSBaptiste Daroussinargument need not be escaped. 888*61d06d6bSBaptiste DaroussinThe closing quote of the last argument of a macro can be omitted. 889*61d06d6bSBaptiste DaroussinHowever, omitting it is not recommended because it makes the code 890*61d06d6bSBaptiste Daroussinharder to read. 891*61d06d6bSBaptiste Daroussin.It Sy "useless macro" 892*61d06d6bSBaptiste Daroussin.Pq mdoc 893*61d06d6bSBaptiste DaroussinA 894*61d06d6bSBaptiste Daroussin.Ic \&Bt , 895*61d06d6bSBaptiste Daroussin.Ic \&Tn , 896*61d06d6bSBaptiste Daroussinor 897*61d06d6bSBaptiste Daroussin.Ic \&Ud 898*61d06d6bSBaptiste Daroussinmacro was found. 899*61d06d6bSBaptiste DaroussinSimply delete it: it serves no useful purpose. 900*61d06d6bSBaptiste Daroussin.It Sy "consider using OS macro" 901*61d06d6bSBaptiste Daroussin.Pq mdoc 902*61d06d6bSBaptiste DaroussinA string was found in plain text or in a 903*61d06d6bSBaptiste Daroussin.Ic \&Bx 904*61d06d6bSBaptiste Daroussinmacro that could be represented using 905*61d06d6bSBaptiste Daroussin.Ic \&Ox , 906*61d06d6bSBaptiste Daroussin.Ic \&Nx , 907*61d06d6bSBaptiste Daroussin.Ic \&Fx , 908*61d06d6bSBaptiste Daroussinor 909*61d06d6bSBaptiste Daroussin.Ic \&Dx . 910*61d06d6bSBaptiste Daroussin.It Sy "errnos out of order" 911*61d06d6bSBaptiste Daroussin.Pq mdoc, Nx 912*61d06d6bSBaptiste DaroussinThe 913*61d06d6bSBaptiste Daroussin.Ic \&Er 914*61d06d6bSBaptiste Daroussinitems in a 915*61d06d6bSBaptiste Daroussin.Ic \&Bl 916*61d06d6bSBaptiste Daroussinlist are not in alphabetical order. 917*61d06d6bSBaptiste Daroussin.It Sy "duplicate errno" 918*61d06d6bSBaptiste Daroussin.Pq mdoc, Nx 919*61d06d6bSBaptiste DaroussinA 920*61d06d6bSBaptiste Daroussin.Ic \&Bl 921*61d06d6bSBaptiste Daroussinlist contains two consecutive 922*61d06d6bSBaptiste Daroussin.Ic \&It 923*61d06d6bSBaptiste Daroussinentries describing the same 924*61d06d6bSBaptiste Daroussin.Ic \&Er 925*61d06d6bSBaptiste Daroussinnumber. 926*61d06d6bSBaptiste Daroussin.It Sy "trailing delimiter" 927*61d06d6bSBaptiste Daroussin.Pq mdoc 928*61d06d6bSBaptiste DaroussinThe last argument of an 929*61d06d6bSBaptiste Daroussin.Ic \&Ex , \&Fo , \&Nd , \&Nm , \&Os , \&Sh , \&Ss , \&St , 930*61d06d6bSBaptiste Daroussinor 931*61d06d6bSBaptiste Daroussin.Ic \&Sx 932*61d06d6bSBaptiste Daroussinmacro ends with a trailing delimiter. 933*61d06d6bSBaptiste DaroussinThis is usually bad style and often indicates typos. 934*61d06d6bSBaptiste DaroussinMost likely, the delimiter can be removed. 935*61d06d6bSBaptiste Daroussin.It Sy "no blank before trailing delimiter" 936*61d06d6bSBaptiste Daroussin.Pq mdoc 937*61d06d6bSBaptiste DaroussinThe last argument of a macro that supports trailing delimiter 938*61d06d6bSBaptiste Daroussinarguments is longer than one byte and ends with a trailing delimiter. 939*61d06d6bSBaptiste DaroussinConsider inserting a blank such that the delimiter becomes a separate 940*61d06d6bSBaptiste Daroussinargument, thus moving it out of the scope of the macro. 941*61d06d6bSBaptiste Daroussin.It Sy "fill mode already enabled, skipping" 942*61d06d6bSBaptiste Daroussin.Pq man 943*61d06d6bSBaptiste DaroussinA 944*61d06d6bSBaptiste Daroussin.Ic \&fi 945*61d06d6bSBaptiste Daroussinrequest occurs even though the document is still in fill mode, 946*61d06d6bSBaptiste Daroussinor already switched back to fill mode. 947*61d06d6bSBaptiste DaroussinIt has no effect. 948*61d06d6bSBaptiste Daroussin.It Sy "fill mode already disabled, skipping" 949*61d06d6bSBaptiste Daroussin.Pq man 950*61d06d6bSBaptiste DaroussinAn 951*61d06d6bSBaptiste Daroussin.Ic \&nf 952*61d06d6bSBaptiste Daroussinrequest occurs even though the document already switched to no-fill mode 953*61d06d6bSBaptiste Daroussinand did not switch back to fill mode yet. 954*61d06d6bSBaptiste DaroussinIt has no effect. 955*61d06d6bSBaptiste Daroussin.It Sy "verbatim \(dq--\(dq, maybe consider using \e(em" 956*61d06d6bSBaptiste Daroussin.Pq mdoc 957*61d06d6bSBaptiste DaroussinEven though the ASCII output device renders an em-dash as 958*61d06d6bSBaptiste Daroussin.Qq \-\- , 959*61d06d6bSBaptiste Daroussinthat is not a good way to write it in an input file 960*61d06d6bSBaptiste Daroussinbecause it renders poorly on all other output devices. 961*61d06d6bSBaptiste Daroussin.It Sy "function name without markup" 962*61d06d6bSBaptiste Daroussin.Pq mdoc 963*61d06d6bSBaptiste DaroussinA word followed by an empty pair of parentheses occurs on a text line. 964*61d06d6bSBaptiste DaroussinConsider using an 965*61d06d6bSBaptiste Daroussin.Ic \&Fn 966*61d06d6bSBaptiste Daroussinor 967*61d06d6bSBaptiste Daroussin.Ic \&Xr 968*61d06d6bSBaptiste Daroussinmacro. 969*61d06d6bSBaptiste Daroussin.It Sy "whitespace at end of input line" 970*61d06d6bSBaptiste Daroussin.Pq mdoc , man , roff 971*61d06d6bSBaptiste DaroussinWhitespace at the end of input lines is almost never semantically 972*61d06d6bSBaptiste Daroussinsignificant \(em but in the odd case where it might be, it is 973*61d06d6bSBaptiste Daroussinextremely confusing when reviewing and maintaining documents. 974*61d06d6bSBaptiste Daroussin.It Sy "bad comment style" 975*61d06d6bSBaptiste Daroussin.Pq roff 976*61d06d6bSBaptiste DaroussinComment lines start with a dot, a backslash, and a double-quote character. 977*61d06d6bSBaptiste DaroussinThe 978*61d06d6bSBaptiste Daroussin.Nm 979*61d06d6bSBaptiste Daroussinutility treats the line as a comment line even without the backslash, 980*61d06d6bSBaptiste Daroussinbut leaving out the backslash might not be portable. 981*61d06d6bSBaptiste Daroussin.El 982*61d06d6bSBaptiste Daroussin.Ss Warnings related to the document prologue 983*61d06d6bSBaptiste Daroussin.Bl -ohang 984*61d06d6bSBaptiste Daroussin.It Sy "missing manual title, using UNTITLED" 985*61d06d6bSBaptiste Daroussin.Pq mdoc 986*61d06d6bSBaptiste DaroussinA 987*61d06d6bSBaptiste Daroussin.Ic \&Dt 988*61d06d6bSBaptiste Daroussinmacro has no arguments, or there is no 989*61d06d6bSBaptiste Daroussin.Ic \&Dt 990*61d06d6bSBaptiste Daroussinmacro before the first non-prologue macro. 991*61d06d6bSBaptiste Daroussin.It Sy "missing manual title, using \(dq\(dq" 992*61d06d6bSBaptiste Daroussin.Pq man 993*61d06d6bSBaptiste DaroussinThere is no 994*61d06d6bSBaptiste Daroussin.Ic \&TH 995*61d06d6bSBaptiste Daroussinmacro, or it has no arguments. 996*61d06d6bSBaptiste Daroussin.It Sy "missing manual section, using \(dq\(dq" 997*61d06d6bSBaptiste Daroussin.Pq mdoc , man 998*61d06d6bSBaptiste DaroussinA 999*61d06d6bSBaptiste Daroussin.Ic \&Dt 1000*61d06d6bSBaptiste Daroussinor 1001*61d06d6bSBaptiste Daroussin.Ic \&TH 1002*61d06d6bSBaptiste Daroussinmacro lacks the mandatory section argument. 1003*61d06d6bSBaptiste Daroussin.It Sy "unknown manual section" 1004*61d06d6bSBaptiste Daroussin.Pq mdoc 1005*61d06d6bSBaptiste DaroussinThe section number in a 1006*61d06d6bSBaptiste Daroussin.Ic \&Dt 1007*61d06d6bSBaptiste Daroussinline is invalid, but still used. 1008*61d06d6bSBaptiste Daroussin.It Sy "missing date, using today's date" 1009*61d06d6bSBaptiste Daroussin.Pq mdoc, man 1010*61d06d6bSBaptiste DaroussinThe document was parsed as 1011*61d06d6bSBaptiste Daroussin.Xr mdoc 7 1012*61d06d6bSBaptiste Daroussinand it has no 1013*61d06d6bSBaptiste Daroussin.Ic \&Dd 1014*61d06d6bSBaptiste Daroussinmacro, or the 1015*61d06d6bSBaptiste Daroussin.Ic \&Dd 1016*61d06d6bSBaptiste Daroussinmacro has no arguments or only empty arguments; 1017*61d06d6bSBaptiste Daroussinor the document was parsed as 1018*61d06d6bSBaptiste Daroussin.Xr man 7 1019*61d06d6bSBaptiste Daroussinand it has no 1020*61d06d6bSBaptiste Daroussin.Ic \&TH 1021*61d06d6bSBaptiste Daroussinmacro, or the 1022*61d06d6bSBaptiste Daroussin.Ic \&TH 1023*61d06d6bSBaptiste Daroussinmacro has less than three arguments or its third argument is empty. 1024*61d06d6bSBaptiste Daroussin.It Sy "cannot parse date, using it verbatim" 1025*61d06d6bSBaptiste Daroussin.Pq mdoc , man 1026*61d06d6bSBaptiste DaroussinThe date given in a 1027*61d06d6bSBaptiste Daroussin.Ic \&Dd 1028*61d06d6bSBaptiste Daroussinor 1029*61d06d6bSBaptiste Daroussin.Ic \&TH 1030*61d06d6bSBaptiste Daroussinmacro does not follow the conventional format. 1031*61d06d6bSBaptiste Daroussin.It Sy "date in the future, using it anyway" 1032*61d06d6bSBaptiste Daroussin.Pq mdoc , man 1033*61d06d6bSBaptiste DaroussinThe date given in a 1034*61d06d6bSBaptiste Daroussin.Ic \&Dd 1035*61d06d6bSBaptiste Daroussinor 1036*61d06d6bSBaptiste Daroussin.Ic \&TH 1037*61d06d6bSBaptiste Daroussinmacro is more than a day ahead of the current system 1038*61d06d6bSBaptiste Daroussin.Xr time 3 . 1039*61d06d6bSBaptiste Daroussin.It Sy "missing Os macro, using \(dq\(dq" 1040*61d06d6bSBaptiste Daroussin.Pq mdoc 1041*61d06d6bSBaptiste DaroussinThe default or current system is not shown in this case. 1042*61d06d6bSBaptiste Daroussin.It Sy "late prologue macro" 1043*61d06d6bSBaptiste Daroussin.Pq mdoc 1044*61d06d6bSBaptiste DaroussinA 1045*61d06d6bSBaptiste Daroussin.Ic \&Dd 1046*61d06d6bSBaptiste Daroussinor 1047*61d06d6bSBaptiste Daroussin.Ic \&Os 1048*61d06d6bSBaptiste Daroussinmacro occurs after some non-prologue macro, but still takes effect. 1049*61d06d6bSBaptiste Daroussin.It Sy "prologue macros out of order" 1050*61d06d6bSBaptiste Daroussin.Pq mdoc 1051*61d06d6bSBaptiste DaroussinThe prologue macros are not given in the conventional order 1052*61d06d6bSBaptiste Daroussin.Ic \&Dd , 1053*61d06d6bSBaptiste Daroussin.Ic \&Dt , 1054*61d06d6bSBaptiste Daroussin.Ic \&Os . 1055*61d06d6bSBaptiste DaroussinAll three macros are used even when given in another order. 1056*61d06d6bSBaptiste Daroussin.El 1057*61d06d6bSBaptiste Daroussin.Ss Warnings regarding document structure 1058*61d06d6bSBaptiste Daroussin.Bl -ohang 1059*61d06d6bSBaptiste Daroussin.It Sy ".so is fragile, better use ln(1)" 1060*61d06d6bSBaptiste Daroussin.Pq roff 1061*61d06d6bSBaptiste DaroussinIncluding files only works when the parser program runs with the correct 1062*61d06d6bSBaptiste Daroussincurrent working directory. 1063*61d06d6bSBaptiste Daroussin.It Sy "no document body" 1064*61d06d6bSBaptiste Daroussin.Pq mdoc , man 1065*61d06d6bSBaptiste DaroussinThe document body contains neither text nor macros. 1066*61d06d6bSBaptiste DaroussinAn empty document is shown, consisting only of a header and a footer line. 1067*61d06d6bSBaptiste Daroussin.It Sy "content before first section header" 1068*61d06d6bSBaptiste Daroussin.Pq mdoc , man 1069*61d06d6bSBaptiste DaroussinSome macros or text precede the first 1070*61d06d6bSBaptiste Daroussin.Ic \&Sh 1071*61d06d6bSBaptiste Daroussinor 1072*61d06d6bSBaptiste Daroussin.Ic \&SH 1073*61d06d6bSBaptiste Daroussinsection header. 1074*61d06d6bSBaptiste DaroussinThe offending macros and text are parsed and added to the top level 1075*61d06d6bSBaptiste Daroussinof the syntax tree, outside any section block. 1076*61d06d6bSBaptiste Daroussin.It Sy "first section is not NAME" 1077*61d06d6bSBaptiste Daroussin.Pq mdoc 1078*61d06d6bSBaptiste DaroussinThe argument of the first 1079*61d06d6bSBaptiste Daroussin.Ic \&Sh 1080*61d06d6bSBaptiste Daroussinmacro is not 1081*61d06d6bSBaptiste Daroussin.Sq NAME . 1082*61d06d6bSBaptiste DaroussinThis may confuse 1083*61d06d6bSBaptiste Daroussin.Xr makewhatis 8 1084*61d06d6bSBaptiste Daroussinand 1085*61d06d6bSBaptiste Daroussin.Xr apropos 1 . 1086*61d06d6bSBaptiste Daroussin.It Sy "NAME section without Nm before Nd" 1087*61d06d6bSBaptiste Daroussin.Pq mdoc 1088*61d06d6bSBaptiste DaroussinThe NAME section does not contain any 1089*61d06d6bSBaptiste Daroussin.Ic \&Nm 1090*61d06d6bSBaptiste Daroussinchild macro before the first 1091*61d06d6bSBaptiste Daroussin.Ic \&Nd 1092*61d06d6bSBaptiste Daroussinmacro. 1093*61d06d6bSBaptiste Daroussin.It Sy "NAME section without description" 1094*61d06d6bSBaptiste Daroussin.Pq mdoc 1095*61d06d6bSBaptiste DaroussinThe NAME section lacks the mandatory 1096*61d06d6bSBaptiste Daroussin.Ic \&Nd 1097*61d06d6bSBaptiste Daroussinchild macro. 1098*61d06d6bSBaptiste Daroussin.It Sy "description not at the end of NAME" 1099*61d06d6bSBaptiste Daroussin.Pq mdoc 1100*61d06d6bSBaptiste DaroussinThe NAME section does contain an 1101*61d06d6bSBaptiste Daroussin.Ic \&Nd 1102*61d06d6bSBaptiste Daroussinchild macro, but other content follows it. 1103*61d06d6bSBaptiste Daroussin.It Sy "bad NAME section content" 1104*61d06d6bSBaptiste Daroussin.Pq mdoc 1105*61d06d6bSBaptiste DaroussinThe NAME section contains plain text or macros other than 1106*61d06d6bSBaptiste Daroussin.Ic \&Nm 1107*61d06d6bSBaptiste Daroussinand 1108*61d06d6bSBaptiste Daroussin.Ic \&Nd . 1109*61d06d6bSBaptiste Daroussin.It Sy "missing comma before name" 1110*61d06d6bSBaptiste Daroussin.Pq mdoc 1111*61d06d6bSBaptiste DaroussinThe NAME section contains an 1112*61d06d6bSBaptiste Daroussin.Ic \&Nm 1113*61d06d6bSBaptiste Daroussinmacro that is neither the first one nor preceded by a comma. 1114*61d06d6bSBaptiste Daroussin.It Sy "missing description line, using \(dq\(dq" 1115*61d06d6bSBaptiste Daroussin.Pq mdoc 1116*61d06d6bSBaptiste DaroussinThe 1117*61d06d6bSBaptiste Daroussin.Ic \&Nd 1118*61d06d6bSBaptiste Daroussinmacro lacks the required argument. 1119*61d06d6bSBaptiste DaroussinThe title line of the manual will end after the dash. 1120*61d06d6bSBaptiste Daroussin.It Sy "description line outside NAME section" 1121*61d06d6bSBaptiste Daroussin.Pq mdoc 1122*61d06d6bSBaptiste DaroussinAn 1123*61d06d6bSBaptiste Daroussin.Ic \&Nd 1124*61d06d6bSBaptiste Daroussinmacro appears outside the NAME section. 1125*61d06d6bSBaptiste DaroussinThe arguments are printed anyway and the following text is used for 1126*61d06d6bSBaptiste Daroussin.Xr apropos 1 , 1127*61d06d6bSBaptiste Daroussinbut none of that behaviour is portable. 1128*61d06d6bSBaptiste Daroussin.It Sy "sections out of conventional order" 1129*61d06d6bSBaptiste Daroussin.Pq mdoc 1130*61d06d6bSBaptiste DaroussinA standard section occurs after another section it usually precedes. 1131*61d06d6bSBaptiste DaroussinAll section titles are used as given, 1132*61d06d6bSBaptiste Daroussinand the order of sections is not changed. 1133*61d06d6bSBaptiste Daroussin.It Sy "duplicate section title" 1134*61d06d6bSBaptiste Daroussin.Pq mdoc 1135*61d06d6bSBaptiste DaroussinThe same standard section title occurs more than once. 1136*61d06d6bSBaptiste Daroussin.It Sy "unexpected section" 1137*61d06d6bSBaptiste Daroussin.Pq mdoc 1138*61d06d6bSBaptiste DaroussinA standard section header occurs in a section of the manual 1139*61d06d6bSBaptiste Daroussinwhere it normally isn't useful. 1140*61d06d6bSBaptiste Daroussin.It Sy "cross reference to self" 1141*61d06d6bSBaptiste Daroussin.Pq mdoc 1142*61d06d6bSBaptiste DaroussinAn 1143*61d06d6bSBaptiste Daroussin.Ic \&Xr 1144*61d06d6bSBaptiste Daroussinmacro refers to a name and section matching the section of the present 1145*61d06d6bSBaptiste Daroussinmanual page and a name mentioned in an 1146*61d06d6bSBaptiste Daroussin.Ic \&Nm 1147*61d06d6bSBaptiste Daroussinmacro in the NAME or SYNOPSIS section, or in an 1148*61d06d6bSBaptiste Daroussin.Ic \&Fn 1149*61d06d6bSBaptiste Daroussinor 1150*61d06d6bSBaptiste Daroussin.Ic \&Fo 1151*61d06d6bSBaptiste Daroussinmacro in the SYNOPSIS. 1152*61d06d6bSBaptiste DaroussinConsider using 1153*61d06d6bSBaptiste Daroussin.Ic \&Nm 1154*61d06d6bSBaptiste Daroussinor 1155*61d06d6bSBaptiste Daroussin.Ic \&Fn 1156*61d06d6bSBaptiste Daroussininstead of 1157*61d06d6bSBaptiste Daroussin.Ic \&Xr . 1158*61d06d6bSBaptiste Daroussin.It Sy "unusual Xr order" 1159*61d06d6bSBaptiste Daroussin.Pq mdoc 1160*61d06d6bSBaptiste DaroussinIn the SEE ALSO section, an 1161*61d06d6bSBaptiste Daroussin.Ic \&Xr 1162*61d06d6bSBaptiste Daroussinmacro with a lower section number follows one with a higher number, 1163*61d06d6bSBaptiste Daroussinor two 1164*61d06d6bSBaptiste Daroussin.Ic \&Xr 1165*61d06d6bSBaptiste Daroussinmacros referring to the same section are out of alphabetical order. 1166*61d06d6bSBaptiste Daroussin.It Sy "unusual Xr punctuation" 1167*61d06d6bSBaptiste Daroussin.Pq mdoc 1168*61d06d6bSBaptiste DaroussinIn the SEE ALSO section, punctuation between two 1169*61d06d6bSBaptiste Daroussin.Ic \&Xr 1170*61d06d6bSBaptiste Daroussinmacros differs from a single comma, or there is trailing punctuation 1171*61d06d6bSBaptiste Daroussinafter the last 1172*61d06d6bSBaptiste Daroussin.Ic \&Xr 1173*61d06d6bSBaptiste Daroussinmacro. 1174*61d06d6bSBaptiste Daroussin.It Sy "AUTHORS section without An macro" 1175*61d06d6bSBaptiste Daroussin.Pq mdoc 1176*61d06d6bSBaptiste DaroussinAn AUTHORS sections contains no 1177*61d06d6bSBaptiste Daroussin.Ic \&An 1178*61d06d6bSBaptiste Daroussinmacros, or only empty ones. 1179*61d06d6bSBaptiste DaroussinProbably, there are author names lacking markup. 1180*61d06d6bSBaptiste Daroussin.El 1181*61d06d6bSBaptiste Daroussin.Ss "Warnings related to macros and nesting" 1182*61d06d6bSBaptiste Daroussin.Bl -ohang 1183*61d06d6bSBaptiste Daroussin.It Sy "obsolete macro" 1184*61d06d6bSBaptiste Daroussin.Pq mdoc 1185*61d06d6bSBaptiste DaroussinSee the 1186*61d06d6bSBaptiste Daroussin.Xr mdoc 7 1187*61d06d6bSBaptiste Daroussinmanual for replacements. 1188*61d06d6bSBaptiste Daroussin.It Sy "macro neither callable nor escaped" 1189*61d06d6bSBaptiste Daroussin.Pq mdoc 1190*61d06d6bSBaptiste DaroussinThe name of a macro that is not callable appears on a macro line. 1191*61d06d6bSBaptiste DaroussinIt is printed verbatim. 1192*61d06d6bSBaptiste DaroussinIf the intention is to call it, move it to its own input line; 1193*61d06d6bSBaptiste Daroussinotherwise, escape it by prepending 1194*61d06d6bSBaptiste Daroussin.Sq \e& . 1195*61d06d6bSBaptiste Daroussin.It Sy "skipping paragraph macro" 1196*61d06d6bSBaptiste DaroussinIn 1197*61d06d6bSBaptiste Daroussin.Xr mdoc 7 1198*61d06d6bSBaptiste Daroussindocuments, this happens 1199*61d06d6bSBaptiste Daroussin.Bl -dash -compact 1200*61d06d6bSBaptiste Daroussin.It 1201*61d06d6bSBaptiste Daroussinat the beginning and end of sections and subsections 1202*61d06d6bSBaptiste Daroussin.It 1203*61d06d6bSBaptiste Daroussinright before non-compact lists and displays 1204*61d06d6bSBaptiste Daroussin.It 1205*61d06d6bSBaptiste Daroussinat the end of items in non-column, non-compact lists 1206*61d06d6bSBaptiste Daroussin.It 1207*61d06d6bSBaptiste Daroussinand for multiple consecutive paragraph macros. 1208*61d06d6bSBaptiste Daroussin.El 1209*61d06d6bSBaptiste DaroussinIn 1210*61d06d6bSBaptiste Daroussin.Xr man 7 1211*61d06d6bSBaptiste Daroussindocuments, it happens 1212*61d06d6bSBaptiste Daroussin.Bl -dash -compact 1213*61d06d6bSBaptiste Daroussin.It 1214*61d06d6bSBaptiste Daroussinfor empty 1215*61d06d6bSBaptiste Daroussin.Ic \&P , 1216*61d06d6bSBaptiste Daroussin.Ic \&PP , 1217*61d06d6bSBaptiste Daroussinand 1218*61d06d6bSBaptiste Daroussin.Ic \&LP 1219*61d06d6bSBaptiste Daroussinmacros 1220*61d06d6bSBaptiste Daroussin.It 1221*61d06d6bSBaptiste Daroussinfor 1222*61d06d6bSBaptiste Daroussin.Ic \&IP 1223*61d06d6bSBaptiste Daroussinmacros having neither head nor body arguments 1224*61d06d6bSBaptiste Daroussin.It 1225*61d06d6bSBaptiste Daroussinfor 1226*61d06d6bSBaptiste Daroussin.Ic \&br 1227*61d06d6bSBaptiste Daroussinor 1228*61d06d6bSBaptiste Daroussin.Ic \&sp 1229*61d06d6bSBaptiste Daroussinright after 1230*61d06d6bSBaptiste Daroussin.Ic \&SH 1231*61d06d6bSBaptiste Daroussinor 1232*61d06d6bSBaptiste Daroussin.Ic \&SS 1233*61d06d6bSBaptiste Daroussin.El 1234*61d06d6bSBaptiste Daroussin.It Sy "moving paragraph macro out of list" 1235*61d06d6bSBaptiste Daroussin.Pq mdoc 1236*61d06d6bSBaptiste DaroussinA list item in a 1237*61d06d6bSBaptiste Daroussin.Ic \&Bl 1238*61d06d6bSBaptiste Daroussinlist contains a trailing paragraph macro. 1239*61d06d6bSBaptiste DaroussinThe paragraph macro is moved after the end of the list. 1240*61d06d6bSBaptiste Daroussin.It Sy "skipping no-space macro" 1241*61d06d6bSBaptiste Daroussin.Pq mdoc 1242*61d06d6bSBaptiste DaroussinAn input line begins with an 1243*61d06d6bSBaptiste Daroussin.Ic \&Ns 1244*61d06d6bSBaptiste Daroussinmacro, or the next argument after an 1245*61d06d6bSBaptiste Daroussin.Ic \&Ns 1246*61d06d6bSBaptiste Daroussinmacro is an isolated closing delimiter. 1247*61d06d6bSBaptiste DaroussinThe macro is ignored. 1248*61d06d6bSBaptiste Daroussin.It Sy "blocks badly nested" 1249*61d06d6bSBaptiste Daroussin.Pq mdoc 1250*61d06d6bSBaptiste DaroussinIf two blocks intersect, one should completely contain the other. 1251*61d06d6bSBaptiste DaroussinOtherwise, rendered output is likely to look strange in any output 1252*61d06d6bSBaptiste Daroussinformat, and rendering in SGML-based output formats is likely to be 1253*61d06d6bSBaptiste Daroussinoutright wrong because such languages do not support badly nested 1254*61d06d6bSBaptiste Daroussinblocks at all. 1255*61d06d6bSBaptiste DaroussinTypical examples of badly nested blocks are 1256*61d06d6bSBaptiste Daroussin.Qq Ic \&Ao \&Bo \&Ac \&Bc 1257*61d06d6bSBaptiste Daroussinand 1258*61d06d6bSBaptiste Daroussin.Qq Ic \&Ao \&Bq \&Ac . 1259*61d06d6bSBaptiste DaroussinIn these examples, 1260*61d06d6bSBaptiste Daroussin.Ic \&Ac 1261*61d06d6bSBaptiste Daroussinbreaks 1262*61d06d6bSBaptiste Daroussin.Ic \&Bo 1263*61d06d6bSBaptiste Daroussinand 1264*61d06d6bSBaptiste Daroussin.Ic \&Bq , 1265*61d06d6bSBaptiste Daroussinrespectively. 1266*61d06d6bSBaptiste Daroussin.It Sy "nested displays are not portable" 1267*61d06d6bSBaptiste Daroussin.Pq mdoc 1268*61d06d6bSBaptiste DaroussinA 1269*61d06d6bSBaptiste Daroussin.Ic \&Bd , 1270*61d06d6bSBaptiste Daroussin.Ic \&D1 , 1271*61d06d6bSBaptiste Daroussinor 1272*61d06d6bSBaptiste Daroussin.Ic \&Dl 1273*61d06d6bSBaptiste Daroussindisplay occurs nested inside another 1274*61d06d6bSBaptiste Daroussin.Ic \&Bd 1275*61d06d6bSBaptiste Daroussindisplay. 1276*61d06d6bSBaptiste DaroussinThis works with 1277*61d06d6bSBaptiste Daroussin.Nm , 1278*61d06d6bSBaptiste Daroussinbut fails with most other implementations. 1279*61d06d6bSBaptiste Daroussin.It Sy "moving content out of list" 1280*61d06d6bSBaptiste Daroussin.Pq mdoc 1281*61d06d6bSBaptiste DaroussinA 1282*61d06d6bSBaptiste Daroussin.Ic \&Bl 1283*61d06d6bSBaptiste Daroussinlist block contains text or macros before the first 1284*61d06d6bSBaptiste Daroussin.Ic \&It 1285*61d06d6bSBaptiste Daroussinmacro. 1286*61d06d6bSBaptiste DaroussinThe offending children are moved before the beginning of the list. 1287*61d06d6bSBaptiste Daroussin.It Sy "first macro on line" 1288*61d06d6bSBaptiste DaroussinInside a 1289*61d06d6bSBaptiste Daroussin.Ic \&Bl Fl column 1290*61d06d6bSBaptiste Daroussinlist, a 1291*61d06d6bSBaptiste Daroussin.Ic \&Ta 1292*61d06d6bSBaptiste Daroussinmacro occurs as the first macro on a line, which is not portable. 1293*61d06d6bSBaptiste Daroussin.It Sy "line scope broken" 1294*61d06d6bSBaptiste Daroussin.Pq man 1295*61d06d6bSBaptiste DaroussinWhile parsing the next-line scope of the previous macro, 1296*61d06d6bSBaptiste Daroussinanother macro is found that prematurely terminates the previous one. 1297*61d06d6bSBaptiste DaroussinThe previous, interrupted macro is deleted from the parse tree. 1298*61d06d6bSBaptiste Daroussin.El 1299*61d06d6bSBaptiste Daroussin.Ss "Warnings related to missing arguments" 1300*61d06d6bSBaptiste Daroussin.Bl -ohang 1301*61d06d6bSBaptiste Daroussin.It Sy "skipping empty request" 1302*61d06d6bSBaptiste Daroussin.Pq roff , eqn 1303*61d06d6bSBaptiste DaroussinThe macro name is missing from a macro definition request, 1304*61d06d6bSBaptiste Daroussinor an 1305*61d06d6bSBaptiste Daroussin.Xr eqn 7 1306*61d06d6bSBaptiste Daroussincontrol statement or operation keyword lacks its required argument. 1307*61d06d6bSBaptiste Daroussin.It Sy "conditional request controls empty scope" 1308*61d06d6bSBaptiste Daroussin.Pq roff 1309*61d06d6bSBaptiste DaroussinA conditional request is only useful if any of the following 1310*61d06d6bSBaptiste Daroussinfollows it on the same logical input line: 1311*61d06d6bSBaptiste Daroussin.Bl -dash -compact 1312*61d06d6bSBaptiste Daroussin.It 1313*61d06d6bSBaptiste DaroussinThe 1314*61d06d6bSBaptiste Daroussin.Sq \e{ 1315*61d06d6bSBaptiste Daroussinkeyword to open a multi-line scope. 1316*61d06d6bSBaptiste Daroussin.It 1317*61d06d6bSBaptiste DaroussinA request or macro or some text, resulting in a single-line scope. 1318*61d06d6bSBaptiste Daroussin.It 1319*61d06d6bSBaptiste DaroussinThe immediate end of the logical line without any intervening whitespace, 1320*61d06d6bSBaptiste Daroussinresulting in next-line scope. 1321*61d06d6bSBaptiste Daroussin.El 1322*61d06d6bSBaptiste DaroussinHere, a conditional request is followed by trailing whitespace only, 1323*61d06d6bSBaptiste Daroussinand there is no other content on its logical input line. 1324*61d06d6bSBaptiste DaroussinNote that it doesn't matter whether the logical input line is split 1325*61d06d6bSBaptiste Daroussinacross multiple physical input lines using 1326*61d06d6bSBaptiste Daroussin.Sq \e 1327*61d06d6bSBaptiste Daroussinline continuation characters. 1328*61d06d6bSBaptiste DaroussinThis is one of the rare cases 1329*61d06d6bSBaptiste Daroussinwhere trailing whitespace is syntactically significant. 1330*61d06d6bSBaptiste DaroussinThe conditional request controls a scope containing whitespace only, 1331*61d06d6bSBaptiste Daroussinso it is unlikely to have a significant effect, 1332*61d06d6bSBaptiste Daroussinexcept that it may control a following 1333*61d06d6bSBaptiste Daroussin.Ic \&el 1334*61d06d6bSBaptiste Daroussinclause. 1335*61d06d6bSBaptiste Daroussin.It Sy "skipping empty macro" 1336*61d06d6bSBaptiste Daroussin.Pq mdoc 1337*61d06d6bSBaptiste DaroussinThe indicated macro has no arguments and hence no effect. 1338*61d06d6bSBaptiste Daroussin.It Sy "empty block" 1339*61d06d6bSBaptiste Daroussin.Pq mdoc , man 1340*61d06d6bSBaptiste DaroussinA 1341*61d06d6bSBaptiste Daroussin.Ic \&Bd , 1342*61d06d6bSBaptiste Daroussin.Ic \&Bk , 1343*61d06d6bSBaptiste Daroussin.Ic \&Bl , 1344*61d06d6bSBaptiste Daroussin.Ic \&D1 , 1345*61d06d6bSBaptiste Daroussin.Ic \&Dl , 1346*61d06d6bSBaptiste Daroussin.Ic \&MT , 1347*61d06d6bSBaptiste Daroussin.Ic \&RS , 1348*61d06d6bSBaptiste Daroussinor 1349*61d06d6bSBaptiste Daroussin.Ic \&UR 1350*61d06d6bSBaptiste Daroussinblock contains nothing in its body and will produce no output. 1351*61d06d6bSBaptiste Daroussin.It Sy "empty argument, using 0n" 1352*61d06d6bSBaptiste Daroussin.Pq mdoc 1353*61d06d6bSBaptiste DaroussinThe required width is missing after 1354*61d06d6bSBaptiste Daroussin.Ic \&Bd 1355*61d06d6bSBaptiste Daroussinor 1356*61d06d6bSBaptiste Daroussin.Ic \&Bl 1357*61d06d6bSBaptiste Daroussin.Fl offset 1358*61d06d6bSBaptiste Daroussinor 1359*61d06d6bSBaptiste Daroussin.Fl width . 1360*61d06d6bSBaptiste Daroussin.It Sy "missing display type, using -ragged" 1361*61d06d6bSBaptiste Daroussin.Pq mdoc 1362*61d06d6bSBaptiste DaroussinThe 1363*61d06d6bSBaptiste Daroussin.Ic \&Bd 1364*61d06d6bSBaptiste Daroussinmacro is invoked without the required display type. 1365*61d06d6bSBaptiste Daroussin.It Sy "list type is not the first argument" 1366*61d06d6bSBaptiste Daroussin.Pq mdoc 1367*61d06d6bSBaptiste DaroussinIn a 1368*61d06d6bSBaptiste Daroussin.Ic \&Bl 1369*61d06d6bSBaptiste Daroussinmacro, at least one other argument precedes the type argument. 1370*61d06d6bSBaptiste DaroussinThe 1371*61d06d6bSBaptiste Daroussin.Nm 1372*61d06d6bSBaptiste Daroussinutility copes with any argument order, but some other 1373*61d06d6bSBaptiste Daroussin.Xr mdoc 7 1374*61d06d6bSBaptiste Daroussinimplementations do not. 1375*61d06d6bSBaptiste Daroussin.It Sy "missing -width in -tag list, using 8n" 1376*61d06d6bSBaptiste Daroussin.Pq mdoc 1377*61d06d6bSBaptiste DaroussinEvery 1378*61d06d6bSBaptiste Daroussin.Ic \&Bl 1379*61d06d6bSBaptiste Daroussinmacro having the 1380*61d06d6bSBaptiste Daroussin.Fl tag 1381*61d06d6bSBaptiste Daroussinargument requires 1382*61d06d6bSBaptiste Daroussin.Fl width , 1383*61d06d6bSBaptiste Daroussintoo. 1384*61d06d6bSBaptiste Daroussin.It Sy "missing utility name, using \(dq\(dq" 1385*61d06d6bSBaptiste Daroussin.Pq mdoc 1386*61d06d6bSBaptiste DaroussinThe 1387*61d06d6bSBaptiste Daroussin.Ic \&Ex Fl std 1388*61d06d6bSBaptiste Daroussinmacro is called without an argument before 1389*61d06d6bSBaptiste Daroussin.Ic \&Nm 1390*61d06d6bSBaptiste Daroussinhas first been called with an argument. 1391*61d06d6bSBaptiste Daroussin.It Sy "missing function name, using \(dq\(dq" 1392*61d06d6bSBaptiste Daroussin.Pq mdoc 1393*61d06d6bSBaptiste DaroussinThe 1394*61d06d6bSBaptiste Daroussin.Ic \&Fo 1395*61d06d6bSBaptiste Daroussinmacro is called without an argument. 1396*61d06d6bSBaptiste DaroussinNo function name is printed. 1397*61d06d6bSBaptiste Daroussin.It Sy "empty head in list item" 1398*61d06d6bSBaptiste Daroussin.Pq mdoc 1399*61d06d6bSBaptiste DaroussinIn a 1400*61d06d6bSBaptiste Daroussin.Ic \&Bl 1401*61d06d6bSBaptiste Daroussin.Fl diag , 1402*61d06d6bSBaptiste Daroussin.Fl hang , 1403*61d06d6bSBaptiste Daroussin.Fl inset , 1404*61d06d6bSBaptiste Daroussin.Fl ohang , 1405*61d06d6bSBaptiste Daroussinor 1406*61d06d6bSBaptiste Daroussin.Fl tag 1407*61d06d6bSBaptiste Daroussinlist, an 1408*61d06d6bSBaptiste Daroussin.Ic \&It 1409*61d06d6bSBaptiste Daroussinmacro lacks the required argument. 1410*61d06d6bSBaptiste DaroussinThe item head is left empty. 1411*61d06d6bSBaptiste Daroussin.It Sy "empty list item" 1412*61d06d6bSBaptiste Daroussin.Pq mdoc 1413*61d06d6bSBaptiste DaroussinIn a 1414*61d06d6bSBaptiste Daroussin.Ic \&Bl 1415*61d06d6bSBaptiste Daroussin.Fl bullet , 1416*61d06d6bSBaptiste Daroussin.Fl dash , 1417*61d06d6bSBaptiste Daroussin.Fl enum , 1418*61d06d6bSBaptiste Daroussinor 1419*61d06d6bSBaptiste Daroussin.Fl hyphen 1420*61d06d6bSBaptiste Daroussinlist, an 1421*61d06d6bSBaptiste Daroussin.Ic \&It 1422*61d06d6bSBaptiste Daroussinblock is empty. 1423*61d06d6bSBaptiste DaroussinAn empty list item is shown. 1424*61d06d6bSBaptiste Daroussin.It Sy "missing argument, using next line" 1425*61d06d6bSBaptiste Daroussin.Pq mdoc 1426*61d06d6bSBaptiste DaroussinAn 1427*61d06d6bSBaptiste Daroussin.Ic \&It 1428*61d06d6bSBaptiste Daroussinmacro in a 1429*61d06d6bSBaptiste Daroussin.Ic \&Bd Fl column 1430*61d06d6bSBaptiste Daroussinlist has no arguments. 1431*61d06d6bSBaptiste DaroussinWhile 1432*61d06d6bSBaptiste Daroussin.Nm 1433*61d06d6bSBaptiste Daroussinuses the text or macros of the following line, if any, for the cell, 1434*61d06d6bSBaptiste Daroussinother formatters may misformat the list. 1435*61d06d6bSBaptiste Daroussin.It Sy "missing font type, using \efR" 1436*61d06d6bSBaptiste Daroussin.Pq mdoc 1437*61d06d6bSBaptiste DaroussinA 1438*61d06d6bSBaptiste Daroussin.Ic \&Bf 1439*61d06d6bSBaptiste Daroussinmacro has no argument. 1440*61d06d6bSBaptiste DaroussinIt switches to the default font. 1441*61d06d6bSBaptiste Daroussin.It Sy "unknown font type, using \efR" 1442*61d06d6bSBaptiste Daroussin.Pq mdoc 1443*61d06d6bSBaptiste DaroussinThe 1444*61d06d6bSBaptiste Daroussin.Ic \&Bf 1445*61d06d6bSBaptiste Daroussinargument is invalid. 1446*61d06d6bSBaptiste DaroussinThe default font is used instead. 1447*61d06d6bSBaptiste Daroussin.It Sy "nothing follows prefix" 1448*61d06d6bSBaptiste Daroussin.Pq mdoc 1449*61d06d6bSBaptiste DaroussinA 1450*61d06d6bSBaptiste Daroussin.Ic \&Pf 1451*61d06d6bSBaptiste Daroussinmacro has no argument, or only one argument and no macro follows 1452*61d06d6bSBaptiste Daroussinon the same input line. 1453*61d06d6bSBaptiste DaroussinThis defeats its purpose; in particular, spacing is not suppressed 1454*61d06d6bSBaptiste Daroussinbefore the text or macros following on the next input line. 1455*61d06d6bSBaptiste Daroussin.It Sy "empty reference block" 1456*61d06d6bSBaptiste Daroussin.Pq mdoc 1457*61d06d6bSBaptiste DaroussinAn 1458*61d06d6bSBaptiste Daroussin.Ic \&Rs 1459*61d06d6bSBaptiste Daroussinmacro is immediately followed by an 1460*61d06d6bSBaptiste Daroussin.Ic \&Re 1461*61d06d6bSBaptiste Daroussinmacro on the next input line. 1462*61d06d6bSBaptiste DaroussinSuch an empty block does not produce any output. 1463*61d06d6bSBaptiste Daroussin.It Sy "missing section argument" 1464*61d06d6bSBaptiste Daroussin.Pq mdoc 1465*61d06d6bSBaptiste DaroussinAn 1466*61d06d6bSBaptiste Daroussin.Ic \&Xr 1467*61d06d6bSBaptiste Daroussinmacro lacks its second, section number argument. 1468*61d06d6bSBaptiste DaroussinThe first argument, i.e. the name, is printed, but without subsequent 1469*61d06d6bSBaptiste Daroussinparentheses. 1470*61d06d6bSBaptiste Daroussin.It Sy "missing -std argument, adding it" 1471*61d06d6bSBaptiste Daroussin.Pq mdoc 1472*61d06d6bSBaptiste DaroussinAn 1473*61d06d6bSBaptiste Daroussin.Ic \&Ex 1474*61d06d6bSBaptiste Daroussinor 1475*61d06d6bSBaptiste Daroussin.Ic \&Rv 1476*61d06d6bSBaptiste Daroussinmacro lacks the required 1477*61d06d6bSBaptiste Daroussin.Fl std 1478*61d06d6bSBaptiste Daroussinargument. 1479*61d06d6bSBaptiste DaroussinThe 1480*61d06d6bSBaptiste Daroussin.Nm 1481*61d06d6bSBaptiste Daroussinutility assumes 1482*61d06d6bSBaptiste Daroussin.Fl std 1483*61d06d6bSBaptiste Daroussineven when it is not specified, but other implementations may not. 1484*61d06d6bSBaptiste Daroussin.It Sy "missing option string, using \(dq\(dq" 1485*61d06d6bSBaptiste Daroussin.Pq man 1486*61d06d6bSBaptiste DaroussinThe 1487*61d06d6bSBaptiste Daroussin.Ic \&OP 1488*61d06d6bSBaptiste Daroussinmacro is invoked without any argument. 1489*61d06d6bSBaptiste DaroussinAn empty pair of square brackets is shown. 1490*61d06d6bSBaptiste Daroussin.It Sy "missing resource identifier, using \(dq\(dq" 1491*61d06d6bSBaptiste Daroussin.Pq man 1492*61d06d6bSBaptiste DaroussinThe 1493*61d06d6bSBaptiste Daroussin.Ic \&MT 1494*61d06d6bSBaptiste Daroussinor 1495*61d06d6bSBaptiste Daroussin.Ic \&UR 1496*61d06d6bSBaptiste Daroussinmacro is invoked without any argument. 1497*61d06d6bSBaptiste DaroussinAn empty pair of angle brackets is shown. 1498*61d06d6bSBaptiste Daroussin.It Sy "missing eqn box, using \(dq\(dq" 1499*61d06d6bSBaptiste Daroussin.Pq eqn 1500*61d06d6bSBaptiste DaroussinA diacritic mark or a binary operator is found, 1501*61d06d6bSBaptiste Daroussinbut there is nothing to the left of it. 1502*61d06d6bSBaptiste DaroussinAn empty box is inserted. 1503*61d06d6bSBaptiste Daroussin.El 1504*61d06d6bSBaptiste Daroussin.Ss "Warnings related to bad macro arguments" 1505*61d06d6bSBaptiste Daroussin.Bl -ohang 1506*61d06d6bSBaptiste Daroussin.It Sy "duplicate argument" 1507*61d06d6bSBaptiste Daroussin.Pq mdoc 1508*61d06d6bSBaptiste DaroussinA 1509*61d06d6bSBaptiste Daroussin.Ic \&Bd 1510*61d06d6bSBaptiste Daroussinor 1511*61d06d6bSBaptiste Daroussin.Ic \&Bl 1512*61d06d6bSBaptiste Daroussinmacro has more than one 1513*61d06d6bSBaptiste Daroussin.Fl compact , 1514*61d06d6bSBaptiste Daroussinmore than one 1515*61d06d6bSBaptiste Daroussin.Fl offset , 1516*61d06d6bSBaptiste Daroussinor more than one 1517*61d06d6bSBaptiste Daroussin.Fl width 1518*61d06d6bSBaptiste Daroussinargument. 1519*61d06d6bSBaptiste DaroussinAll but the last instances of these arguments are ignored. 1520*61d06d6bSBaptiste Daroussin.It Sy "skipping duplicate argument" 1521*61d06d6bSBaptiste Daroussin.Pq mdoc 1522*61d06d6bSBaptiste DaroussinAn 1523*61d06d6bSBaptiste Daroussin.Ic \&An 1524*61d06d6bSBaptiste Daroussinmacro has more than one 1525*61d06d6bSBaptiste Daroussin.Fl split 1526*61d06d6bSBaptiste Daroussinor 1527*61d06d6bSBaptiste Daroussin.Fl nosplit 1528*61d06d6bSBaptiste Daroussinargument. 1529*61d06d6bSBaptiste DaroussinAll but the first of these arguments are ignored. 1530*61d06d6bSBaptiste Daroussin.It Sy "skipping duplicate display type" 1531*61d06d6bSBaptiste Daroussin.Pq mdoc 1532*61d06d6bSBaptiste DaroussinA 1533*61d06d6bSBaptiste Daroussin.Ic \&Bd 1534*61d06d6bSBaptiste Daroussinmacro has more than one type argument; the first one is used. 1535*61d06d6bSBaptiste Daroussin.It Sy "skipping duplicate list type" 1536*61d06d6bSBaptiste Daroussin.Pq mdoc 1537*61d06d6bSBaptiste DaroussinA 1538*61d06d6bSBaptiste Daroussin.Ic \&Bl 1539*61d06d6bSBaptiste Daroussinmacro has more than one type argument; the first one is used. 1540*61d06d6bSBaptiste Daroussin.It Sy "skipping -width argument" 1541*61d06d6bSBaptiste Daroussin.Pq mdoc 1542*61d06d6bSBaptiste DaroussinA 1543*61d06d6bSBaptiste Daroussin.Ic \&Bl 1544*61d06d6bSBaptiste Daroussin.Fl column , 1545*61d06d6bSBaptiste Daroussin.Fl diag , 1546*61d06d6bSBaptiste Daroussin.Fl ohang , 1547*61d06d6bSBaptiste Daroussin.Fl inset , 1548*61d06d6bSBaptiste Daroussinor 1549*61d06d6bSBaptiste Daroussin.Fl item 1550*61d06d6bSBaptiste Daroussinlist has a 1551*61d06d6bSBaptiste Daroussin.Fl width 1552*61d06d6bSBaptiste Daroussinargument. 1553*61d06d6bSBaptiste DaroussinThat has no effect. 1554*61d06d6bSBaptiste Daroussin.It Sy "wrong number of cells" 1555*61d06d6bSBaptiste DaroussinIn a line of a 1556*61d06d6bSBaptiste Daroussin.Ic \&Bl Fl column 1557*61d06d6bSBaptiste Daroussinlist, the number of tabs or 1558*61d06d6bSBaptiste Daroussin.Ic \&Ta 1559*61d06d6bSBaptiste Daroussinmacros is less than the number expected from the list header line 1560*61d06d6bSBaptiste Daroussinor exceeds the expected number by more than one. 1561*61d06d6bSBaptiste DaroussinMissing cells remain empty, and all cells exceeding the number of 1562*61d06d6bSBaptiste Daroussincolumns are joined into one single cell. 1563*61d06d6bSBaptiste Daroussin.It Sy "unknown AT&T UNIX version" 1564*61d06d6bSBaptiste Daroussin.Pq mdoc 1565*61d06d6bSBaptiste DaroussinAn 1566*61d06d6bSBaptiste Daroussin.Ic \&At 1567*61d06d6bSBaptiste Daroussinmacro has an invalid argument. 1568*61d06d6bSBaptiste DaroussinIt is used verbatim, with 1569*61d06d6bSBaptiste Daroussin.Qq "AT&T UNIX " 1570*61d06d6bSBaptiste Daroussinprefixed to it. 1571*61d06d6bSBaptiste Daroussin.It Sy "comma in function argument" 1572*61d06d6bSBaptiste Daroussin.Pq mdoc 1573*61d06d6bSBaptiste DaroussinAn argument of an 1574*61d06d6bSBaptiste Daroussin.Ic \&Fa 1575*61d06d6bSBaptiste Daroussinor 1576*61d06d6bSBaptiste Daroussin.Ic \&Fn 1577*61d06d6bSBaptiste Daroussinmacro contains a comma; it should probably be split into two arguments. 1578*61d06d6bSBaptiste Daroussin.It Sy "parenthesis in function name" 1579*61d06d6bSBaptiste Daroussin.Pq mdoc 1580*61d06d6bSBaptiste DaroussinThe first argument of an 1581*61d06d6bSBaptiste Daroussin.Ic \&Fc 1582*61d06d6bSBaptiste Daroussinor 1583*61d06d6bSBaptiste Daroussin.Ic \&Fn 1584*61d06d6bSBaptiste Daroussinmacro contains an opening or closing parenthesis; that's probably wrong, 1585*61d06d6bSBaptiste Daroussinparentheses are added automatically. 1586*61d06d6bSBaptiste Daroussin.It Sy "unknown library name" 1587*61d06d6bSBaptiste Daroussin.Pq mdoc, not on Ox 1588*61d06d6bSBaptiste DaroussinAn 1589*61d06d6bSBaptiste Daroussin.Ic \&Lb 1590*61d06d6bSBaptiste Daroussinmacro has an unknown name argument and will be rendered as 1591*61d06d6bSBaptiste Daroussin.Qq library Dq Ar name . 1592*61d06d6bSBaptiste Daroussin.It Sy "invalid content in Rs block" 1593*61d06d6bSBaptiste Daroussin.Pq mdoc 1594*61d06d6bSBaptiste DaroussinAn 1595*61d06d6bSBaptiste Daroussin.Ic \&Rs 1596*61d06d6bSBaptiste Daroussinblock contains plain text or non-% macros. 1597*61d06d6bSBaptiste DaroussinThe bogus content is left in the syntax tree. 1598*61d06d6bSBaptiste DaroussinFormatting may be poor. 1599*61d06d6bSBaptiste Daroussin.It Sy "invalid Boolean argument" 1600*61d06d6bSBaptiste Daroussin.Pq mdoc 1601*61d06d6bSBaptiste DaroussinAn 1602*61d06d6bSBaptiste Daroussin.Ic \&Sm 1603*61d06d6bSBaptiste Daroussinmacro has an argument other than 1604*61d06d6bSBaptiste Daroussin.Cm on 1605*61d06d6bSBaptiste Daroussinor 1606*61d06d6bSBaptiste Daroussin.Cm off . 1607*61d06d6bSBaptiste DaroussinThe invalid argument is moved out of the macro, which leaves the macro 1608*61d06d6bSBaptiste Daroussinempty, causing it to toggle the spacing mode. 1609*61d06d6bSBaptiste Daroussin.It Sy "unknown font, skipping request" 1610*61d06d6bSBaptiste Daroussin.Pq man , tbl 1611*61d06d6bSBaptiste DaroussinA 1612*61d06d6bSBaptiste Daroussin.Xr roff 7 1613*61d06d6bSBaptiste Daroussin.Ic \&ft 1614*61d06d6bSBaptiste Daroussinrequest or a 1615*61d06d6bSBaptiste Daroussin.Xr tbl 7 1616*61d06d6bSBaptiste Daroussin.Ic \&f 1617*61d06d6bSBaptiste Daroussinlayout modifier has an unknown 1618*61d06d6bSBaptiste Daroussin.Ar font 1619*61d06d6bSBaptiste Daroussinargument. 1620*61d06d6bSBaptiste Daroussin.It Sy "odd number of characters in request" 1621*61d06d6bSBaptiste Daroussin.Pq roff 1622*61d06d6bSBaptiste DaroussinA 1623*61d06d6bSBaptiste Daroussin.Ic \&tr 1624*61d06d6bSBaptiste Daroussinrequest contains an odd number of characters. 1625*61d06d6bSBaptiste DaroussinThe last character is mapped to the blank character. 1626*61d06d6bSBaptiste Daroussin.El 1627*61d06d6bSBaptiste Daroussin.Ss "Warnings related to plain text" 1628*61d06d6bSBaptiste Daroussin.Bl -ohang 1629*61d06d6bSBaptiste Daroussin.It Sy "blank line in fill mode, using .sp" 1630*61d06d6bSBaptiste Daroussin.Pq mdoc 1631*61d06d6bSBaptiste DaroussinThe meaning of blank input lines is only well-defined in non-fill mode: 1632*61d06d6bSBaptiste DaroussinIn fill mode, line breaks of text input lines are not supposed to be 1633*61d06d6bSBaptiste Daroussinsignificant. 1634*61d06d6bSBaptiste DaroussinHowever, for compatibility with groff, blank lines in fill mode 1635*61d06d6bSBaptiste Daroussinare replaced with 1636*61d06d6bSBaptiste Daroussin.Ic \&sp 1637*61d06d6bSBaptiste Daroussinrequests. 1638*61d06d6bSBaptiste Daroussin.It Sy "tab in filled text" 1639*61d06d6bSBaptiste Daroussin.Pq mdoc , man 1640*61d06d6bSBaptiste DaroussinThe meaning of tab characters is only well-defined in non-fill mode: 1641*61d06d6bSBaptiste DaroussinIn fill mode, whitespace is not supposed to be significant 1642*61d06d6bSBaptiste Daroussinon text input lines. 1643*61d06d6bSBaptiste DaroussinAs an implementation dependent choice, tab characters on text lines 1644*61d06d6bSBaptiste Daroussinare passed through to the formatters in any case. 1645*61d06d6bSBaptiste DaroussinGiven that the text before the tab character will be filled, 1646*61d06d6bSBaptiste Daroussinit is hard to predict which tab stop position the tab will advance to. 1647*61d06d6bSBaptiste Daroussin.It Sy "new sentence, new line" 1648*61d06d6bSBaptiste Daroussin.Pq mdoc 1649*61d06d6bSBaptiste DaroussinA new sentence starts in the middle of a text line. 1650*61d06d6bSBaptiste DaroussinStart it on a new input line to help formatters produce correct spacing. 1651*61d06d6bSBaptiste Daroussin.It Sy "invalid escape sequence" 1652*61d06d6bSBaptiste Daroussin.Pq roff 1653*61d06d6bSBaptiste DaroussinAn escape sequence has an invalid opening argument delimiter, lacks the 1654*61d06d6bSBaptiste Daroussinclosing argument delimiter, or the argument has too few characters. 1655*61d06d6bSBaptiste DaroussinIf the argument is incomplete, 1656*61d06d6bSBaptiste Daroussin.Ic \e* 1657*61d06d6bSBaptiste Daroussinand 1658*61d06d6bSBaptiste Daroussin.Ic \en 1659*61d06d6bSBaptiste Daroussinexpand to an empty string, 1660*61d06d6bSBaptiste Daroussin.Ic \eB 1661*61d06d6bSBaptiste Daroussinto the digit 1662*61d06d6bSBaptiste Daroussin.Sq 0 , 1663*61d06d6bSBaptiste Daroussinand 1664*61d06d6bSBaptiste Daroussin.Ic \ew 1665*61d06d6bSBaptiste Daroussinto the length of the incomplete argument. 1666*61d06d6bSBaptiste DaroussinAll other invalid escape sequences are ignored. 1667*61d06d6bSBaptiste Daroussin.It Sy "undefined string, using \(dq\(dq" 1668*61d06d6bSBaptiste Daroussin.Pq roff 1669*61d06d6bSBaptiste DaroussinIf a string is used without being defined before, 1670*61d06d6bSBaptiste Daroussinits value is implicitly set to the empty string. 1671*61d06d6bSBaptiste DaroussinHowever, defining strings explicitly before use 1672*61d06d6bSBaptiste Daroussinkeeps the code more readable. 1673*61d06d6bSBaptiste Daroussin.El 1674*61d06d6bSBaptiste Daroussin.Ss "Warnings related to tables" 1675*61d06d6bSBaptiste Daroussin.Bl -ohang 1676*61d06d6bSBaptiste Daroussin.It Sy "tbl line starts with span" 1677*61d06d6bSBaptiste Daroussin.Pq tbl 1678*61d06d6bSBaptiste DaroussinThe first cell in a table layout line is a horizontal span 1679*61d06d6bSBaptiste Daroussin.Pq Sq Cm s . 1680*61d06d6bSBaptiste DaroussinData provided for this cell is ignored, and nothing is printed in the cell. 1681*61d06d6bSBaptiste Daroussin.It Sy "tbl column starts with span" 1682*61d06d6bSBaptiste Daroussin.Pq tbl 1683*61d06d6bSBaptiste DaroussinThe first line of a table layout specification 1684*61d06d6bSBaptiste Daroussinrequests a vertical span 1685*61d06d6bSBaptiste Daroussin.Pq Sq Cm ^ . 1686*61d06d6bSBaptiste DaroussinData provided for this cell is ignored, and nothing is printed in the cell. 1687*61d06d6bSBaptiste Daroussin.It Sy "skipping vertical bar in tbl layout" 1688*61d06d6bSBaptiste Daroussin.Pq tbl 1689*61d06d6bSBaptiste DaroussinA table layout specification contains more than two consecutive vertical bars. 1690*61d06d6bSBaptiste DaroussinA double bar is printed, all additional bars are discarded. 1691*61d06d6bSBaptiste Daroussin.El 1692*61d06d6bSBaptiste Daroussin.Ss "Errors related to tables" 1693*61d06d6bSBaptiste Daroussin.Bl -ohang 1694*61d06d6bSBaptiste Daroussin.It Sy "non-alphabetic character in tbl options" 1695*61d06d6bSBaptiste Daroussin.Pq tbl 1696*61d06d6bSBaptiste DaroussinThe table options line contains a character other than a letter, 1697*61d06d6bSBaptiste Daroussinblank, or comma where the beginning of an option name is expected. 1698*61d06d6bSBaptiste DaroussinThe character is ignored. 1699*61d06d6bSBaptiste Daroussin.It Sy "skipping unknown tbl option" 1700*61d06d6bSBaptiste Daroussin.Pq tbl 1701*61d06d6bSBaptiste DaroussinThe table options line contains a string of letters that does not 1702*61d06d6bSBaptiste Daroussinmatch any known option name. 1703*61d06d6bSBaptiste DaroussinThe word is ignored. 1704*61d06d6bSBaptiste Daroussin.It Sy "missing tbl option argument" 1705*61d06d6bSBaptiste Daroussin.Pq tbl 1706*61d06d6bSBaptiste DaroussinA table option that requires an argument is not followed by an 1707*61d06d6bSBaptiste Daroussinopening parenthesis, or the opening parenthesis is immediately 1708*61d06d6bSBaptiste Daroussinfollowed by a closing parenthesis. 1709*61d06d6bSBaptiste DaroussinThe option is ignored. 1710*61d06d6bSBaptiste Daroussin.It Sy "wrong tbl option argument size" 1711*61d06d6bSBaptiste Daroussin.Pq tbl 1712*61d06d6bSBaptiste DaroussinA table option argument contains an invalid number of characters. 1713*61d06d6bSBaptiste DaroussinBoth the option and the argument are ignored. 1714*61d06d6bSBaptiste Daroussin.It Sy "empty tbl layout" 1715*61d06d6bSBaptiste Daroussin.Pq tbl 1716*61d06d6bSBaptiste DaroussinA table layout specification is completely empty, 1717*61d06d6bSBaptiste Daroussinspecifying zero lines and zero columns. 1718*61d06d6bSBaptiste DaroussinAs a fallback, a single left-justified column is used. 1719*61d06d6bSBaptiste Daroussin.It Sy "invalid character in tbl layout" 1720*61d06d6bSBaptiste Daroussin.Pq tbl 1721*61d06d6bSBaptiste DaroussinA table layout specification contains a character that can neither 1722*61d06d6bSBaptiste Daroussinbe interpreted as a layout key character nor as a layout modifier, 1723*61d06d6bSBaptiste Daroussinor a modifier precedes the first key. 1724*61d06d6bSBaptiste DaroussinThe invalid character is discarded. 1725*61d06d6bSBaptiste Daroussin.It Sy "unmatched parenthesis in tbl layout" 1726*61d06d6bSBaptiste Daroussin.Pq tbl 1727*61d06d6bSBaptiste DaroussinA table layout specification contains an opening parenthesis, 1728*61d06d6bSBaptiste Daroussinbut no matching closing parenthesis. 1729*61d06d6bSBaptiste DaroussinThe rest of the input line, starting from the parenthesis, has no effect. 1730*61d06d6bSBaptiste Daroussin.It Sy "tbl without any data cells" 1731*61d06d6bSBaptiste Daroussin.Pq tbl 1732*61d06d6bSBaptiste DaroussinA table does not contain any data cells. 1733*61d06d6bSBaptiste DaroussinIt will probably produce no output. 1734*61d06d6bSBaptiste Daroussin.It Sy "ignoring data in spanned tbl cell" 1735*61d06d6bSBaptiste Daroussin.Pq tbl 1736*61d06d6bSBaptiste DaroussinA table cell is marked as a horizontal span 1737*61d06d6bSBaptiste Daroussin.Pq Sq Cm s 1738*61d06d6bSBaptiste Daroussinor vertical span 1739*61d06d6bSBaptiste Daroussin.Pq Sq Cm ^ 1740*61d06d6bSBaptiste Daroussinin the table layout, but it contains data. 1741*61d06d6bSBaptiste DaroussinThe data is ignored. 1742*61d06d6bSBaptiste Daroussin.It Sy "ignoring extra tbl data cells" 1743*61d06d6bSBaptiste Daroussin.Pq tbl 1744*61d06d6bSBaptiste DaroussinA data line contains more cells than the corresponding layout line. 1745*61d06d6bSBaptiste DaroussinThe data in the extra cells is ignored. 1746*61d06d6bSBaptiste Daroussin.It Sy "data block open at end of tbl" 1747*61d06d6bSBaptiste Daroussin.Pq tbl 1748*61d06d6bSBaptiste DaroussinA data block is opened with 1749*61d06d6bSBaptiste Daroussin.Cm T{ , 1750*61d06d6bSBaptiste Daroussinbut never closed with a matching 1751*61d06d6bSBaptiste Daroussin.Cm T} . 1752*61d06d6bSBaptiste DaroussinThe remaining data lines of the table are all put into one cell, 1753*61d06d6bSBaptiste Daroussinand any remaining cells stay empty. 1754*61d06d6bSBaptiste Daroussin.El 1755*61d06d6bSBaptiste Daroussin.Ss "Errors related to roff, mdoc, and man code" 1756*61d06d6bSBaptiste Daroussin.Bl -ohang 1757*61d06d6bSBaptiste Daroussin.It Sy "duplicate prologue macro" 1758*61d06d6bSBaptiste Daroussin.Pq mdoc 1759*61d06d6bSBaptiste DaroussinOne of the prologue macros occurs more than once. 1760*61d06d6bSBaptiste DaroussinThe last instance overrides all previous ones. 1761*61d06d6bSBaptiste Daroussin.It Sy "skipping late title macro" 1762*61d06d6bSBaptiste Daroussin.Pq mdoc 1763*61d06d6bSBaptiste DaroussinThe 1764*61d06d6bSBaptiste Daroussin.Ic \&Dt 1765*61d06d6bSBaptiste Daroussinmacro appears after the first non-prologue macro. 1766*61d06d6bSBaptiste DaroussinTraditional formatters cannot handle this because 1767*61d06d6bSBaptiste Daroussinthey write the page header before parsing the document body. 1768*61d06d6bSBaptiste DaroussinEven though this technical restriction does not apply to 1769*61d06d6bSBaptiste Daroussin.Nm , 1770*61d06d6bSBaptiste Daroussintraditional semantics is preserved. 1771*61d06d6bSBaptiste DaroussinThe late macro is discarded including its arguments. 1772*61d06d6bSBaptiste Daroussin.It Sy "input stack limit exceeded, infinite loop?" 1773*61d06d6bSBaptiste Daroussin.Pq roff 1774*61d06d6bSBaptiste DaroussinExplicit recursion limits are implemented for the following features, 1775*61d06d6bSBaptiste Daroussinin order to prevent infinite loops: 1776*61d06d6bSBaptiste Daroussin.Bl -dash -compact 1777*61d06d6bSBaptiste Daroussin.It 1778*61d06d6bSBaptiste Daroussinexpansion of nested escape sequences 1779*61d06d6bSBaptiste Daroussinincluding expansion of strings and number registers, 1780*61d06d6bSBaptiste Daroussin.It 1781*61d06d6bSBaptiste Daroussinexpansion of nested user-defined macros, 1782*61d06d6bSBaptiste Daroussin.It 1783*61d06d6bSBaptiste Daroussinand 1784*61d06d6bSBaptiste Daroussin.Ic \&so 1785*61d06d6bSBaptiste Daroussinfile inclusion. 1786*61d06d6bSBaptiste Daroussin.El 1787*61d06d6bSBaptiste DaroussinWhen a limit is hit, the output is incorrect, typically losing 1788*61d06d6bSBaptiste Daroussinsome content, but the parser can continue. 1789*61d06d6bSBaptiste Daroussin.It Sy "skipping bad character" 1790*61d06d6bSBaptiste Daroussin.Pq mdoc , man , roff 1791*61d06d6bSBaptiste DaroussinThe input file contains a byte that is not a printable 1792*61d06d6bSBaptiste Daroussin.Xr ascii 7 1793*61d06d6bSBaptiste Daroussincharacter. 1794*61d06d6bSBaptiste DaroussinThe message mentions the character number. 1795*61d06d6bSBaptiste DaroussinThe offending byte is replaced with a question mark 1796*61d06d6bSBaptiste Daroussin.Pq Sq \&? . 1797*61d06d6bSBaptiste DaroussinConsider editing the input file to replace the byte with an ASCII 1798*61d06d6bSBaptiste Daroussintransliteration of the intended character. 1799*61d06d6bSBaptiste Daroussin.It Sy "skipping unknown macro" 1800*61d06d6bSBaptiste Daroussin.Pq mdoc , man , roff 1801*61d06d6bSBaptiste DaroussinThe first identifier on a request or macro line is neither recognized as a 1802*61d06d6bSBaptiste Daroussin.Xr roff 7 1803*61d06d6bSBaptiste Daroussinrequest, nor as a user-defined macro, nor, respectively, as an 1804*61d06d6bSBaptiste Daroussin.Xr mdoc 7 1805*61d06d6bSBaptiste Daroussinor 1806*61d06d6bSBaptiste Daroussin.Xr man 7 1807*61d06d6bSBaptiste Daroussinmacro. 1808*61d06d6bSBaptiste DaroussinIt may be mistyped or unsupported. 1809*61d06d6bSBaptiste DaroussinThe request or macro is discarded including its arguments. 1810*61d06d6bSBaptiste Daroussin.It Sy "skipping insecure request" 1811*61d06d6bSBaptiste Daroussin.Pq roff 1812*61d06d6bSBaptiste DaroussinAn input file attempted to run a shell command 1813*61d06d6bSBaptiste Daroussinor to read or write an external file. 1814*61d06d6bSBaptiste DaroussinSuch attempts are denied for security reasons. 1815*61d06d6bSBaptiste Daroussin.It Sy "skipping item outside list" 1816*61d06d6bSBaptiste Daroussin.Pq mdoc , eqn 1817*61d06d6bSBaptiste DaroussinAn 1818*61d06d6bSBaptiste Daroussin.Ic \&It 1819*61d06d6bSBaptiste Daroussinmacro occurs outside any 1820*61d06d6bSBaptiste Daroussin.Ic \&Bl 1821*61d06d6bSBaptiste Daroussinlist, or an 1822*61d06d6bSBaptiste Daroussin.Xr eqn 7 1823*61d06d6bSBaptiste Daroussin.Ic above 1824*61d06d6bSBaptiste Daroussindelimiter occurs outside any pile. 1825*61d06d6bSBaptiste DaroussinIt is discarded including its arguments. 1826*61d06d6bSBaptiste Daroussin.It Sy "skipping column outside column list" 1827*61d06d6bSBaptiste Daroussin.Pq mdoc 1828*61d06d6bSBaptiste DaroussinA 1829*61d06d6bSBaptiste Daroussin.Ic \&Ta 1830*61d06d6bSBaptiste Daroussinmacro occurs outside any 1831*61d06d6bSBaptiste Daroussin.Ic \&Bl Fl column 1832*61d06d6bSBaptiste Daroussinblock. 1833*61d06d6bSBaptiste DaroussinIt is discarded including its arguments. 1834*61d06d6bSBaptiste Daroussin.It Sy "skipping end of block that is not open" 1835*61d06d6bSBaptiste Daroussin.Pq mdoc , man , eqn , tbl , roff 1836*61d06d6bSBaptiste DaroussinVarious syntax elements can only be used to explicitly close blocks 1837*61d06d6bSBaptiste Daroussinthat have previously been opened. 1838*61d06d6bSBaptiste DaroussinAn 1839*61d06d6bSBaptiste Daroussin.Xr mdoc 7 1840*61d06d6bSBaptiste Daroussinblock closing macro, a 1841*61d06d6bSBaptiste Daroussin.Xr man 7 1842*61d06d6bSBaptiste Daroussin.Ic \&ME , \&RE 1843*61d06d6bSBaptiste Daroussinor 1844*61d06d6bSBaptiste Daroussin.Ic \&UE 1845*61d06d6bSBaptiste Daroussinmacro, an 1846*61d06d6bSBaptiste Daroussin.Xr eqn 7 1847*61d06d6bSBaptiste Daroussinright delimiter or closing brace, or the end of an equation, table, or 1848*61d06d6bSBaptiste Daroussin.Xr roff 7 1849*61d06d6bSBaptiste Daroussinconditional request is encountered but no matching block is open. 1850*61d06d6bSBaptiste DaroussinThe offending request or macro is discarded. 1851*61d06d6bSBaptiste Daroussin.It Sy "fewer RS blocks open, skipping" 1852*61d06d6bSBaptiste Daroussin.Pq man 1853*61d06d6bSBaptiste DaroussinThe 1854*61d06d6bSBaptiste Daroussin.Ic \&RE 1855*61d06d6bSBaptiste Daroussinmacro is invoked with an argument, but less than the specified number of 1856*61d06d6bSBaptiste Daroussin.Ic \&RS 1857*61d06d6bSBaptiste Daroussinblocks is open. 1858*61d06d6bSBaptiste DaroussinThe 1859*61d06d6bSBaptiste Daroussin.Ic \&RE 1860*61d06d6bSBaptiste Daroussinmacro is discarded. 1861*61d06d6bSBaptiste Daroussin.It Sy "inserting missing end of block" 1862*61d06d6bSBaptiste Daroussin.Pq mdoc , tbl 1863*61d06d6bSBaptiste DaroussinVarious 1864*61d06d6bSBaptiste Daroussin.Xr mdoc 7 1865*61d06d6bSBaptiste Daroussinmacros as well as tables require explicit closing by dedicated macros. 1866*61d06d6bSBaptiste DaroussinA block that doesn't support bad nesting 1867*61d06d6bSBaptiste Daroussinends before all of its children are properly closed. 1868*61d06d6bSBaptiste DaroussinThe open child nodes are closed implicitly. 1869*61d06d6bSBaptiste Daroussin.It Sy "appending missing end of block" 1870*61d06d6bSBaptiste Daroussin.Pq mdoc , man , eqn , tbl , roff 1871*61d06d6bSBaptiste DaroussinAt the end of the document, an explicit 1872*61d06d6bSBaptiste Daroussin.Xr mdoc 7 1873*61d06d6bSBaptiste Daroussinblock, a 1874*61d06d6bSBaptiste Daroussin.Xr man 7 1875*61d06d6bSBaptiste Daroussinnext-line scope or 1876*61d06d6bSBaptiste Daroussin.Ic \&MT , \&RS 1877*61d06d6bSBaptiste Daroussinor 1878*61d06d6bSBaptiste Daroussin.Ic \&UR 1879*61d06d6bSBaptiste Daroussinblock, an equation, table, or 1880*61d06d6bSBaptiste Daroussin.Xr roff 7 1881*61d06d6bSBaptiste Daroussinconditional or ignore block is still open. 1882*61d06d6bSBaptiste DaroussinThe open block is closed implicitly. 1883*61d06d6bSBaptiste Daroussin.It Sy "escaped character not allowed in a name" 1884*61d06d6bSBaptiste Daroussin.Pq roff 1885*61d06d6bSBaptiste DaroussinMacro, string and register identifiers consist of printable, 1886*61d06d6bSBaptiste Daroussinnon-whitespace ASCII characters. 1887*61d06d6bSBaptiste DaroussinEscape sequences and characters and strings expressed in terms of them 1888*61d06d6bSBaptiste Daroussincannot form part of a name. 1889*61d06d6bSBaptiste DaroussinThe first argument of an 1890*61d06d6bSBaptiste Daroussin.Ic \&am , 1891*61d06d6bSBaptiste Daroussin.Ic \&as , 1892*61d06d6bSBaptiste Daroussin.Ic \&de , 1893*61d06d6bSBaptiste Daroussin.Ic \&ds , 1894*61d06d6bSBaptiste Daroussin.Ic \&nr , 1895*61d06d6bSBaptiste Daroussinor 1896*61d06d6bSBaptiste Daroussin.Ic \&rr 1897*61d06d6bSBaptiste Daroussinrequest, or any argument of an 1898*61d06d6bSBaptiste Daroussin.Ic \&rm 1899*61d06d6bSBaptiste Daroussinrequest, or the name of a request or user defined macro being called, 1900*61d06d6bSBaptiste Daroussinis terminated by an escape sequence. 1901*61d06d6bSBaptiste DaroussinIn the cases of 1902*61d06d6bSBaptiste Daroussin.Ic \&as , 1903*61d06d6bSBaptiste Daroussin.Ic \&ds , 1904*61d06d6bSBaptiste Daroussinand 1905*61d06d6bSBaptiste Daroussin.Ic \&nr , 1906*61d06d6bSBaptiste Daroussinthe request has no effect at all. 1907*61d06d6bSBaptiste DaroussinIn the cases of 1908*61d06d6bSBaptiste Daroussin.Ic \&am , 1909*61d06d6bSBaptiste Daroussin.Ic \&de , 1910*61d06d6bSBaptiste Daroussin.Ic \&rr , 1911*61d06d6bSBaptiste Daroussinand 1912*61d06d6bSBaptiste Daroussin.Ic \&rm , 1913*61d06d6bSBaptiste Daroussinwhat was parsed up to this point is used as the arguments to the request, 1914*61d06d6bSBaptiste Daroussinand the rest of the input line is discarded including the escape sequence. 1915*61d06d6bSBaptiste DaroussinWhen parsing for a request or a user-defined macro name to be called, 1916*61d06d6bSBaptiste Daroussinonly the escape sequence is discarded. 1917*61d06d6bSBaptiste DaroussinThe characters preceding it are used as the request or macro name, 1918*61d06d6bSBaptiste Daroussinthe characters following it are used as the arguments to the request or macro. 1919*61d06d6bSBaptiste Daroussin.It Sy "NOT IMPLEMENTED: Bd -file" 1920*61d06d6bSBaptiste Daroussin.Pq mdoc 1921*61d06d6bSBaptiste DaroussinFor security reasons, the 1922*61d06d6bSBaptiste Daroussin.Ic \&Bd 1923*61d06d6bSBaptiste Daroussinmacro does not support the 1924*61d06d6bSBaptiste Daroussin.Fl file 1925*61d06d6bSBaptiste Daroussinargument. 1926*61d06d6bSBaptiste DaroussinBy requesting the inclusion of a sensitive file, a malicious document 1927*61d06d6bSBaptiste Daroussinmight otherwise trick a privileged user into inadvertently displaying 1928*61d06d6bSBaptiste Daroussinthe file on the screen, revealing the file content to bystanders. 1929*61d06d6bSBaptiste DaroussinThe argument is ignored including the file name following it. 1930*61d06d6bSBaptiste Daroussin.It Sy "skipping display without arguments" 1931*61d06d6bSBaptiste Daroussin.Pq mdoc 1932*61d06d6bSBaptiste DaroussinA 1933*61d06d6bSBaptiste Daroussin.Ic \&Bd 1934*61d06d6bSBaptiste Daroussinblock macro does not have any arguments. 1935*61d06d6bSBaptiste DaroussinThe block is discarded, and the block content is displayed in 1936*61d06d6bSBaptiste Daroussinwhatever mode was active before the block. 1937*61d06d6bSBaptiste Daroussin.It Sy "missing list type, using -item" 1938*61d06d6bSBaptiste Daroussin.Pq mdoc 1939*61d06d6bSBaptiste DaroussinA 1940*61d06d6bSBaptiste Daroussin.Ic \&Bl 1941*61d06d6bSBaptiste Daroussinmacro fails to specify the list type. 1942*61d06d6bSBaptiste Daroussin.It Sy "argument is not numeric, using 1" 1943*61d06d6bSBaptiste Daroussin.Pq roff 1944*61d06d6bSBaptiste DaroussinThe argument of a 1945*61d06d6bSBaptiste Daroussin.Ic \&ce 1946*61d06d6bSBaptiste Daroussinrequest is not a number. 1947*61d06d6bSBaptiste Daroussin.It Sy "missing manual name, using \(dq\(dq" 1948*61d06d6bSBaptiste Daroussin.Pq mdoc 1949*61d06d6bSBaptiste DaroussinThe first call to 1950*61d06d6bSBaptiste Daroussin.Ic \&Nm , 1951*61d06d6bSBaptiste Daroussinor any call in the NAME section, lacks the required argument. 1952*61d06d6bSBaptiste Daroussin.It Sy "uname(3) system call failed, using UNKNOWN" 1953*61d06d6bSBaptiste Daroussin.Pq mdoc 1954*61d06d6bSBaptiste DaroussinThe 1955*61d06d6bSBaptiste Daroussin.Ic \&Os 1956*61d06d6bSBaptiste Daroussinmacro is called without arguments, and the 1957*61d06d6bSBaptiste Daroussin.Xr uname 3 1958*61d06d6bSBaptiste Daroussinsystem call failed. 1959*61d06d6bSBaptiste DaroussinAs a workaround, 1960*61d06d6bSBaptiste Daroussin.Nm 1961*61d06d6bSBaptiste Daroussincan be compiled with 1962*61d06d6bSBaptiste Daroussin.Sm off 1963*61d06d6bSBaptiste Daroussin.Fl D Cm OSNAME=\(dq\e\(dq Ar string Cm \e\(dq\(dq . 1964*61d06d6bSBaptiste Daroussin.Sm on 1965*61d06d6bSBaptiste Daroussin.It Sy "unknown standard specifier" 1966*61d06d6bSBaptiste Daroussin.Pq mdoc 1967*61d06d6bSBaptiste DaroussinAn 1968*61d06d6bSBaptiste Daroussin.Ic \&St 1969*61d06d6bSBaptiste Daroussinmacro has an unknown argument and is discarded. 1970*61d06d6bSBaptiste Daroussin.It Sy "skipping request without numeric argument" 1971*61d06d6bSBaptiste Daroussin.Pq roff , eqn 1972*61d06d6bSBaptiste DaroussinAn 1973*61d06d6bSBaptiste Daroussin.Ic \&it 1974*61d06d6bSBaptiste Daroussinrequest or an 1975*61d06d6bSBaptiste Daroussin.Xr eqn 7 1976*61d06d6bSBaptiste Daroussin.Ic \&size 1977*61d06d6bSBaptiste Daroussinor 1978*61d06d6bSBaptiste Daroussin.Ic \&gsize 1979*61d06d6bSBaptiste Daroussinstatement has a non-numeric or negative argument or no argument at all. 1980*61d06d6bSBaptiste DaroussinThe invalid request or statement is ignored. 1981*61d06d6bSBaptiste Daroussin.It Sy "NOT IMPLEMENTED: .so with absolute path or \(dq..\(dq" 1982*61d06d6bSBaptiste Daroussin.Pq roff 1983*61d06d6bSBaptiste DaroussinFor security reasons, 1984*61d06d6bSBaptiste Daroussin.Nm 1985*61d06d6bSBaptiste Daroussinallows 1986*61d06d6bSBaptiste Daroussin.Ic \&so 1987*61d06d6bSBaptiste Daroussinfile inclusion requests only with relative paths 1988*61d06d6bSBaptiste Daroussinand only without ascending to any parent directory. 1989*61d06d6bSBaptiste DaroussinBy requesting the inclusion of a sensitive file, a malicious document 1990*61d06d6bSBaptiste Daroussinmight otherwise trick a privileged user into inadvertently displaying 1991*61d06d6bSBaptiste Daroussinthe file on the screen, revealing the file content to bystanders. 1992*61d06d6bSBaptiste Daroussin.Nm 1993*61d06d6bSBaptiste Daroussinonly shows the path as it appears behind 1994*61d06d6bSBaptiste Daroussin.Ic \&so . 1995*61d06d6bSBaptiste Daroussin.It Sy ".so request failed" 1996*61d06d6bSBaptiste Daroussin.Pq roff 1997*61d06d6bSBaptiste DaroussinServicing a 1998*61d06d6bSBaptiste Daroussin.Ic \&so 1999*61d06d6bSBaptiste Daroussinrequest requires reading an external file, but the file could not be 2000*61d06d6bSBaptiste Daroussinopened. 2001*61d06d6bSBaptiste Daroussin.Nm 2002*61d06d6bSBaptiste Daroussinonly shows the path as it appears behind 2003*61d06d6bSBaptiste Daroussin.Ic \&so . 2004*61d06d6bSBaptiste Daroussin.It Sy "skipping all arguments" 2005*61d06d6bSBaptiste Daroussin.Pq mdoc , man , eqn , roff 2006*61d06d6bSBaptiste DaroussinAn 2007*61d06d6bSBaptiste Daroussin.Xr mdoc 7 2008*61d06d6bSBaptiste Daroussin.Ic \&Bt , 2009*61d06d6bSBaptiste Daroussin.Ic \&Ed , 2010*61d06d6bSBaptiste Daroussin.Ic \&Ef , 2011*61d06d6bSBaptiste Daroussin.Ic \&Ek , 2012*61d06d6bSBaptiste Daroussin.Ic \&El , 2013*61d06d6bSBaptiste Daroussin.Ic \&Lp , 2014*61d06d6bSBaptiste Daroussin.Ic \&Pp , 2015*61d06d6bSBaptiste Daroussin.Ic \&Re , 2016*61d06d6bSBaptiste Daroussin.Ic \&Rs , 2017*61d06d6bSBaptiste Daroussinor 2018*61d06d6bSBaptiste Daroussin.Ic \&Ud 2019*61d06d6bSBaptiste Daroussinmacro, an 2020*61d06d6bSBaptiste Daroussin.Ic \&It 2021*61d06d6bSBaptiste Daroussinmacro in a list that don't support item heads, a 2022*61d06d6bSBaptiste Daroussin.Xr man 7 2023*61d06d6bSBaptiste Daroussin.Ic \&LP , 2024*61d06d6bSBaptiste Daroussin.Ic \&P , 2025*61d06d6bSBaptiste Daroussinor 2026*61d06d6bSBaptiste Daroussin.Ic \&PP 2027*61d06d6bSBaptiste Daroussinmacro, an 2028*61d06d6bSBaptiste Daroussin.Xr eqn 7 2029*61d06d6bSBaptiste Daroussin.Ic \&EQ 2030*61d06d6bSBaptiste Daroussinor 2031*61d06d6bSBaptiste Daroussin.Ic \&EN 2032*61d06d6bSBaptiste Daroussinmacro, or a 2033*61d06d6bSBaptiste Daroussin.Xr roff 7 2034*61d06d6bSBaptiste Daroussin.Ic \&br , 2035*61d06d6bSBaptiste Daroussin.Ic \&fi , 2036*61d06d6bSBaptiste Daroussinor 2037*61d06d6bSBaptiste Daroussin.Ic \&nf 2038*61d06d6bSBaptiste Daroussinrequest or 2039*61d06d6bSBaptiste Daroussin.Sq \&.. 2040*61d06d6bSBaptiste Daroussinblock closing request is invoked with at least one argument. 2041*61d06d6bSBaptiste DaroussinAll arguments are ignored. 2042*61d06d6bSBaptiste Daroussin.It Sy "skipping excess arguments" 2043*61d06d6bSBaptiste Daroussin.Pq mdoc , man , roff 2044*61d06d6bSBaptiste DaroussinA macro or request is invoked with too many arguments: 2045*61d06d6bSBaptiste Daroussin.Bl -dash -offset 2n -width 2n -compact 2046*61d06d6bSBaptiste Daroussin.It 2047*61d06d6bSBaptiste Daroussin.Ic \&Fo , 2048*61d06d6bSBaptiste Daroussin.Ic \&MT , 2049*61d06d6bSBaptiste Daroussin.Ic \&PD , 2050*61d06d6bSBaptiste Daroussin.Ic \&RS , 2051*61d06d6bSBaptiste Daroussin.Ic \&UR , 2052*61d06d6bSBaptiste Daroussin.Ic \&ft , 2053*61d06d6bSBaptiste Daroussinor 2054*61d06d6bSBaptiste Daroussin.Ic \&sp 2055*61d06d6bSBaptiste Daroussinwith more than one argument 2056*61d06d6bSBaptiste Daroussin.It 2057*61d06d6bSBaptiste Daroussin.Ic \&An 2058*61d06d6bSBaptiste Daroussinwith another argument after 2059*61d06d6bSBaptiste Daroussin.Fl split 2060*61d06d6bSBaptiste Daroussinor 2061*61d06d6bSBaptiste Daroussin.Fl nosplit 2062*61d06d6bSBaptiste Daroussin.It 2063*61d06d6bSBaptiste Daroussin.Ic \&RE 2064*61d06d6bSBaptiste Daroussinwith more than one argument or with a non-integer argument 2065*61d06d6bSBaptiste Daroussin.It 2066*61d06d6bSBaptiste Daroussin.Ic \&OP 2067*61d06d6bSBaptiste Daroussinor a request of the 2068*61d06d6bSBaptiste Daroussin.Ic \&de 2069*61d06d6bSBaptiste Daroussinfamily with more than two arguments 2070*61d06d6bSBaptiste Daroussin.It 2071*61d06d6bSBaptiste Daroussin.Ic \&Dt 2072*61d06d6bSBaptiste Daroussinwith more than three arguments 2073*61d06d6bSBaptiste Daroussin.It 2074*61d06d6bSBaptiste Daroussin.Ic \&TH 2075*61d06d6bSBaptiste Daroussinwith more than five arguments 2076*61d06d6bSBaptiste Daroussin.It 2077*61d06d6bSBaptiste Daroussin.Ic \&Bd , 2078*61d06d6bSBaptiste Daroussin.Ic \&Bk , 2079*61d06d6bSBaptiste Daroussinor 2080*61d06d6bSBaptiste Daroussin.Ic \&Bl 2081*61d06d6bSBaptiste Daroussinwith invalid arguments 2082*61d06d6bSBaptiste Daroussin.El 2083*61d06d6bSBaptiste DaroussinThe excess arguments are ignored. 2084*61d06d6bSBaptiste Daroussin.El 2085*61d06d6bSBaptiste Daroussin.Ss Unsupported features 2086*61d06d6bSBaptiste Daroussin.Bl -ohang 2087*61d06d6bSBaptiste Daroussin.It Sy "input too large" 2088*61d06d6bSBaptiste Daroussin.Pq mdoc , man 2089*61d06d6bSBaptiste DaroussinCurrently, 2090*61d06d6bSBaptiste Daroussin.Nm 2091*61d06d6bSBaptiste Daroussincannot handle input files larger than its arbitrary size limit 2092*61d06d6bSBaptiste Daroussinof 2^31 bytes (2 Gigabytes). 2093*61d06d6bSBaptiste DaroussinSince useful manuals are always small, this is not a problem in practice. 2094*61d06d6bSBaptiste DaroussinParsing is aborted as soon as the condition is detected. 2095*61d06d6bSBaptiste Daroussin.It Sy "unsupported control character" 2096*61d06d6bSBaptiste Daroussin.Pq roff 2097*61d06d6bSBaptiste DaroussinAn ASCII control character supported by other 2098*61d06d6bSBaptiste Daroussin.Xr roff 7 2099*61d06d6bSBaptiste Daroussinimplementations but not by 2100*61d06d6bSBaptiste Daroussin.Nm 2101*61d06d6bSBaptiste Daroussinwas found in an input file. 2102*61d06d6bSBaptiste DaroussinIt is replaced by a question mark. 2103*61d06d6bSBaptiste Daroussin.It Sy "unsupported roff request" 2104*61d06d6bSBaptiste Daroussin.Pq roff 2105*61d06d6bSBaptiste DaroussinAn input file contains a 2106*61d06d6bSBaptiste Daroussin.Xr roff 7 2107*61d06d6bSBaptiste Daroussinrequest supported by GNU troff or Heirloom troff but not by 2108*61d06d6bSBaptiste Daroussin.Nm , 2109*61d06d6bSBaptiste Daroussinand it is likely that this will cause information loss 2110*61d06d6bSBaptiste Daroussinor considerable misformatting. 2111*61d06d6bSBaptiste Daroussin.It Sy "eqn delim option in tbl" 2112*61d06d6bSBaptiste Daroussin.Pq eqn , tbl 2113*61d06d6bSBaptiste DaroussinThe options line of a table defines equation delimiters. 2114*61d06d6bSBaptiste DaroussinAny equation source code contained in the table will be printed unformatted. 2115*61d06d6bSBaptiste Daroussin.It Sy "unsupported table layout modifier" 2116*61d06d6bSBaptiste Daroussin.Pq tbl 2117*61d06d6bSBaptiste DaroussinA table layout specification contains an 2118*61d06d6bSBaptiste Daroussin.Sq Cm m 2119*61d06d6bSBaptiste Daroussinmodifier. 2120*61d06d6bSBaptiste DaroussinThe modifier is discarded. 2121*61d06d6bSBaptiste Daroussin.It Sy "ignoring macro in table" 2122*61d06d6bSBaptiste Daroussin.Pq tbl , mdoc , man 2123*61d06d6bSBaptiste DaroussinA table contains an invocation of an 2124*61d06d6bSBaptiste Daroussin.Xr mdoc 7 2125*61d06d6bSBaptiste Daroussinor 2126*61d06d6bSBaptiste Daroussin.Xr man 7 2127*61d06d6bSBaptiste Daroussinmacro or of an undefined macro. 2128*61d06d6bSBaptiste DaroussinThe macro is ignored, and its arguments are handled 2129*61d06d6bSBaptiste Daroussinas if they were a text line. 2130*61d06d6bSBaptiste Daroussin.El 2131*61d06d6bSBaptiste Daroussin.Sh SEE ALSO 2132*61d06d6bSBaptiste Daroussin.Xr apropos 1 , 2133*61d06d6bSBaptiste Daroussin.Xr man 1 , 2134*61d06d6bSBaptiste Daroussin.Xr eqn 7 , 2135*61d06d6bSBaptiste Daroussin.Xr man 7 , 2136*61d06d6bSBaptiste Daroussin.Xr mandoc_char 7 , 2137*61d06d6bSBaptiste Daroussin.Xr mdoc 7 , 2138*61d06d6bSBaptiste Daroussin.Xr roff 7 , 2139*61d06d6bSBaptiste Daroussin.Xr tbl 7 2140*61d06d6bSBaptiste Daroussin.Sh HISTORY 2141*61d06d6bSBaptiste DaroussinThe 2142*61d06d6bSBaptiste Daroussin.Nm 2143*61d06d6bSBaptiste Daroussinutility first appeared in 2144*61d06d6bSBaptiste Daroussin.Ox 4.8 . 2145*61d06d6bSBaptiste DaroussinThe option 2146*61d06d6bSBaptiste Daroussin.Fl I 2147*61d06d6bSBaptiste Daroussinappeared in 2148*61d06d6bSBaptiste Daroussin.Ox 5.2 , 2149*61d06d6bSBaptiste Daroussinand 2150*61d06d6bSBaptiste Daroussin.Fl aCcfhKklMSsw 2151*61d06d6bSBaptiste Daroussinin 2152*61d06d6bSBaptiste Daroussin.Ox 5.7 . 2153*61d06d6bSBaptiste Daroussin.Sh AUTHORS 2154*61d06d6bSBaptiste Daroussin.An -nosplit 2155*61d06d6bSBaptiste DaroussinThe 2156*61d06d6bSBaptiste Daroussin.Nm 2157*61d06d6bSBaptiste Daroussinutility was written by 2158*61d06d6bSBaptiste Daroussin.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 2159*61d06d6bSBaptiste Daroussinand is maintained by 2160*61d06d6bSBaptiste Daroussin.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 2161