1*260e9a87SYuri Pankov.\" $Id: mandoc.1,v 1.155 2015/02/23 13:31:03 schwarze Exp $ 2*260e9a87SYuri Pankov.\" 3*260e9a87SYuri Pankov.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> 4*260e9a87SYuri Pankov.\" Copyright (c) 2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org> 595c635efSGarrett D'Amore.\" 695c635efSGarrett D'Amore.\" Permission to use, copy, modify, and distribute this software for any 795c635efSGarrett D'Amore.\" purpose with or without fee is hereby granted, provided that the above 895c635efSGarrett D'Amore.\" copyright notice and this permission notice appear in all copies. 995c635efSGarrett D'Amore.\" 1095c635efSGarrett D'Amore.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1195c635efSGarrett D'Amore.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1295c635efSGarrett D'Amore.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1395c635efSGarrett D'Amore.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1495c635efSGarrett D'Amore.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1595c635efSGarrett D'Amore.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1695c635efSGarrett D'Amore.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1795c635efSGarrett D'Amore.\" 18*260e9a87SYuri Pankov.Dd $Mdocdate: February 23 2015 $ 1995c635efSGarrett D'Amore.Dt MANDOC 1 2095c635efSGarrett D'Amore.Os 2195c635efSGarrett D'Amore.Sh NAME 2295c635efSGarrett D'Amore.Nm mandoc 2395c635efSGarrett D'Amore.Nd format and display UNIX manuals 2495c635efSGarrett D'Amore.Sh SYNOPSIS 2595c635efSGarrett D'Amore.Nm mandoc 26*260e9a87SYuri Pankov.Op Fl acfhkl 27*260e9a87SYuri Pankov.Sm off 28*260e9a87SYuri Pankov.Op Fl I Cm os Li = Ar name 29*260e9a87SYuri Pankov.Sm on 30*260e9a87SYuri Pankov.Op Fl K Ns Ar encoding 3195c635efSGarrett D'Amore.Op Fl m Ns Ar format 3295c635efSGarrett D'Amore.Op Fl O Ns Ar option 3395c635efSGarrett D'Amore.Op Fl T Ns Ar output 3495c635efSGarrett D'Amore.Op Fl W Ns Ar level 3595c635efSGarrett D'Amore.Op Ar 3695c635efSGarrett D'Amore.Sh DESCRIPTION 3795c635efSGarrett D'AmoreThe 3895c635efSGarrett D'Amore.Nm 3995c635efSGarrett D'Amoreutility formats 4095c635efSGarrett D'Amore.Ux 4195c635efSGarrett D'Amoremanual pages for display. 4295c635efSGarrett D'Amore.Pp 4395c635efSGarrett D'AmoreBy default, 4495c635efSGarrett D'Amore.Nm 4595c635efSGarrett D'Amorereads 4695c635efSGarrett D'Amore.Xr mdoc 5 4795c635efSGarrett D'Amoreor 4895c635efSGarrett D'Amore.Xr man 5 4995c635efSGarrett D'Amoretext from stdin, implying 5095c635efSGarrett D'Amore.Fl m Ns Cm andoc , 5195c635efSGarrett D'Amoreand produces 52*260e9a87SYuri Pankov.Fl T Ns Cm locale 5395c635efSGarrett D'Amoreoutput. 5495c635efSGarrett D'Amore.Pp 55*260e9a87SYuri PankovThe options are as follows: 5695c635efSGarrett D'Amore.Bl -tag -width Ds 57*260e9a87SYuri Pankov.It Fl a 58*260e9a87SYuri PankovIf the standard output is a terminal device and 59*260e9a87SYuri Pankov.Fl c 60*260e9a87SYuri Pankovis not specified, use 61*260e9a87SYuri Pankov.Xr more 1 62*260e9a87SYuri Pankovto paginate the output, just like 63*260e9a87SYuri Pankov.Xr man 1 64*260e9a87SYuri Pankovwould. 65*260e9a87SYuri Pankov.It Fl c 66*260e9a87SYuri PankovCopy the formatted manual pages to the standard output without using 67*260e9a87SYuri Pankov.Xr more 1 68*260e9a87SYuri Pankovto paginate them. 69*260e9a87SYuri PankovThis is the default. 70*260e9a87SYuri PankovIt can be specified to override 71*260e9a87SYuri Pankov.Fl a . 72*260e9a87SYuri Pankov.It Fl f 73*260e9a87SYuri PankovA synonym for 74*260e9a87SYuri Pankov.Xr whatis 1 . 75*260e9a87SYuri PankovThis overrides any earlier 76*260e9a87SYuri Pankov.Fl k 77*260e9a87SYuri Pankovand 78*260e9a87SYuri Pankov.Fl l 79*260e9a87SYuri Pankovoptions. 80*260e9a87SYuri Pankov.Sm off 81*260e9a87SYuri Pankov.It Fl I Cm os Li = Ar name 82*260e9a87SYuri Pankov.Sm on 83*260e9a87SYuri PankovOverride the default operating system 84*260e9a87SYuri Pankov.Ar name 85*260e9a87SYuri Pankovfor the 86*260e9a87SYuri Pankov.Xr mdoc 5 87*260e9a87SYuri Pankov.Sq \&Os 88*260e9a87SYuri Pankovand for the 89*260e9a87SYuri Pankov.Xr man 5 90*260e9a87SYuri Pankov.Sq \&TH 91*260e9a87SYuri Pankovmacro. 92*260e9a87SYuri Pankov.It Fl h 93*260e9a87SYuri PankovDisplay only the SYNOPSIS lines. 94*260e9a87SYuri PankovImplies 95*260e9a87SYuri Pankov.Fl c . 96*260e9a87SYuri Pankov.It Fl K Ns Ar encoding 97*260e9a87SYuri PankovSpecify the input encoding. 98*260e9a87SYuri PankovThe supported 99*260e9a87SYuri Pankov.Ar encoding 100*260e9a87SYuri Pankovarguments are 101*260e9a87SYuri Pankov.Cm us-ascii , 102*260e9a87SYuri Pankov.Cm iso-8859-1 , 103*260e9a87SYuri Pankovand 104*260e9a87SYuri Pankov.Cm utf-8 . 105*260e9a87SYuri PankovIf not specified, autodetection uses the first match: 106*260e9a87SYuri Pankov.Bl -tag -width iso-8859-1 107*260e9a87SYuri Pankov.It Cm utf-8 108*260e9a87SYuri Pankovif the first three bytes of the input file 109*260e9a87SYuri Pankovare the UTF-8 byte order mark (BOM, 0xefbbbf) 110*260e9a87SYuri Pankov.It Ar encoding 111*260e9a87SYuri Pankovif the first or second line of the input file matches the 112*260e9a87SYuri Pankov.Sy emacs 113*260e9a87SYuri Pankovmode line format 114*260e9a87SYuri Pankov.Pp 115*260e9a87SYuri Pankov.D1 .\e" -*- Oo ...; Oc coding: Ar encoding ; No -*- 116*260e9a87SYuri Pankov.It Cm utf-8 117*260e9a87SYuri Pankovif the first non-ASCII byte in the file introduces a valid UTF-8 sequence 118*260e9a87SYuri Pankov.It Cm iso-8859-1 119*260e9a87SYuri Pankovotherwise 120*260e9a87SYuri Pankov.El 121*260e9a87SYuri Pankov.It Fl l 122*260e9a87SYuri PankovA synonym for 123*260e9a87SYuri Pankov.Fl a . 12495c635efSGarrett D'Amore.It Fl m Ns Ar format 12595c635efSGarrett D'AmoreInput format. 12695c635efSGarrett D'AmoreSee 12795c635efSGarrett D'Amore.Sx Input Formats 12895c635efSGarrett D'Amorefor available formats. 12995c635efSGarrett D'AmoreDefaults to 13095c635efSGarrett D'Amore.Fl m Ns Cm andoc . 13195c635efSGarrett D'Amore.It Fl O Ns Ar option 13295c635efSGarrett D'AmoreComma-separated output options. 13395c635efSGarrett D'Amore.It Fl T Ns Ar output 13495c635efSGarrett D'AmoreOutput format. 13595c635efSGarrett D'AmoreSee 13695c635efSGarrett D'Amore.Sx Output Formats 13795c635efSGarrett D'Amorefor available formats. 13895c635efSGarrett D'AmoreDefaults to 139*260e9a87SYuri Pankov.Fl T Ns Cm locale . 14095c635efSGarrett D'Amore.It Fl W Ns Ar level 14195c635efSGarrett D'AmoreSpecify the minimum message 14295c635efSGarrett D'Amore.Ar level 14395c635efSGarrett D'Amoreto be reported on the standard error output and to affect the exit status. 14495c635efSGarrett D'AmoreThe 14595c635efSGarrett D'Amore.Ar level 14695c635efSGarrett D'Amorecan be 14795c635efSGarrett D'Amore.Cm warning , 14895c635efSGarrett D'Amore.Cm error , 14995c635efSGarrett D'Amoreor 150*260e9a87SYuri Pankov.Cm unsupp ; 151*260e9a87SYuri Pankov.Cm all 15295c635efSGarrett D'Amoreis an alias for 153*260e9a87SYuri Pankov.Cm warning . 154*260e9a87SYuri PankovBy default, 155*260e9a87SYuri Pankov.Nm 156*260e9a87SYuri Pankovis silent. 15795c635efSGarrett D'AmoreSee 15895c635efSGarrett D'Amore.Sx EXIT STATUS 15995c635efSGarrett D'Amoreand 16095c635efSGarrett D'Amore.Sx DIAGNOSTICS 16195c635efSGarrett D'Amorefor details. 16295c635efSGarrett D'Amore.Pp 16395c635efSGarrett D'AmoreThe special option 16495c635efSGarrett D'Amore.Fl W Ns Cm stop 16595c635efSGarrett D'Amoretells 16695c635efSGarrett D'Amore.Nm 16795c635efSGarrett D'Amoreto exit after parsing a file that causes warnings or errors of at least 16895c635efSGarrett D'Amorethe requested level. 16995c635efSGarrett D'AmoreNo formatted output will be produced from that file. 17095c635efSGarrett D'AmoreIf both a 17195c635efSGarrett D'Amore.Ar level 17295c635efSGarrett D'Amoreand 17395c635efSGarrett D'Amore.Cm stop 17495c635efSGarrett D'Amoreare requested, they can be joined with a comma, for example 17595c635efSGarrett D'Amore.Fl W Ns Cm error , Ns Cm stop . 17695c635efSGarrett D'Amore.It Ar file 17795c635efSGarrett D'AmoreRead input from zero or more files. 17895c635efSGarrett D'AmoreIf unspecified, reads from stdin. 17995c635efSGarrett D'AmoreIf multiple files are specified, 18095c635efSGarrett D'Amore.Nm 18195c635efSGarrett D'Amorewill halt with the first failed parse. 18295c635efSGarrett D'Amore.El 18395c635efSGarrett D'Amore.Ss Input Formats 18495c635efSGarrett D'AmoreThe 18595c635efSGarrett D'Amore.Nm 18695c635efSGarrett D'Amoreutility accepts 18795c635efSGarrett D'Amore.Xr mdoc 5 18895c635efSGarrett D'Amoreand 18995c635efSGarrett D'Amore.Xr man 5 19095c635efSGarrett D'Amoreinput with 19195c635efSGarrett D'Amore.Fl m Ns Cm doc 19295c635efSGarrett D'Amoreand 19395c635efSGarrett D'Amore.Fl m Ns Cm an , 19495c635efSGarrett D'Amorerespectively. 19595c635efSGarrett D'AmoreThe 19695c635efSGarrett D'Amore.Xr mdoc 5 19795c635efSGarrett D'Amoreformat is 19895c635efSGarrett D'Amore.Em strongly 19995c635efSGarrett D'Amorerecommended; 20095c635efSGarrett D'Amore.Xr man 5 20195c635efSGarrett D'Amoreshould only be used for legacy manuals. 20295c635efSGarrett D'Amore.Pp 20395c635efSGarrett D'AmoreA third option, 20495c635efSGarrett D'Amore.Fl m Ns Cm andoc , 20595c635efSGarrett D'Amorewhich is also the default, determines encoding on-the-fly: if the first 20695c635efSGarrett D'Amorenon-comment macro is 20795c635efSGarrett D'Amore.Sq \&Dd 20895c635efSGarrett D'Amoreor 20995c635efSGarrett D'Amore.Sq \&Dt , 21095c635efSGarrett D'Amorethe 21195c635efSGarrett D'Amore.Xr mdoc 5 21295c635efSGarrett D'Amoreparser is used; otherwise, the 21395c635efSGarrett D'Amore.Xr man 5 21495c635efSGarrett D'Amoreparser is used. 21595c635efSGarrett D'Amore.Pp 21695c635efSGarrett D'AmoreIf multiple 21795c635efSGarrett D'Amorefiles are specified with 21895c635efSGarrett D'Amore.Fl m Ns Cm andoc , 21995c635efSGarrett D'Amoreeach has its file-type determined this way. 22095c635efSGarrett D'AmoreIf multiple files are 22195c635efSGarrett D'Amorespecified and 22295c635efSGarrett D'Amore.Fl m Ns Cm doc 22395c635efSGarrett D'Amoreor 22495c635efSGarrett D'Amore.Fl m Ns Cm an 22595c635efSGarrett D'Amoreis specified, then this format is used exclusively. 22695c635efSGarrett D'Amore.Ss Output Formats 22795c635efSGarrett D'AmoreThe 22895c635efSGarrett D'Amore.Nm 22995c635efSGarrett D'Amoreutility accepts the following 23095c635efSGarrett D'Amore.Fl T 23195c635efSGarrett D'Amorearguments, which correspond to output modes: 23295c635efSGarrett D'Amore.Bl -tag -width "-Tlocale" 23395c635efSGarrett D'Amore.It Fl T Ns Cm ascii 23495c635efSGarrett D'AmoreProduce 7-bit ASCII output. 23595c635efSGarrett D'AmoreSee 23695c635efSGarrett D'Amore.Sx ASCII Output . 23795c635efSGarrett D'Amore.It Fl T Ns Cm html 238*260e9a87SYuri PankovProduce HTML5, CSS1, and MathML output. 23995c635efSGarrett D'AmoreSee 24095c635efSGarrett D'Amore.Sx HTML Output . 24195c635efSGarrett D'Amore.It Fl T Ns Cm lint 24295c635efSGarrett D'AmoreParse only: produce no output. 24395c635efSGarrett D'AmoreImplies 24495c635efSGarrett D'Amore.Fl W Ns Cm warning . 24595c635efSGarrett D'Amore.It Fl T Ns Cm locale 24695c635efSGarrett D'AmoreEncode output using the current locale. 247*260e9a87SYuri PankovThis is the default. 24895c635efSGarrett D'AmoreSee 24995c635efSGarrett D'Amore.Sx Locale Output . 25095c635efSGarrett D'Amore.It Fl T Ns Cm man 25195c635efSGarrett D'AmoreProduce 25295c635efSGarrett D'Amore.Xr man 5 25395c635efSGarrett D'Amoreformat output. 25495c635efSGarrett D'AmoreSee 25595c635efSGarrett D'Amore.Sx Man Output . 25695c635efSGarrett D'Amore.It Fl T Ns Cm pdf 25795c635efSGarrett D'AmoreProduce PDF output. 25895c635efSGarrett D'AmoreSee 25995c635efSGarrett D'Amore.Sx PDF Output . 26095c635efSGarrett D'Amore.It Fl T Ns Cm ps 26195c635efSGarrett D'AmoreProduce PostScript output. 26295c635efSGarrett D'AmoreSee 26395c635efSGarrett D'Amore.Sx PostScript Output . 26495c635efSGarrett D'Amore.It Fl T Ns Cm tree 26595c635efSGarrett D'AmoreProduce an indented parse tree. 26695c635efSGarrett D'Amore.It Fl T Ns Cm utf8 26795c635efSGarrett D'AmoreEncode output in the UTF\-8 multi-byte format. 26895c635efSGarrett D'AmoreSee 26995c635efSGarrett D'Amore.Sx UTF\-8 Output . 27095c635efSGarrett D'Amore.It Fl T Ns Cm xhtml 271*260e9a87SYuri PankovThis is a synonym for 272*260e9a87SYuri Pankov.Fl T Ns Cm html . 27395c635efSGarrett D'Amore.El 27495c635efSGarrett D'Amore.Pp 27595c635efSGarrett D'AmoreIf multiple input files are specified, these will be processed by the 27695c635efSGarrett D'Amorecorresponding filter in-order. 27795c635efSGarrett D'Amore.Ss ASCII Output 27895c635efSGarrett D'AmoreOutput produced by 279*260e9a87SYuri Pankov.Fl T Ns Cm ascii 280*260e9a87SYuri Pankovis rendered in standard 7-bit ASCII documented in 28195c635efSGarrett D'Amore.Xr ascii 5 . 28295c635efSGarrett D'Amore.Pp 28395c635efSGarrett D'AmoreFont styles are applied by using back-spaced encoding such that an 28495c635efSGarrett D'Amoreunderlined character 28595c635efSGarrett D'Amore.Sq c 28695c635efSGarrett D'Amoreis rendered as 28795c635efSGarrett D'Amore.Sq _ Ns \e[bs] Ns c , 28895c635efSGarrett D'Amorewhere 28995c635efSGarrett D'Amore.Sq \e[bs] 29095c635efSGarrett D'Amoreis the back-space character number 8. 29195c635efSGarrett D'AmoreEmboldened characters are rendered as 29295c635efSGarrett D'Amore.Sq c Ns \e[bs] Ns c . 29395c635efSGarrett D'Amore.Pp 29495c635efSGarrett D'AmoreThe special characters documented in 29595c635efSGarrett D'Amore.Xr mandoc_char 5 29695c635efSGarrett D'Amoreare rendered best-effort in an ASCII equivalent. 29795c635efSGarrett D'Amore.Pp 29895c635efSGarrett D'AmoreOutput width is limited to 78 visible columns unless literal input lines 29995c635efSGarrett D'Amoreexceed this limit. 30095c635efSGarrett D'Amore.Pp 30195c635efSGarrett D'AmoreThe following 30295c635efSGarrett D'Amore.Fl O 30395c635efSGarrett D'Amorearguments are accepted: 30495c635efSGarrett D'Amore.Bl -tag -width Ds 30595c635efSGarrett D'Amore.It Cm indent Ns = Ns Ar indent 30695c635efSGarrett D'AmoreThe left margin for normal text is set to 30795c635efSGarrett D'Amore.Ar indent 30895c635efSGarrett D'Amoreblank characters instead of the default of five for 30995c635efSGarrett D'Amore.Xr mdoc 5 31095c635efSGarrett D'Amoreand seven for 31195c635efSGarrett D'Amore.Xr man 5 . 31295c635efSGarrett D'AmoreIncreasing this is not recommended; it may result in degraded formatting, 31395c635efSGarrett D'Amorefor example overfull lines or ugly line breaks. 31495c635efSGarrett D'Amore.It Cm width Ns = Ns Ar width 31595c635efSGarrett D'AmoreThe output width is set to 31695c635efSGarrett D'Amore.Ar width , 317*260e9a87SYuri Pankovwhich will normalise to \(>=58. 31895c635efSGarrett D'Amore.El 31995c635efSGarrett D'Amore.Ss HTML Output 32095c635efSGarrett D'AmoreOutput produced by 32195c635efSGarrett D'Amore.Fl T Ns Cm html 322*260e9a87SYuri Pankovconforms to HTML5 using optional self-closing tags. 323*260e9a87SYuri PankovDefault styles use only CSS1. 324*260e9a87SYuri PankovEquations rendered from 325*260e9a87SYuri Pankov.Xr eqn 5 326*260e9a87SYuri Pankovblocks use MathML. 32795c635efSGarrett D'Amore.Pp 32895c635efSGarrett D'AmoreThe 32995c635efSGarrett D'Amore.Pa example.style.css 33095c635efSGarrett D'Amorefile documents style-sheet classes available for customising output. 33195c635efSGarrett D'AmoreIf a style-sheet is not specified with 33295c635efSGarrett D'Amore.Fl O Ns Ar style , 33395c635efSGarrett D'Amore.Fl T Ns Cm html 334*260e9a87SYuri Pankovdefaults to simple output (via an embedded style-sheet) 335*260e9a87SYuri Pankovreadable in any graphical or text-based web 33695c635efSGarrett D'Amorebrowser. 33795c635efSGarrett D'Amore.Pp 33895c635efSGarrett D'AmoreSpecial characters are rendered in decimal-encoded UTF\-8. 33995c635efSGarrett D'Amore.Pp 34095c635efSGarrett D'AmoreThe following 34195c635efSGarrett D'Amore.Fl O 34295c635efSGarrett D'Amorearguments are accepted: 34395c635efSGarrett D'Amore.Bl -tag -width Ds 34495c635efSGarrett D'Amore.It Cm fragment 345*260e9a87SYuri PankovOmit the <!DOCTYPE> declaration and the <html>, <head>, and <body> 346*260e9a87SYuri Pankovelements and only emit the subtree below the <body> element. 34795c635efSGarrett D'AmoreThe 34895c635efSGarrett D'Amore.Cm style 34995c635efSGarrett D'Amoreargument will be ignored. 35095c635efSGarrett D'AmoreThis is useful when embedding manual content within existing documents. 35195c635efSGarrett D'Amore.It Cm includes Ns = Ns Ar fmt 35295c635efSGarrett D'AmoreThe string 35395c635efSGarrett D'Amore.Ar fmt , 35495c635efSGarrett D'Amorefor example, 35595c635efSGarrett D'Amore.Ar ../src/%I.html , 35695c635efSGarrett D'Amoreis used as a template for linked header files (usually via the 35795c635efSGarrett D'Amore.Sq \&In 35895c635efSGarrett D'Amoremacro). 35995c635efSGarrett D'AmoreInstances of 36095c635efSGarrett D'Amore.Sq \&%I 36195c635efSGarrett D'Amoreare replaced with the include filename. 36295c635efSGarrett D'AmoreThe default is not to present a 36395c635efSGarrett D'Amorehyperlink. 36495c635efSGarrett D'Amore.It Cm man Ns = Ns Ar fmt 36595c635efSGarrett D'AmoreThe string 36695c635efSGarrett D'Amore.Ar fmt , 36795c635efSGarrett D'Amorefor example, 36895c635efSGarrett D'Amore.Ar ../html%S/%N.%S.html , 36995c635efSGarrett D'Amoreis used as a template for linked manuals (usually via the 37095c635efSGarrett D'Amore.Sq \&Xr 37195c635efSGarrett D'Amoremacro). 37295c635efSGarrett D'AmoreInstances of 37395c635efSGarrett D'Amore.Sq \&%N 37495c635efSGarrett D'Amoreand 37595c635efSGarrett D'Amore.Sq %S 37695c635efSGarrett D'Amoreare replaced with the linked manual's name and section, respectively. 37795c635efSGarrett D'AmoreIf no section is included, section 1 is assumed. 37895c635efSGarrett D'AmoreThe default is not to 37995c635efSGarrett D'Amorepresent a hyperlink. 38095c635efSGarrett D'Amore.It Cm style Ns = Ns Ar style.css 38195c635efSGarrett D'AmoreThe file 38295c635efSGarrett D'Amore.Ar style.css 38395c635efSGarrett D'Amoreis used for an external style-sheet. 38495c635efSGarrett D'AmoreThis must be a valid absolute or 38595c635efSGarrett D'Amorerelative URI. 38695c635efSGarrett D'Amore.El 38795c635efSGarrett D'Amore.Ss Locale Output 38895c635efSGarrett D'AmoreLocale-depending output encoding is triggered with 38995c635efSGarrett D'Amore.Fl T Ns Cm locale . 390*260e9a87SYuri PankovThis is the default. 39195c635efSGarrett D'Amore.Ss Man Output 39295c635efSGarrett D'AmoreTranslate input format into 39395c635efSGarrett D'Amore.Xr man 5 39495c635efSGarrett D'Amoreoutput format. 39595c635efSGarrett D'AmoreThis is useful for distributing manual sources to legacy systems 39695c635efSGarrett D'Amorelacking 39795c635efSGarrett D'Amore.Xr mdoc 5 39895c635efSGarrett D'Amoreformatters. 39995c635efSGarrett D'Amore.Pp 40095c635efSGarrett D'AmoreIf 40195c635efSGarrett D'Amore.Xr mdoc 5 40295c635efSGarrett D'Amoreis passed as input, it is translated into 40395c635efSGarrett D'Amore.Xr man 5 . 40495c635efSGarrett D'AmoreIf the input format is 40595c635efSGarrett D'Amore.Xr man 5 , 40695c635efSGarrett D'Amorethe input is copied to the output, expanding any 40795c635efSGarrett D'Amore.Xr mandoc_roff 5 40895c635efSGarrett D'Amore.Sq so 40995c635efSGarrett D'Amorerequests. 41095c635efSGarrett D'AmoreThe parser is also run, and as usual, the 41195c635efSGarrett D'Amore.Fl W 41295c635efSGarrett D'Amorelevel controls which 41395c635efSGarrett D'Amore.Sx DIAGNOSTICS 41495c635efSGarrett D'Amoreare displayed before copying the input to the output. 41595c635efSGarrett D'Amore.Ss PDF Output 41695c635efSGarrett D'AmorePDF-1.1 output may be generated by 41795c635efSGarrett D'Amore.Fl T Ns Cm pdf . 41895c635efSGarrett D'AmoreSee 41995c635efSGarrett D'Amore.Sx PostScript Output 42095c635efSGarrett D'Amorefor 42195c635efSGarrett D'Amore.Fl O 42295c635efSGarrett D'Amorearguments and defaults. 42395c635efSGarrett D'Amore.Ss PostScript Output 42495c635efSGarrett D'AmorePostScript 42595c635efSGarrett D'Amore.Qq Adobe-3.0 42695c635efSGarrett D'AmoreLevel-2 pages may be generated by 42795c635efSGarrett D'Amore.Fl T Ns Cm ps . 42895c635efSGarrett D'AmoreOutput pages default to letter sized and are rendered in the Times font 42995c635efSGarrett D'Amorefamily, 11-point. 43095c635efSGarrett D'AmoreMargins are calculated as 1/9 the page length and width. 43195c635efSGarrett D'AmoreLine-height is 1.4m. 43295c635efSGarrett D'Amore.Pp 43395c635efSGarrett D'AmoreSpecial characters are rendered as in 43495c635efSGarrett D'Amore.Sx ASCII Output . 43595c635efSGarrett D'Amore.Pp 43695c635efSGarrett D'AmoreThe following 43795c635efSGarrett D'Amore.Fl O 43895c635efSGarrett D'Amorearguments are accepted: 43995c635efSGarrett D'Amore.Bl -tag -width Ds 44095c635efSGarrett D'Amore.It Cm paper Ns = Ns Ar name 44195c635efSGarrett D'AmoreThe paper size 44295c635efSGarrett D'Amore.Ar name 44395c635efSGarrett D'Amoremay be one of 44495c635efSGarrett D'Amore.Ar a3 , 44595c635efSGarrett D'Amore.Ar a4 , 44695c635efSGarrett D'Amore.Ar a5 , 44795c635efSGarrett D'Amore.Ar legal , 44895c635efSGarrett D'Amoreor 44995c635efSGarrett D'Amore.Ar letter . 45095c635efSGarrett D'AmoreYou may also manually specify dimensions as 45195c635efSGarrett D'Amore.Ar NNxNN , 45295c635efSGarrett D'Amorewidth by height in millimetres. 45395c635efSGarrett D'AmoreIf an unknown value is encountered, 45495c635efSGarrett D'Amore.Ar letter 45595c635efSGarrett D'Amoreis used. 45695c635efSGarrett D'Amore.El 45795c635efSGarrett D'Amore.Ss UTF\-8 Output 45895c635efSGarrett D'AmoreUse 45995c635efSGarrett D'Amore.Fl T Ns Cm utf8 46095c635efSGarrett D'Amoreto force a UTF\-8 locale. 46195c635efSGarrett D'AmoreSee 46295c635efSGarrett D'Amore.Sx Locale Output 46395c635efSGarrett D'Amorefor details and options. 46495c635efSGarrett D'Amore.Sh EXIT STATUS 46595c635efSGarrett D'AmoreThe 46695c635efSGarrett D'Amore.Nm 46795c635efSGarrett D'Amoreutility exits with one of the following values, controlled by the message 46895c635efSGarrett D'Amore.Ar level 46995c635efSGarrett D'Amoreassociated with the 47095c635efSGarrett D'Amore.Fl W 47195c635efSGarrett D'Amoreoption: 47295c635efSGarrett D'Amore.Pp 47395c635efSGarrett D'Amore.Bl -tag -width Ds -compact 47495c635efSGarrett D'Amore.It 0 47595c635efSGarrett D'AmoreNo warnings or errors occurred, or those that did were ignored because 47695c635efSGarrett D'Amorethey were lower than the requested 47795c635efSGarrett D'Amore.Ar level . 47895c635efSGarrett D'Amore.It 2 47995c635efSGarrett D'AmoreAt least one warning occurred, but no error, and 48095c635efSGarrett D'Amore.Fl W Ns Cm warning 48195c635efSGarrett D'Amorewas specified. 48295c635efSGarrett D'Amore.It 3 483*260e9a87SYuri PankovAt least one parsing error occurred, 484*260e9a87SYuri Pankovbut no unsupported feature was encountered, and 48595c635efSGarrett D'Amore.Fl W Ns Cm error 48695c635efSGarrett D'Amoreor 48795c635efSGarrett D'Amore.Fl W Ns Cm warning 48895c635efSGarrett D'Amorewas specified. 48995c635efSGarrett D'Amore.It 4 490*260e9a87SYuri PankovAt least one unsupported feature was encountered, and 491*260e9a87SYuri Pankov.Fl W Ns Cm unsupp , 492*260e9a87SYuri Pankov.Fl W Ns Cm error 493*260e9a87SYuri Pankovor 494*260e9a87SYuri Pankov.Fl W Ns Cm warning 495*260e9a87SYuri Pankovwas specified. 49695c635efSGarrett D'Amore.It 5 49795c635efSGarrett D'AmoreInvalid command line arguments were specified. 49895c635efSGarrett D'AmoreNo input files have been read. 49995c635efSGarrett D'Amore.It 6 500*260e9a87SYuri PankovAn operating system error occurred, for example exhaustion 501*260e9a87SYuri Pankovof memory, file descriptors, or process table entries. 50295c635efSGarrett D'AmoreSuch errors cause 50395c635efSGarrett D'Amore.Nm 50495c635efSGarrett D'Amoreto exit at once, possibly in the middle of parsing or formatting a file. 50595c635efSGarrett D'Amore.El 50695c635efSGarrett D'Amore.Pp 50795c635efSGarrett D'AmoreNote that selecting 50895c635efSGarrett D'Amore.Fl T Ns Cm lint 50995c635efSGarrett D'Amoreoutput mode implies 51095c635efSGarrett D'Amore.Fl W Ns Cm warning . 51195c635efSGarrett D'Amore.Sh EXAMPLES 51295c635efSGarrett D'AmoreTo page manuals to the terminal: 51395c635efSGarrett D'Amore.Pp 51495c635efSGarrett D'Amore.Dl $ mandoc \-Wall,stop mandoc.1 2\*(Gt&1 | less 515*260e9a87SYuri Pankov.Dl $ mandoc mandoc.1 mdoc.3 mdoc.5 | less 51695c635efSGarrett D'Amore.Pp 51795c635efSGarrett D'AmoreTo produce HTML manuals with 51895c635efSGarrett D'Amore.Ar style.css 51995c635efSGarrett D'Amoreas the style-sheet: 52095c635efSGarrett D'Amore.Pp 52195c635efSGarrett D'Amore.Dl $ mandoc \-Thtml -Ostyle=style.css mdoc.5 \*(Gt mdoc.5.html 52295c635efSGarrett D'Amore.Pp 52395c635efSGarrett D'AmoreTo check over a large set of manuals: 52495c635efSGarrett D'Amore.Pp 52595c635efSGarrett D'Amore.Dl $ mandoc \-Tlint `find /usr/src -name \e*\e.[1-9]` 52695c635efSGarrett D'Amore.Pp 52795c635efSGarrett D'AmoreTo produce a series of PostScript manuals for A4 paper: 52895c635efSGarrett D'Amore.Pp 52995c635efSGarrett D'Amore.Dl $ mandoc \-Tps \-Opaper=a4 mdoc.5 man.5 \*(Gt manuals.ps 53095c635efSGarrett D'Amore.Pp 53195c635efSGarrett D'AmoreConvert a modern 53295c635efSGarrett D'Amore.Xr mdoc 5 53395c635efSGarrett D'Amoremanual to the older 53495c635efSGarrett D'Amore.Xr man 5 53595c635efSGarrett D'Amoreformat, for use on systems lacking an 53695c635efSGarrett D'Amore.Xr mdoc 5 53795c635efSGarrett D'Amoreparser: 53895c635efSGarrett D'Amore.Pp 53995c635efSGarrett D'Amore.Dl $ mandoc \-Tman foo.mdoc \*(Gt foo.man 54095c635efSGarrett D'Amore.Sh DIAGNOSTICS 541*260e9a87SYuri PankovMessages displayed by 542*260e9a87SYuri Pankov.Nm 543*260e9a87SYuri Pankovfollow this format: 54495c635efSGarrett D'Amore.Pp 545*260e9a87SYuri Pankov.D1 Nm Ns : Ar file : Ns Ar line : Ns Ar column : level : message : macro args 54695c635efSGarrett D'Amore.Pp 547*260e9a87SYuri PankovLine and column numbers start at 1. 548*260e9a87SYuri PankovBoth are omitted for messages referring to an input file as a whole. 549*260e9a87SYuri PankovMacro names and arguments are omitted where meaningless. 550*260e9a87SYuri PankovFatal messages about invalid command line arguments 551*260e9a87SYuri Pankovor operating system errors, for example when memory is exhausted, 552*260e9a87SYuri Pankovmay also omit the 553*260e9a87SYuri Pankov.Ar file 554*260e9a87SYuri Pankovand 555*260e9a87SYuri Pankov.Ar level 556*260e9a87SYuri Pankovfields. 55795c635efSGarrett D'Amore.Pp 55895c635efSGarrett D'AmoreMessage levels have the following meanings: 55995c635efSGarrett D'Amore.Bl -tag -width "warning" 560*260e9a87SYuri Pankov.It Cm unsupp 561*260e9a87SYuri PankovAn input file uses unsupported low-level 562*260e9a87SYuri Pankov.Xr mandoc_roff 5 563*260e9a87SYuri Pankovfeatures. 564*260e9a87SYuri PankovThe output may be incomplete and/or misformatted, 565*260e9a87SYuri Pankovso using GNU troff instead of 56695c635efSGarrett D'Amore.Nm 567*260e9a87SYuri Pankovto process the file may be preferable. 568*260e9a87SYuri Pankov.It Cm error 569*260e9a87SYuri PankovAn input file contains invalid syntax that cannot be safely interpreted. 57095c635efSGarrett D'AmoreBy discarding part of the input or inserting missing tokens, 57195c635efSGarrett D'Amorethe parser is able to continue, and the error does not prevent 57295c635efSGarrett D'Amoregeneration of formatted output, but typically, preparing that 57395c635efSGarrett D'Amoreoutput involves information loss, broken document structure 574*260e9a87SYuri Pankovor unintended formatting, no matter whether 575*260e9a87SYuri Pankov.Nm 576*260e9a87SYuri Pankovor GNU troff is used. 577*260e9a87SYuri PankovIn many cases, the output of 578*260e9a87SYuri Pankov.Nm 579*260e9a87SYuri Pankovand GNU troff is identical, but in some, 580*260e9a87SYuri Pankov.Nm 581*260e9a87SYuri Pankovis more resilient than GNU troff with respect to malformed input. 582*260e9a87SYuri Pankov.Pp 583*260e9a87SYuri PankovNon-existent or unreadable input files are also reported on the 584*260e9a87SYuri Pankov.Cm error 585*260e9a87SYuri Pankovlevel. 586*260e9a87SYuri PankovIn that case, the parser cannot even be started and no output 587*260e9a87SYuri Pankovis produced from those input files. 58895c635efSGarrett D'Amore.It Cm warning 58995c635efSGarrett D'AmoreAn input file uses obsolete, discouraged or non-portable syntax. 59095c635efSGarrett D'AmoreAll the same, the meaning of the input is unambiguous and a correct 59195c635efSGarrett D'Amorerendering can be produced. 59295c635efSGarrett D'AmoreDocuments causing warnings may render poorly when using other 59395c635efSGarrett D'Amoreformatting tools instead of 59495c635efSGarrett D'Amore.Nm . 59595c635efSGarrett D'Amore.El 59695c635efSGarrett D'Amore.Pp 59795c635efSGarrett D'AmoreMessages of the 598*260e9a87SYuri Pankov.Cm warning , 599*260e9a87SYuri Pankov.Cm error , 60095c635efSGarrett D'Amoreand 601*260e9a87SYuri Pankov.Cm unsupp 602*260e9a87SYuri Pankovlevels except those about non-existent or unreadable input files 603*260e9a87SYuri Pankovare hidden unless their level, or a lower level, is requested using a 60495c635efSGarrett D'Amore.Fl W 60595c635efSGarrett D'Amoreoption or 60695c635efSGarrett D'Amore.Fl T Ns Cm lint 60795c635efSGarrett D'Amoreoutput mode. 608*260e9a87SYuri Pankov.Ss Warnings related to the document prologue 609*260e9a87SYuri Pankov.Bl -ohang 610*260e9a87SYuri Pankov.It Sy "missing manual title, using UNTITLED" 611*260e9a87SYuri Pankov.Pq mdoc 612*260e9a87SYuri PankovA 613*260e9a87SYuri Pankov.Ic \&Dt 614*260e9a87SYuri Pankovmacro has no arguments, or there is no 615*260e9a87SYuri Pankov.Ic \&Dt 616*260e9a87SYuri Pankovmacro before the first non-prologue macro. 617*260e9a87SYuri Pankov.It Sy "missing manual title, using \(dq\(dq" 618*260e9a87SYuri Pankov.Pq man 619*260e9a87SYuri PankovThere is no 620*260e9a87SYuri Pankov.Ic \&TH 621*260e9a87SYuri Pankovmacro, or it has no arguments. 622*260e9a87SYuri Pankov.It Sy "lower case character in document title" 623*260e9a87SYuri Pankov.Pq mdoc , man 624*260e9a87SYuri PankovThe title is still used as given in the 625*260e9a87SYuri Pankov.Ic \&Dt 626*260e9a87SYuri Pankovor 627*260e9a87SYuri Pankov.Ic \&TH 628*260e9a87SYuri Pankovmacro. 629*260e9a87SYuri Pankov.It Sy "missing manual section, using \(dq\(dq" 630*260e9a87SYuri Pankov.Pq mdoc , man 631*260e9a87SYuri PankovA 632*260e9a87SYuri Pankov.Ic \&Dt 633*260e9a87SYuri Pankovor 634*260e9a87SYuri Pankov.Ic \&TH 635*260e9a87SYuri Pankovmacro lacks the mandatory section argument. 636*260e9a87SYuri Pankov.It Sy "unknown manual section" 637*260e9a87SYuri Pankov.Pq mdoc 638*260e9a87SYuri PankovThe section number in a 639*260e9a87SYuri Pankov.Ic \&Dt 640*260e9a87SYuri Pankovline is invalid, but still used. 641*260e9a87SYuri Pankov.It Sy "missing date, using today's date" 642*260e9a87SYuri Pankov.Pq mdoc, man 643*260e9a87SYuri PankovThe document was parsed as 64495c635efSGarrett D'Amore.Xr mdoc 5 645*260e9a87SYuri Pankovand it has no 646*260e9a87SYuri Pankov.Ic \&Dd 647*260e9a87SYuri Pankovmacro, or the 648*260e9a87SYuri Pankov.Ic \&Dd 649*260e9a87SYuri Pankovmacro has no arguments or only empty arguments; 650*260e9a87SYuri Pankovor the document was parsed as 65195c635efSGarrett D'Amore.Xr man 5 652*260e9a87SYuri Pankovand it has no 653*260e9a87SYuri Pankov.Ic \&TH 654*260e9a87SYuri Pankovmacro, or the 655*260e9a87SYuri Pankov.Ic \&TH 656*260e9a87SYuri Pankovmacro has less than three arguments or its third argument is empty. 657*260e9a87SYuri Pankov.It Sy "cannot parse date, using it verbatim" 658*260e9a87SYuri Pankov.Pq mdoc , man 659*260e9a87SYuri PankovThe date given in a 660*260e9a87SYuri Pankov.Ic \&Dd 661*260e9a87SYuri Pankovor 662*260e9a87SYuri Pankov.Ic \&TH 663*260e9a87SYuri Pankovmacro does not follow the conventional format. 664*260e9a87SYuri Pankov.It Sy "missing Os macro, using \(dq\(dq" 665*260e9a87SYuri Pankov.Pq mdoc 666*260e9a87SYuri PankovThe default or current system is not shown in this case. 667*260e9a87SYuri Pankov.It Sy "duplicate prologue macro" 668*260e9a87SYuri Pankov.Pq mdoc 669*260e9a87SYuri PankovOne of the prologue macros occurs more than once. 670*260e9a87SYuri PankovThe last instance overrides all previous ones. 671*260e9a87SYuri Pankov.It Sy "late prologue macro" 672*260e9a87SYuri Pankov.Pq mdoc 673*260e9a87SYuri PankovA 674*260e9a87SYuri Pankov.Ic \&Dd 675*260e9a87SYuri Pankovor 676*260e9a87SYuri Pankov.Ic \&Os 677*260e9a87SYuri Pankovmacro occurs after some non-prologue macro, but still takes effect. 678*260e9a87SYuri Pankov.It Sy "skipping late title macro" 679*260e9a87SYuri Pankov.Pq mdoc 680*260e9a87SYuri PankovThe 681*260e9a87SYuri Pankov.Ic \&Dt 682*260e9a87SYuri Pankovmacro appears after the first non-prologue macro. 683*260e9a87SYuri PankovTraditional formatters cannot handle this because 684*260e9a87SYuri Pankovthey write the page header before parsing the document body. 685*260e9a87SYuri PankovEven though this technical restriction does not apply to 686*260e9a87SYuri Pankov.Nm , 687*260e9a87SYuri Pankovtraditional semantics is preserved. 688*260e9a87SYuri PankovThe late macro is discarded including its arguments. 689*260e9a87SYuri Pankov.It Sy "prologue macros out of order" 690*260e9a87SYuri Pankov.Pq mdoc 691*260e9a87SYuri PankovThe prologue macros are not given in the conventional order 692*260e9a87SYuri Pankov.Ic \&Dd , 693*260e9a87SYuri Pankov.Ic \&Dt , 694*260e9a87SYuri Pankov.Ic \&Os . 695*260e9a87SYuri PankovAll three macros are used even when given in another order. 69695c635efSGarrett D'Amore.El 697*260e9a87SYuri Pankov.Ss Warnings regarding document structure 698*260e9a87SYuri Pankov.Bl -ohang 699*260e9a87SYuri Pankov.It Sy ".so is fragile, better use ln(1)" 700*260e9a87SYuri Pankov.Pq roff 701*260e9a87SYuri PankovIncluding files only works when the parser program runs with the correct 702*260e9a87SYuri Pankovcurrent working directory. 703*260e9a87SYuri Pankov.It Sy "no document body" 704*260e9a87SYuri Pankov.Pq mdoc , man 705*260e9a87SYuri PankovThe document body contains neither text nor macros. 706*260e9a87SYuri PankovAn empty document is shown, consisting only of a header and a footer line. 707*260e9a87SYuri Pankov.It Sy "content before first section header" 708*260e9a87SYuri Pankov.Pq mdoc , man 709*260e9a87SYuri PankovSome macros or text precede the first 710*260e9a87SYuri Pankov.Ic \&Sh 711*260e9a87SYuri Pankovor 712*260e9a87SYuri Pankov.Ic \&SH 713*260e9a87SYuri Pankovsection header. 714*260e9a87SYuri PankovThe offending macros and text are parsed and added to the top level 715*260e9a87SYuri Pankovof the syntax tree, outside any section block. 716*260e9a87SYuri Pankov.It Sy "first section is not NAME" 717*260e9a87SYuri Pankov.Pq mdoc 718*260e9a87SYuri PankovThe argument of the first 719*260e9a87SYuri Pankov.Ic \&Sh 720*260e9a87SYuri Pankovmacro is not 721*260e9a87SYuri Pankov.Sq NAME . 722*260e9a87SYuri PankovThis may confuse 723*260e9a87SYuri Pankov.Xr makewhatis 8 724*260e9a87SYuri Pankovand 725*260e9a87SYuri Pankov.Xr apropos 1 . 726*260e9a87SYuri Pankov.It Sy "NAME section without name" 727*260e9a87SYuri Pankov.Pq mdoc 728*260e9a87SYuri PankovThe NAME section does not contain any 729*260e9a87SYuri Pankov.Ic \&Nm 730*260e9a87SYuri Pankovchild macro. 731*260e9a87SYuri Pankov.It Sy "NAME section without description" 732*260e9a87SYuri Pankov.Pq mdoc 733*260e9a87SYuri PankovThe NAME section lacks the mandatory 734*260e9a87SYuri Pankov.Ic \&Nd 735*260e9a87SYuri Pankovchild macro. 736*260e9a87SYuri Pankov.It Sy "description not at the end of NAME" 737*260e9a87SYuri Pankov.Pq mdoc 738*260e9a87SYuri PankovThe NAME section does contain an 739*260e9a87SYuri Pankov.Ic \&Nd 740*260e9a87SYuri Pankovchild macro, but other content follows it. 741*260e9a87SYuri Pankov.It Sy "bad NAME section content" 742*260e9a87SYuri Pankov.Pq mdoc 743*260e9a87SYuri PankovThe NAME section contains plain text or macros other than 744*260e9a87SYuri Pankov.Ic \&Nm 745*260e9a87SYuri Pankovand 746*260e9a87SYuri Pankov.Ic \&Nd . 747*260e9a87SYuri Pankov.It Sy "missing description line, using \(dq\(dq" 748*260e9a87SYuri Pankov.Pq mdoc 74995c635efSGarrett D'AmoreThe 750*260e9a87SYuri Pankov.Ic \&Nd 751*260e9a87SYuri Pankovmacro lacks the required argument. 752*260e9a87SYuri PankovThe title line of the manual will end after the dash. 753*260e9a87SYuri Pankov.It Sy "sections out of conventional order" 754*260e9a87SYuri Pankov.Pq mdoc 755*260e9a87SYuri PankovA standard section occurs after another section it usually precedes. 756*260e9a87SYuri PankovAll section titles are used as given, 757*260e9a87SYuri Pankovand the order of sections is not changed. 758*260e9a87SYuri Pankov.It Sy "duplicate section title" 759*260e9a87SYuri Pankov.Pq mdoc 760*260e9a87SYuri PankovThe same standard section title occurs more than once. 761*260e9a87SYuri Pankov.It Sy "unexpected section" 762*260e9a87SYuri Pankov.Pq mdoc 763*260e9a87SYuri PankovA standard section header occurs in a section of the manual 764*260e9a87SYuri Pankovwhere it normally isn't useful. 765*260e9a87SYuri Pankov.It Sy "unusual Xr order" 766*260e9a87SYuri Pankov.Pq mdoc 767*260e9a87SYuri PankovIn the SEE ALSO section, an 768*260e9a87SYuri Pankov.Ic \&Xr 769*260e9a87SYuri Pankovmacro with a lower section number follows one with a higher number, 770*260e9a87SYuri Pankovor two 771*260e9a87SYuri Pankov.Ic \&Xr 772*260e9a87SYuri Pankovmacros refering to the same section are out of alphabetical order. 773*260e9a87SYuri Pankov.It Sy "unusual Xr punctuation" 774*260e9a87SYuri Pankov.Pq mdoc 775*260e9a87SYuri PankovIn the SEE ALSO section, punctuation between two 776*260e9a87SYuri Pankov.Ic \&Xr 777*260e9a87SYuri Pankovmacros differs from a single comma, or there is trailing punctuation 778*260e9a87SYuri Pankovafter the last 779*260e9a87SYuri Pankov.Ic \&Xr 780*260e9a87SYuri Pankovmacro. 781*260e9a87SYuri Pankov.It Sy "AUTHORS section without An macro" 782*260e9a87SYuri Pankov.Pq mdoc 783*260e9a87SYuri PankovAn AUTHORS sections contains no 784*260e9a87SYuri Pankov.Ic \&An 785*260e9a87SYuri Pankovmacros, or only empty ones. 786*260e9a87SYuri PankovProbably, there are author names lacking markup. 787*260e9a87SYuri Pankov.El 788*260e9a87SYuri Pankov.Ss "Warnings related to macros and nesting" 789*260e9a87SYuri Pankov.Bl -ohang 790*260e9a87SYuri Pankov.It Sy "obsolete macro" 791*260e9a87SYuri Pankov.Pq mdoc 792*260e9a87SYuri PankovSee the 79395c635efSGarrett D'Amore.Xr mdoc 5 794*260e9a87SYuri Pankovmanual for replacements. 795*260e9a87SYuri Pankov.It Sy "macro neither callable nor escaped" 796*260e9a87SYuri Pankov.Pq mdoc 797*260e9a87SYuri PankovThe name of a macro that is not callable appears on a macro line. 798*260e9a87SYuri PankovIt is printed verbatim. 799*260e9a87SYuri PankovIf the intention is to call it, move it to its own input line; 800*260e9a87SYuri Pankovotherwise, escape it by prepending 801*260e9a87SYuri Pankov.Sq \e& . 802*260e9a87SYuri Pankov.It Sy "skipping paragraph macro" 803*260e9a87SYuri PankovIn 804*260e9a87SYuri Pankov.Xr mdoc 5 805*260e9a87SYuri Pankovdocuments, this happens 806*260e9a87SYuri Pankov.Bl -dash -compact 807*260e9a87SYuri Pankov.It 808*260e9a87SYuri Pankovat the beginning and end of sections and subsections 809*260e9a87SYuri Pankov.It 810*260e9a87SYuri Pankovright before non-compact lists and displays 811*260e9a87SYuri Pankov.It 812*260e9a87SYuri Pankovat the end of items in non-column, non-compact lists 813*260e9a87SYuri Pankov.It 814*260e9a87SYuri Pankovand for multiple consecutive paragraph macros. 815*260e9a87SYuri Pankov.El 816*260e9a87SYuri PankovIn 817*260e9a87SYuri Pankov.Xr man 5 818*260e9a87SYuri Pankovdocuments, it happens 819*260e9a87SYuri Pankov.Bl -dash -compact 820*260e9a87SYuri Pankov.It 821*260e9a87SYuri Pankovfor empty 822*260e9a87SYuri Pankov.Ic \&P , 823*260e9a87SYuri Pankov.Ic \&PP , 82495c635efSGarrett D'Amoreand 825*260e9a87SYuri Pankov.Ic \&LP 826*260e9a87SYuri Pankovmacros 827*260e9a87SYuri Pankov.It 828*260e9a87SYuri Pankovfor 829*260e9a87SYuri Pankov.Ic \&IP 830*260e9a87SYuri Pankovmacros having neither head nor body arguments 831*260e9a87SYuri Pankov.It 832*260e9a87SYuri Pankovfor 833*260e9a87SYuri Pankov.Ic \&br 834*260e9a87SYuri Pankovor 835*260e9a87SYuri Pankov.Ic \&sp 836*260e9a87SYuri Pankovright after 837*260e9a87SYuri Pankov.Ic \&SH 838*260e9a87SYuri Pankovor 839*260e9a87SYuri Pankov.Ic \&SS 840*260e9a87SYuri Pankov.El 841*260e9a87SYuri Pankov.It Sy "moving paragraph macro out of list" 842*260e9a87SYuri Pankov.Pq mdoc 843*260e9a87SYuri PankovA list item in a 844*260e9a87SYuri Pankov.Ic \&Bl 845*260e9a87SYuri Pankovlist contains a trailing paragraph macro. 846*260e9a87SYuri PankovThe paragraph macro is moved after the end of the list. 847*260e9a87SYuri Pankov.It Sy "skipping no-space macro" 848*260e9a87SYuri Pankov.Pq mdoc 849*260e9a87SYuri PankovAn input line begins with an 850*260e9a87SYuri Pankov.Ic \&Ns 851*260e9a87SYuri Pankovmacro. 852*260e9a87SYuri PankovThe macro is ignored. 853*260e9a87SYuri Pankov.It Sy "blocks badly nested" 854*260e9a87SYuri Pankov.Pq mdoc 855*260e9a87SYuri PankovIf two blocks intersect, one should completely contain the other. 856*260e9a87SYuri PankovOtherwise, rendered output is likely to look strange in any output 857*260e9a87SYuri Pankovformat, and rendering in SGML-based output formats is likely to be 858*260e9a87SYuri Pankovoutright wrong because such languages do not support badly nested 859*260e9a87SYuri Pankovblocks at all. 860*260e9a87SYuri PankovTypical examples of badly nested blocks are 861*260e9a87SYuri Pankov.Qq Ic \&Ao \&Bo \&Ac \&Bc 862*260e9a87SYuri Pankovand 863*260e9a87SYuri Pankov.Qq Ic \&Ao \&Bq \&Ac . 864*260e9a87SYuri PankovIn these examples, 865*260e9a87SYuri Pankov.Ic \&Ac 866*260e9a87SYuri Pankovbreaks 867*260e9a87SYuri Pankov.Ic \&Bo 868*260e9a87SYuri Pankovand 869*260e9a87SYuri Pankov.Ic \&Bq , 870*260e9a87SYuri Pankovrespectively. 871*260e9a87SYuri Pankov.It Sy "nested displays are not portable" 872*260e9a87SYuri Pankov.Pq mdoc 873*260e9a87SYuri PankovA 874*260e9a87SYuri Pankov.Ic \&Bd , 875*260e9a87SYuri Pankov.Ic \&D1 , 876*260e9a87SYuri Pankovor 877*260e9a87SYuri Pankov.Ic \&Dl 878*260e9a87SYuri Pankovdisplay occurs nested inside another 879*260e9a87SYuri Pankov.Ic \&Bd 880*260e9a87SYuri Pankovdisplay. 881*260e9a87SYuri PankovThis works with 882*260e9a87SYuri Pankov.Nm , 883*260e9a87SYuri Pankovbut fails with most other implementations. 884*260e9a87SYuri Pankov.It Sy "moving content out of list" 885*260e9a87SYuri Pankov.Pq mdoc 886*260e9a87SYuri PankovA 887*260e9a87SYuri Pankov.Ic \&Bl 888*260e9a87SYuri Pankovlist block contains text or macros before the first 889*260e9a87SYuri Pankov.Ic \&It 890*260e9a87SYuri Pankovmacro. 891*260e9a87SYuri PankovThe offending children are moved before the beginning of the list. 892*260e9a87SYuri Pankov.It Sy ".Vt block has child macro" 893*260e9a87SYuri Pankov.Pq mdoc 894*260e9a87SYuri PankovThe 895*260e9a87SYuri Pankov.Ic \&Vt 896*260e9a87SYuri Pankovmacro supports plain text arguments only. 897*260e9a87SYuri PankovFormatting may be ugly and semantic searching 898*260e9a87SYuri Pankovfor the affected content might not work. 899*260e9a87SYuri Pankov.It Sy "fill mode already enabled, skipping" 900*260e9a87SYuri Pankov.Pq man 901*260e9a87SYuri PankovA 902*260e9a87SYuri Pankov.Ic \&fi 903*260e9a87SYuri Pankovrequest occurs even though the document is still in fill mode, 904*260e9a87SYuri Pankovor already switched back to fill mode. 905*260e9a87SYuri PankovIt has no effect. 906*260e9a87SYuri Pankov.It Sy "fill mode already disabled, skipping" 907*260e9a87SYuri Pankov.Pq man 908*260e9a87SYuri PankovAn 909*260e9a87SYuri Pankov.Ic \&nf 910*260e9a87SYuri Pankovrequest occurs even though the document already switched to no-fill mode 911*260e9a87SYuri Pankovand did not switch back to fill mode yet. 912*260e9a87SYuri PankovIt has no effect. 913*260e9a87SYuri Pankov.It Sy "line scope broken" 914*260e9a87SYuri Pankov.Pq man 915*260e9a87SYuri PankovWhile parsing the next-line scope of the previous macro, 916*260e9a87SYuri Pankovanother macro is found that prematurely terminates the previous one. 917*260e9a87SYuri PankovThe previous, interrupted macro is deleted from the parse tree. 918*260e9a87SYuri Pankov.El 919*260e9a87SYuri Pankov.Ss "Warnings related to missing arguments" 920*260e9a87SYuri Pankov.Bl -ohang 921*260e9a87SYuri Pankov.It Sy "skipping empty request" 922*260e9a87SYuri Pankov.Pq roff , eqn 923*260e9a87SYuri PankovThe macro name is missing from a macro definition request, 924*260e9a87SYuri Pankovor an 925*260e9a87SYuri Pankov.Xr eqn 5 926*260e9a87SYuri Pankovcontrol statement or operation keyword lacks its required argument. 927*260e9a87SYuri Pankov.It Sy "conditional request controls empty scope" 928*260e9a87SYuri Pankov.Pq roff 929*260e9a87SYuri PankovA conditional request is only useful if any of the following 930*260e9a87SYuri Pankovfollows it on the same logical input line: 931*260e9a87SYuri Pankov.Bl -dash -compact 93295c635efSGarrett D'Amore.It 93395c635efSGarrett D'AmoreThe 934*260e9a87SYuri Pankov.Sq \e{ 935*260e9a87SYuri Pankovkeyword to open a multi-line scope. 936*260e9a87SYuri Pankov.It 937*260e9a87SYuri PankovA request or macro or some text, resulting in a single-line scope. 938*260e9a87SYuri Pankov.It 939*260e9a87SYuri PankovThe immediate end of the logical line without any intervening whitespace, 940*260e9a87SYuri Pankovresulting in next-line scope. 94195c635efSGarrett D'Amore.El 942*260e9a87SYuri PankovHere, a conditional request is followed by trailing whitespace only, 943*260e9a87SYuri Pankovand there is no other content on its logical input line. 944*260e9a87SYuri PankovNote that it doesn't matter whether the logical input line is split 945*260e9a87SYuri Pankovacross multiple physical input lines using 946*260e9a87SYuri Pankov.Sq \e 947*260e9a87SYuri Pankovline continuation characters. 948*260e9a87SYuri PankovThis is one of the rare cases 949*260e9a87SYuri Pankovwhere trailing whitespace is syntactically significant. 950*260e9a87SYuri PankovThe conditional request controls a scope containing whitespace only, 951*260e9a87SYuri Pankovso it is unlikely to have a significant effect, 952*260e9a87SYuri Pankovexcept that it may control a following 953*260e9a87SYuri Pankov.Ic \&el 954*260e9a87SYuri Pankovclause. 955*260e9a87SYuri Pankov.It Sy "skipping empty macro" 956*260e9a87SYuri Pankov.Pq mdoc 957*260e9a87SYuri PankovThe indicated macro has no arguments and hence no effect. 958*260e9a87SYuri Pankov.It Sy "empty block" 959*260e9a87SYuri Pankov.Pq mdoc , man 960*260e9a87SYuri PankovA 961*260e9a87SYuri Pankov.Ic \&Bd , 962*260e9a87SYuri Pankov.Ic \&Bk , 963*260e9a87SYuri Pankov.Ic \&Bl , 964*260e9a87SYuri Pankov.Ic \&D1 , 965*260e9a87SYuri Pankov.Ic \&Dl , 966*260e9a87SYuri Pankov.Ic \&RS , 967*260e9a87SYuri Pankovor 968*260e9a87SYuri Pankov.Ic \&UR 969*260e9a87SYuri Pankovblock contains nothing in its body and will produce no output. 970*260e9a87SYuri Pankov.It Sy "empty argument, using 0n" 971*260e9a87SYuri Pankov.Pq mdoc 972*260e9a87SYuri PankovThe required width is missing after 973*260e9a87SYuri Pankov.Ic \&Bd 974*260e9a87SYuri Pankovor 975*260e9a87SYuri Pankov.Ic \&Bl 976*260e9a87SYuri Pankov.Fl offset 977*260e9a87SYuri Pankovor 978*260e9a87SYuri Pankov.Fl width. 979*260e9a87SYuri Pankov.It Sy "missing display type, using -ragged" 980*260e9a87SYuri Pankov.Pq mdoc 981*260e9a87SYuri PankovThe 982*260e9a87SYuri Pankov.Ic \&Bd 983*260e9a87SYuri Pankovmacro is invoked without the required display type. 984*260e9a87SYuri Pankov.It Sy "list type is not the first argument" 985*260e9a87SYuri Pankov.Pq mdoc 986*260e9a87SYuri PankovIn a 987*260e9a87SYuri Pankov.Ic \&Bl 988*260e9a87SYuri Pankovmacro, at least one other argument precedes the type argument. 98995c635efSGarrett D'AmoreThe 99095c635efSGarrett D'Amore.Nm 991*260e9a87SYuri Pankovutility copes with any argument order, but some other 992*260e9a87SYuri Pankov.Xr mdoc 5 993*260e9a87SYuri Pankovimplementations do not. 994*260e9a87SYuri Pankov.It Sy "missing -width in -tag list, using 8n" 995*260e9a87SYuri Pankov.Pq mdoc 996*260e9a87SYuri PankovEvery 997*260e9a87SYuri Pankov.Ic \&Bl 998*260e9a87SYuri Pankovmacro having the 999*260e9a87SYuri Pankov.Fl tag 1000*260e9a87SYuri Pankovargument requires 1001*260e9a87SYuri Pankov.Fl width , 1002*260e9a87SYuri Pankovtoo. 1003*260e9a87SYuri Pankov.It Sy "missing utility name, using \(dq\(dq" 1004*260e9a87SYuri Pankov.Pq mdoc 1005*260e9a87SYuri PankovThe 1006*260e9a87SYuri Pankov.Ic \&Ex Fl std 1007*260e9a87SYuri Pankovmacro is called without an argument before 1008*260e9a87SYuri Pankov.Ic \&Nm 1009*260e9a87SYuri Pankovhas first been called with an argument. 1010*260e9a87SYuri Pankov.It Sy "missing function name, using \(dq\(dq" 1011*260e9a87SYuri Pankov.Pq mdoc 1012*260e9a87SYuri PankovThe 1013*260e9a87SYuri Pankov.Ic \&Fo 1014*260e9a87SYuri Pankovmacro is called without an argument. 1015*260e9a87SYuri PankovNo function name is printed. 1016*260e9a87SYuri Pankov.It Sy "empty head in list item" 1017*260e9a87SYuri Pankov.Pq mdoc 1018*260e9a87SYuri PankovIn a 1019*260e9a87SYuri Pankov.Ic \&Bl 1020*260e9a87SYuri Pankov.Fl diag , 1021*260e9a87SYuri Pankov.Fl hang , 1022*260e9a87SYuri Pankov.Fl inset , 1023*260e9a87SYuri Pankov.Fl ohang , 1024*260e9a87SYuri Pankovor 1025*260e9a87SYuri Pankov.Fl tag 1026*260e9a87SYuri Pankovlist, an 1027*260e9a87SYuri Pankov.Ic \&It 1028*260e9a87SYuri Pankovmacro lacks the required argument. 1029*260e9a87SYuri PankovThe item head is left empty. 1030*260e9a87SYuri Pankov.It Sy "empty list item" 1031*260e9a87SYuri Pankov.Pq mdoc 1032*260e9a87SYuri PankovIn a 1033*260e9a87SYuri Pankov.Ic \&Bl 1034*260e9a87SYuri Pankov.Fl bullet , 1035*260e9a87SYuri Pankov.Fl dash , 1036*260e9a87SYuri Pankov.Fl enum , 1037*260e9a87SYuri Pankovor 1038*260e9a87SYuri Pankov.Fl hyphen 1039*260e9a87SYuri Pankovlist, an 1040*260e9a87SYuri Pankov.Ic \&It 1041*260e9a87SYuri Pankovblock is empty. 1042*260e9a87SYuri PankovAn empty list item is shown. 1043*260e9a87SYuri Pankov.It Sy "missing font type, using \efR" 1044*260e9a87SYuri Pankov.Pq mdoc 1045*260e9a87SYuri PankovA 1046*260e9a87SYuri Pankov.Ic \&Bf 1047*260e9a87SYuri Pankovmacro has no argument. 1048*260e9a87SYuri PankovIt switches to the default font. 1049*260e9a87SYuri Pankov.It Sy "unknown font type, using \efR" 1050*260e9a87SYuri Pankov.Pq mdoc 1051*260e9a87SYuri PankovThe 1052*260e9a87SYuri Pankov.Ic \&Bf 1053*260e9a87SYuri Pankovargument is invalid. 1054*260e9a87SYuri PankovThe default font is used instead. 1055*260e9a87SYuri Pankov.It Sy "nothing follows prefix" 1056*260e9a87SYuri Pankov.Pq mdoc 1057*260e9a87SYuri PankovA 1058*260e9a87SYuri Pankov.Ic \&Pf 1059*260e9a87SYuri Pankovmacro has no argument, or only one argument and no macro follows 1060*260e9a87SYuri Pankovon the same input line. 1061*260e9a87SYuri PankovThis defeats its purpose; in particular, spacing is not suppressed 1062*260e9a87SYuri Pankovbefore the text or macros following on the next input line. 1063*260e9a87SYuri Pankov.It Sy "empty reference block" 1064*260e9a87SYuri Pankov.Pq mdoc 1065*260e9a87SYuri PankovAn 1066*260e9a87SYuri Pankov.Ic \&Rs 1067*260e9a87SYuri Pankovmacro is immediately followed by an 1068*260e9a87SYuri Pankov.Ic \&Re 1069*260e9a87SYuri Pankovmacro on the next input line. 1070*260e9a87SYuri PankovSuch an empty block does not produce any output. 1071*260e9a87SYuri Pankov.It Sy "missing -std argument, adding it" 1072*260e9a87SYuri Pankov.Pq mdoc 1073*260e9a87SYuri PankovAn 1074*260e9a87SYuri Pankov.Ic \&Ex 1075*260e9a87SYuri Pankovor 1076*260e9a87SYuri Pankov.Ic \&Rv 1077*260e9a87SYuri Pankovmacro lacks the required 1078*260e9a87SYuri Pankov.Fl std 1079*260e9a87SYuri Pankovargument. 1080*260e9a87SYuri PankovThe 1081*260e9a87SYuri Pankov.Nm 1082*260e9a87SYuri Pankovutility assumes 1083*260e9a87SYuri Pankov.Fl std 1084*260e9a87SYuri Pankoveven when it is not specified, but other implementations may not. 1085*260e9a87SYuri Pankov.It Sy "missing option string, using \(dq\(dq" 1086*260e9a87SYuri Pankov.Pq man 1087*260e9a87SYuri PankovThe 1088*260e9a87SYuri Pankov.Ic \&OP 1089*260e9a87SYuri Pankovmacro is invoked without any argument. 1090*260e9a87SYuri PankovAn empty pair of square brackets is shown. 1091*260e9a87SYuri Pankov.It Sy "missing resource identifier, using \(dq\(dq" 1092*260e9a87SYuri Pankov.Pq man 1093*260e9a87SYuri PankovThe 1094*260e9a87SYuri Pankov.Ic \&UR 1095*260e9a87SYuri Pankovmacro is invoked without any argument. 1096*260e9a87SYuri PankovAn empty pair of angle brackets is shown. 1097*260e9a87SYuri Pankov.It Sy "missing eqn box, using \(dq\(dq" 1098*260e9a87SYuri Pankov.Pq eqn 1099*260e9a87SYuri PankovA diacritic mark or a binary operator is found, 1100*260e9a87SYuri Pankovbut there is nothing to the left of it. 1101*260e9a87SYuri PankovAn empty box is inserted. 1102*260e9a87SYuri Pankov.El 1103*260e9a87SYuri Pankov.Ss "Warnings related to bad macro arguments" 1104*260e9a87SYuri Pankov.Bl -ohang 1105*260e9a87SYuri Pankov.It Sy "unterminated quoted argument" 1106*260e9a87SYuri Pankov.Pq roff 1107*260e9a87SYuri PankovMacro arguments can be enclosed in double quote characters 1108*260e9a87SYuri Pankovsuch that space characters and macro names contained in the quoted 1109*260e9a87SYuri Pankovargument need not be escaped. 1110*260e9a87SYuri PankovThe closing quote of the last argument of a macro can be omitted. 1111*260e9a87SYuri PankovHowever, omitting it is not recommended because it makes the code 1112*260e9a87SYuri Pankovharder to read. 1113*260e9a87SYuri Pankov.It Sy "duplicate argument" 1114*260e9a87SYuri Pankov.Pq mdoc 1115*260e9a87SYuri PankovA 1116*260e9a87SYuri Pankov.Ic \&Bd 1117*260e9a87SYuri Pankovor 1118*260e9a87SYuri Pankov.Ic \&Bl 1119*260e9a87SYuri Pankovmacro has more than one 1120*260e9a87SYuri Pankov.Fl compact , 1121*260e9a87SYuri Pankovmore than one 1122*260e9a87SYuri Pankov.Fl offset , 1123*260e9a87SYuri Pankovor more than one 1124*260e9a87SYuri Pankov.Fl width 1125*260e9a87SYuri Pankovargument. 1126*260e9a87SYuri PankovAll but the last instances of these arguments are ignored. 1127*260e9a87SYuri Pankov.It Sy "skipping duplicate argument" 1128*260e9a87SYuri Pankov.Pq mdoc 1129*260e9a87SYuri PankovAn 1130*260e9a87SYuri Pankov.Ic \&An 1131*260e9a87SYuri Pankovmacro has more than one 1132*260e9a87SYuri Pankov.Fl split 1133*260e9a87SYuri Pankovor 1134*260e9a87SYuri Pankov.Fl nosplit 1135*260e9a87SYuri Pankovargument. 1136*260e9a87SYuri PankovAll but the first of these arguments are ignored. 1137*260e9a87SYuri Pankov.It Sy "skipping duplicate display type" 1138*260e9a87SYuri Pankov.Pq mdoc 1139*260e9a87SYuri PankovA 1140*260e9a87SYuri Pankov.Ic \&Bd 1141*260e9a87SYuri Pankovmacro has more than one type argument; the first one is used. 1142*260e9a87SYuri Pankov.It Sy "skipping duplicate list type" 1143*260e9a87SYuri Pankov.Pq mdoc 1144*260e9a87SYuri PankovA 1145*260e9a87SYuri Pankov.Ic \&Bl 1146*260e9a87SYuri Pankovmacro has more than one type argument; the first one is used. 1147*260e9a87SYuri Pankov.It Sy "skipping -width argument" 1148*260e9a87SYuri Pankov.Pq mdoc 1149*260e9a87SYuri PankovA 1150*260e9a87SYuri Pankov.Ic \&Bl 1151*260e9a87SYuri Pankov.Fl column , 1152*260e9a87SYuri Pankov.Fl diag , 1153*260e9a87SYuri Pankov.Fl ohang , 1154*260e9a87SYuri Pankov.Fl inset , 1155*260e9a87SYuri Pankovor 1156*260e9a87SYuri Pankov.Fl item 1157*260e9a87SYuri Pankovlist has a 1158*260e9a87SYuri Pankov.Fl width 1159*260e9a87SYuri Pankovargument. 1160*260e9a87SYuri PankovThat has no effect. 1161*260e9a87SYuri Pankov.It Sy "wrong number of cells" 1162*260e9a87SYuri PankovIn a line of a 1163*260e9a87SYuri Pankov.Ic \&Bl Fl column 1164*260e9a87SYuri Pankovlist, the number of tabs or 1165*260e9a87SYuri Pankov.Ic \&Ta 1166*260e9a87SYuri Pankovmacros is less than the number expected from the list header line 1167*260e9a87SYuri Pankovor exceeds the expected number by more than one. 1168*260e9a87SYuri PankovMissing cells remain empty, and all cells exceeding the number of 1169*260e9a87SYuri Pankovcolumns are joined into one single cell. 1170*260e9a87SYuri Pankov.It Sy "unknown AT&T UNIX version" 1171*260e9a87SYuri Pankov.Pq mdoc 1172*260e9a87SYuri PankovAn 1173*260e9a87SYuri Pankov.Ic \&At 1174*260e9a87SYuri Pankovmacro has an invalid argument. 1175*260e9a87SYuri PankovIt is used verbatim, with 1176*260e9a87SYuri Pankov.Qq "AT&T UNIX " 1177*260e9a87SYuri Pankovprefixed to it. 1178*260e9a87SYuri Pankov.It Sy "comma in function argument" 1179*260e9a87SYuri Pankov.Pq mdoc 1180*260e9a87SYuri PankovAn argument of an 1181*260e9a87SYuri Pankov.Ic \&Fa 1182*260e9a87SYuri Pankovor 1183*260e9a87SYuri Pankov.Ic \&Fn 1184*260e9a87SYuri Pankovmacro contains a comma; it should probably be split into two arguments. 1185*260e9a87SYuri Pankov.It Sy "parenthesis in function name" 1186*260e9a87SYuri Pankov.Pq mdoc 1187*260e9a87SYuri PankovThe first argument of an 1188*260e9a87SYuri Pankov.Ic \&Fc 1189*260e9a87SYuri Pankovor 1190*260e9a87SYuri Pankov.Ic \&Fn 1191*260e9a87SYuri Pankovmacro contains an opening or closing parenthesis; that's probably wrong, 1192*260e9a87SYuri Pankovparentheses are added automatically. 1193*260e9a87SYuri Pankov.It Sy "invalid content in Rs block" 1194*260e9a87SYuri Pankov.Pq mdoc 1195*260e9a87SYuri PankovAn 1196*260e9a87SYuri Pankov.Ic \&Rs 1197*260e9a87SYuri Pankovblock contains plain text or non-% macros. 1198*260e9a87SYuri PankovThe bogus content is left in the syntax tree. 1199*260e9a87SYuri PankovFormatting may be poor. 1200*260e9a87SYuri Pankov.It Sy "invalid Boolean argument" 1201*260e9a87SYuri Pankov.Pq mdoc 1202*260e9a87SYuri PankovAn 1203*260e9a87SYuri Pankov.Ic \&Sm 1204*260e9a87SYuri Pankovmacro has an argument other than 1205*260e9a87SYuri Pankov.Cm on 1206*260e9a87SYuri Pankovor 1207*260e9a87SYuri Pankov.Cm off . 1208*260e9a87SYuri PankovThe invalid argument is moved out of the macro, which leaves the macro 1209*260e9a87SYuri Pankovempty, causing it to toggle the spacing mode. 1210*260e9a87SYuri Pankov.It Sy "unknown font, skipping request" 1211*260e9a87SYuri Pankov.Pq man , tbl 1212*260e9a87SYuri PankovA 1213*260e9a87SYuri Pankov.Xr mandoc_roff 5 1214*260e9a87SYuri Pankov.Ic \&ft 1215*260e9a87SYuri Pankovrequest or a 1216*260e9a87SYuri Pankov.Xr tbl 5 1217*260e9a87SYuri Pankov.Ic \&f 1218*260e9a87SYuri Pankovlayout modifier has an unknown 1219*260e9a87SYuri Pankov.Ar font 1220*260e9a87SYuri Pankovargument. 1221*260e9a87SYuri Pankov.It Sy "odd number of characters in request" 1222*260e9a87SYuri Pankov.Pq roff 1223*260e9a87SYuri PankovA 1224*260e9a87SYuri Pankov.Ic \&tr 1225*260e9a87SYuri Pankovrequest contains an odd number of characters. 1226*260e9a87SYuri PankovThe last character is mapped to the blank character. 1227*260e9a87SYuri Pankov.El 1228*260e9a87SYuri Pankov.Ss "Warnings related to plain text" 1229*260e9a87SYuri Pankov.Bl -ohang 1230*260e9a87SYuri Pankov.It Sy "blank line in fill mode, using .sp" 1231*260e9a87SYuri Pankov.Pq mdoc 1232*260e9a87SYuri PankovThe meaning of blank input lines is only well-defined in non-fill mode: 1233*260e9a87SYuri PankovIn fill mode, line breaks of text input lines are not supposed to be 1234*260e9a87SYuri Pankovsignificant. 1235*260e9a87SYuri PankovHowever, for compatibility with groff, blank lines in fill mode 1236*260e9a87SYuri Pankovare replaced with 1237*260e9a87SYuri Pankov.Ic \&sp 1238*260e9a87SYuri Pankovrequests. 1239*260e9a87SYuri Pankov.It Sy "tab in filled text" 1240*260e9a87SYuri Pankov.Pq mdoc , man 1241*260e9a87SYuri PankovThe meaning of tab characters is only well-defined in non-fill mode: 1242*260e9a87SYuri PankovIn fill mode, whitespace is not supposed to be significant 1243*260e9a87SYuri Pankovon text input lines. 1244*260e9a87SYuri PankovAs an implementation dependent choice, tab characters on text lines 1245*260e9a87SYuri Pankovare passed through to the formatters in any case. 1246*260e9a87SYuri PankovGiven that the text before the tab character will be filled, 1247*260e9a87SYuri Pankovit is hard to predict which tab stop position the tab will advance to. 1248*260e9a87SYuri Pankov.It Sy "whitespace at end of input line" 1249*260e9a87SYuri Pankov.Pq mdoc , man , roff 1250*260e9a87SYuri PankovWhitespace at the end of input lines is almost never semantically 1251*260e9a87SYuri Pankovsignificant \(em but in the odd case where it might be, it is 1252*260e9a87SYuri Pankovextremely confusing when reviewing and maintaining documents. 1253*260e9a87SYuri Pankov.It Sy "bad comment style" 1254*260e9a87SYuri Pankov.Pq roff 1255*260e9a87SYuri PankovComment lines start with a dot, a backslash, and a double-quote character. 1256*260e9a87SYuri PankovThe 1257*260e9a87SYuri Pankov.Nm 1258*260e9a87SYuri Pankovutility treats the line as a comment line even without the backslash, 1259*260e9a87SYuri Pankovbut leaving out the backslash might not be portable. 1260*260e9a87SYuri Pankov.It Sy "invalid escape sequence" 1261*260e9a87SYuri Pankov.Pq roff 1262*260e9a87SYuri PankovAn escape sequence has an invalid opening argument delimiter, lacks the 1263*260e9a87SYuri Pankovclosing argument delimiter, or the argument has too few characters. 1264*260e9a87SYuri PankovIf the argument is incomplete, 1265*260e9a87SYuri Pankov.Ic \e* 1266*260e9a87SYuri Pankovand 1267*260e9a87SYuri Pankov.Ic \en 1268*260e9a87SYuri Pankovexpand to an empty string, 1269*260e9a87SYuri Pankov.Ic \eB 1270*260e9a87SYuri Pankovto the digit 1271*260e9a87SYuri Pankov.Sq 0 , 1272*260e9a87SYuri Pankovand 1273*260e9a87SYuri Pankov.Ic \ew 1274*260e9a87SYuri Pankovto the length of the incomplete argument. 1275*260e9a87SYuri PankovAll other invalid escape sequences are ignored. 1276*260e9a87SYuri Pankov.It Sy "undefined string, using \(dq\(dq" 1277*260e9a87SYuri Pankov.Pq roff 1278*260e9a87SYuri PankovIf a string is used without being defined before, 1279*260e9a87SYuri Pankovits value is implicitly set to the empty string. 1280*260e9a87SYuri PankovHowever, defining strings explicitly before use 1281*260e9a87SYuri Pankovkeeps the code more readable. 1282*260e9a87SYuri Pankov.El 1283*260e9a87SYuri Pankov.Ss "Warnings related to tables" 1284*260e9a87SYuri Pankov.Bl -ohang 1285*260e9a87SYuri Pankov.It Sy "tbl line starts with span" 1286*260e9a87SYuri Pankov.Pq tbl 1287*260e9a87SYuri PankovThe first cell in a table layout line is a horizontal span 1288*260e9a87SYuri Pankov.Pq Sq Cm s . 1289*260e9a87SYuri PankovData provided for this cell is ignored, and nothing is printed in the cell. 1290*260e9a87SYuri Pankov.It Sy "tbl column starts with span" 1291*260e9a87SYuri Pankov.Pq tbl 1292*260e9a87SYuri PankovThe first line of a table layout specification 1293*260e9a87SYuri Pankovrequests a vertical span 1294*260e9a87SYuri Pankov.Pq Sq Cm ^ . 1295*260e9a87SYuri PankovData provided for this cell is ignored, and nothing is printed in the cell. 1296*260e9a87SYuri Pankov.It Sy "skipping vertical bar in tbl layout" 1297*260e9a87SYuri Pankov.Pq tbl 1298*260e9a87SYuri PankovA table layout specification contains more than two consecutive vertical bars. 1299*260e9a87SYuri PankovA double bar is printed, all additional bars are discarded. 1300*260e9a87SYuri Pankov.El 1301*260e9a87SYuri Pankov.Ss "Errors related to tables" 1302*260e9a87SYuri Pankov.Bl -ohang 1303*260e9a87SYuri Pankov.It Sy "non-alphabetic character in tbl options" 1304*260e9a87SYuri Pankov.Pq tbl 1305*260e9a87SYuri PankovThe table options line contains a character other than a letter, 1306*260e9a87SYuri Pankovblank, or comma where the beginning of an option name is expected. 1307*260e9a87SYuri PankovThe character is ignored. 1308*260e9a87SYuri Pankov.It Sy "skipping unknown tbl option" 1309*260e9a87SYuri Pankov.Pq tbl 1310*260e9a87SYuri PankovThe table options line contains a string of letters that does not 1311*260e9a87SYuri Pankovmatch any known option name. 1312*260e9a87SYuri PankovThe word is ignored. 1313*260e9a87SYuri Pankov.It Sy "missing tbl option argument" 1314*260e9a87SYuri Pankov.Pq tbl 1315*260e9a87SYuri PankovA table option that requires an argument is not followed by an 1316*260e9a87SYuri Pankovopening parenthesis, or the opening parenthesis is immediately 1317*260e9a87SYuri Pankovfollowed by a closing parenthesis. 1318*260e9a87SYuri PankovThe option is ignored. 1319*260e9a87SYuri Pankov.It Sy "wrong tbl option argument size" 1320*260e9a87SYuri Pankov.Pq tbl 1321*260e9a87SYuri PankovA table option argument contains an invalid number of characters. 1322*260e9a87SYuri PankovBoth the option and the argument are ignored. 1323*260e9a87SYuri Pankov.It Sy "empty tbl layout" 1324*260e9a87SYuri Pankov.Pq tbl 1325*260e9a87SYuri PankovA table layout specification is completely empty, 1326*260e9a87SYuri Pankovspecifying zero lines and zero columns. 1327*260e9a87SYuri PankovAs a fallback, a single left-justified column is used. 1328*260e9a87SYuri Pankov.It Sy "invalid character in tbl layout" 1329*260e9a87SYuri Pankov.Pq tbl 1330*260e9a87SYuri PankovA table layout specification contains a character that can neither 1331*260e9a87SYuri Pankovbe interpreted as a layout key character nor as a layout modifier, 1332*260e9a87SYuri Pankovor a modifier precedes the first key. 1333*260e9a87SYuri PankovThe invalid character is discarded. 1334*260e9a87SYuri Pankov.It Sy "unmatched parenthesis in tbl layout" 1335*260e9a87SYuri Pankov.Pq tbl 1336*260e9a87SYuri PankovA table layout specification contains an opening parenthesis, 1337*260e9a87SYuri Pankovbut no matching closing parenthesis. 1338*260e9a87SYuri PankovThe rest of the input line, starting from the parenthesis, has no effect. 1339*260e9a87SYuri Pankov.It Sy "tbl without any data cells" 1340*260e9a87SYuri Pankov.Pq tbl 1341*260e9a87SYuri PankovA table does not contain any data cells. 1342*260e9a87SYuri PankovIt will probably produce no output. 1343*260e9a87SYuri Pankov.It Sy "ignoring data in spanned tbl cell" 1344*260e9a87SYuri Pankov.Pq tbl 1345*260e9a87SYuri PankovA table cell is marked as a horizontal span 1346*260e9a87SYuri Pankov.Pq Sq Cm s 1347*260e9a87SYuri Pankovor vertical span 1348*260e9a87SYuri Pankov.Pq Sq Cm ^ 1349*260e9a87SYuri Pankovin the table layout, but it contains data. 1350*260e9a87SYuri PankovThe data is ignored. 1351*260e9a87SYuri Pankov.It Sy "ignoring extra tbl data cells" 1352*260e9a87SYuri Pankov.Pq tbl 1353*260e9a87SYuri PankovA data line contains more cells than the corresponding layout line. 1354*260e9a87SYuri PankovThe data in the extra cells is ignored. 1355*260e9a87SYuri Pankov.It Sy "data block open at end of tbl" 1356*260e9a87SYuri Pankov.Pq tbl 1357*260e9a87SYuri PankovA data block is opened with 1358*260e9a87SYuri Pankov.Cm T{ , 1359*260e9a87SYuri Pankovbut never closed with a matching 1360*260e9a87SYuri Pankov.Cm T} . 1361*260e9a87SYuri PankovThe remaining data lines of the table are all put into one cell, 1362*260e9a87SYuri Pankovand any remaining cells stay empty. 1363*260e9a87SYuri Pankov.El 1364*260e9a87SYuri Pankov.Ss "Errors related to roff, mdoc, and man code" 1365*260e9a87SYuri Pankov.Bl -ohang 1366*260e9a87SYuri Pankov.It Sy "input stack limit exceeded, infinite loop?" 1367*260e9a87SYuri Pankov.Pq roff 1368*260e9a87SYuri PankovExplicit recursion limits are implemented for the following features, 1369*260e9a87SYuri Pankovin order to prevent infinite loops: 1370*260e9a87SYuri Pankov.Bl -dash -compact 1371*260e9a87SYuri Pankov.It 1372*260e9a87SYuri Pankovexpansion of nested escape sequences 1373*260e9a87SYuri Pankovincluding expansion of strings and number registers, 1374*260e9a87SYuri Pankov.It 1375*260e9a87SYuri Pankovexpansion of nested user-defined macros, 1376*260e9a87SYuri Pankov.It 1377*260e9a87SYuri Pankovand 1378*260e9a87SYuri Pankov.Ic \&so 1379*260e9a87SYuri Pankovfile inclusion. 1380*260e9a87SYuri Pankov.El 1381*260e9a87SYuri PankovWhen a limit is hit, the output is incorrect, typically losing 1382*260e9a87SYuri Pankovsome content, but the parser can continue. 1383*260e9a87SYuri Pankov.It Sy "skipping bad character" 1384*260e9a87SYuri Pankov.Pq mdoc , man , roff 1385*260e9a87SYuri PankovThe input file contains a byte that is not a printable 1386*260e9a87SYuri Pankov.Xr ascii 5 1387*260e9a87SYuri Pankovcharacter. 1388*260e9a87SYuri PankovThe message mentions the character number. 1389*260e9a87SYuri PankovThe offending byte is replaced with a question mark 1390*260e9a87SYuri Pankov.Pq Sq \&? . 1391*260e9a87SYuri PankovConsider editing the input file to replace the byte with an ASCII 1392*260e9a87SYuri Pankovtransliteration of the intended character. 1393*260e9a87SYuri Pankov.It Sy "skipping unknown macro" 1394*260e9a87SYuri Pankov.Pq mdoc , man , roff 1395*260e9a87SYuri PankovThe first identifier on a request or macro line is neither recognized as a 1396*260e9a87SYuri Pankov.Xr mandoc_roff 5 1397*260e9a87SYuri Pankovrequest, nor as a user-defined macro, nor, respectively, as an 1398*260e9a87SYuri Pankov.Xr mdoc 5 1399*260e9a87SYuri Pankovor 1400*260e9a87SYuri Pankov.Xr man 5 1401*260e9a87SYuri Pankovmacro. 1402*260e9a87SYuri PankovIt may be mistyped or unsupported. 1403*260e9a87SYuri PankovThe request or macro is discarded including its arguments. 1404*260e9a87SYuri Pankov.It Sy "skipping insecure request" 1405*260e9a87SYuri Pankov.Pq roff 1406*260e9a87SYuri PankovAn input file attempted to run a shell command 1407*260e9a87SYuri Pankovor to read or write an external file. 1408*260e9a87SYuri PankovSuch attempts are denied for security reasons. 1409*260e9a87SYuri Pankov.It Sy "skipping item outside list" 1410*260e9a87SYuri Pankov.Pq mdoc , eqn 1411*260e9a87SYuri PankovAn 1412*260e9a87SYuri Pankov.Ic \&It 1413*260e9a87SYuri Pankovmacro occurs outside any 1414*260e9a87SYuri Pankov.Ic \&Bl 1415*260e9a87SYuri Pankovlist, or an 1416*260e9a87SYuri Pankov.Xr eqn 5 1417*260e9a87SYuri Pankov.Ic above 1418*260e9a87SYuri Pankovdelimiter occurs outside any pile. 1419*260e9a87SYuri PankovIt is discarded including its arguments. 1420*260e9a87SYuri Pankov.It Sy "skipping column outside column list" 1421*260e9a87SYuri Pankov.Pq mdoc 1422*260e9a87SYuri PankovA 1423*260e9a87SYuri Pankov.Ic \&Ta 1424*260e9a87SYuri Pankovmacro occurs outside any 1425*260e9a87SYuri Pankov.Ic \&Bl Fl column 1426*260e9a87SYuri Pankovblock. 1427*260e9a87SYuri PankovIt is discarded including its arguments. 1428*260e9a87SYuri Pankov.It Sy "skipping end of block that is not open" 1429*260e9a87SYuri Pankov.Pq mdoc , man , eqn , tbl , roff 1430*260e9a87SYuri PankovVarious syntax elements can only be used to explicitly close blocks 1431*260e9a87SYuri Pankovthat have previously been opened. 1432*260e9a87SYuri PankovAn 1433*260e9a87SYuri Pankov.Xr mdoc 5 1434*260e9a87SYuri Pankovblock closing macro, a 1435*260e9a87SYuri Pankov.Xr man 5 1436*260e9a87SYuri Pankov.Ic \&RE 1437*260e9a87SYuri Pankovor 1438*260e9a87SYuri Pankov.Ic \&UE 1439*260e9a87SYuri Pankovmacro, an 1440*260e9a87SYuri Pankov.Xr eqn 5 1441*260e9a87SYuri Pankovright delimiter or closing brace, or the end of an equation, table, or 1442*260e9a87SYuri Pankov.Xr mandoc_roff 5 1443*260e9a87SYuri Pankovconditional request is encountered but no matching block is open. 1444*260e9a87SYuri PankovThe offending request or macro is discarded. 1445*260e9a87SYuri Pankov.It Sy "fewer RS blocks open, skipping" 1446*260e9a87SYuri Pankov.Pq man 1447*260e9a87SYuri PankovThe 1448*260e9a87SYuri Pankov.Ic \&RE 1449*260e9a87SYuri Pankovmacro is invoked with an argument, but less than the specified number of 1450*260e9a87SYuri Pankov.Ic \&RS 1451*260e9a87SYuri Pankovblocks is open. 1452*260e9a87SYuri PankovThe 1453*260e9a87SYuri Pankov.Ic \&RE 1454*260e9a87SYuri Pankovmacro is discarded. 1455*260e9a87SYuri Pankov.It Sy "inserting missing end of block" 1456*260e9a87SYuri Pankov.Pq mdoc , tbl 1457*260e9a87SYuri PankovVarious 1458*260e9a87SYuri Pankov.Xr mdoc 5 1459*260e9a87SYuri Pankovmacros as well as tables require explicit closing by dedicated macros. 1460*260e9a87SYuri PankovA block that doesn't support bad nesting 1461*260e9a87SYuri Pankovends before all of its children are properly closed. 1462*260e9a87SYuri PankovThe open child nodes are closed implicitly. 1463*260e9a87SYuri Pankov.It Sy "appending missing end of block" 1464*260e9a87SYuri Pankov.Pq mdoc , man , eqn , tbl , roff 1465*260e9a87SYuri PankovAt the end of the document, an explicit 1466*260e9a87SYuri Pankov.Xr mdoc 5 1467*260e9a87SYuri Pankovblock, a 1468*260e9a87SYuri Pankov.Xr man 5 1469*260e9a87SYuri Pankovnext-line scope or 1470*260e9a87SYuri Pankov.Ic \&RS 1471*260e9a87SYuri Pankovor 1472*260e9a87SYuri Pankov.Ic \&UR 1473*260e9a87SYuri Pankovblock, an equation, table, or 1474*260e9a87SYuri Pankov.Xr mandoc_roff 5 1475*260e9a87SYuri Pankovconditional or ignore block is still open. 1476*260e9a87SYuri PankovThe open block is closed implicitly. 1477*260e9a87SYuri Pankov.It Sy "escaped character not allowed in a name" 1478*260e9a87SYuri Pankov.Pq roff 1479*260e9a87SYuri PankovMacro, string and register identifiers consist of printable, 1480*260e9a87SYuri Pankovnon-whitespace ASCII characters. 1481*260e9a87SYuri PankovEscape sequences and characters and strings expressed in terms of them 1482*260e9a87SYuri Pankovcannot form part of a name. 1483*260e9a87SYuri PankovThe first argument of an 1484*260e9a87SYuri Pankov.Ic \&am , 1485*260e9a87SYuri Pankov.Ic \&as , 1486*260e9a87SYuri Pankov.Ic \&de , 1487*260e9a87SYuri Pankov.Ic \&ds , 1488*260e9a87SYuri Pankov.Ic \&nr , 1489*260e9a87SYuri Pankovor 1490*260e9a87SYuri Pankov.Ic \&rr 1491*260e9a87SYuri Pankovrequest, or any argument of an 1492*260e9a87SYuri Pankov.Ic \&rm 1493*260e9a87SYuri Pankovrequest, or the name of a request or user defined macro being called, 1494*260e9a87SYuri Pankovis terminated by an escape sequence. 1495*260e9a87SYuri PankovIn the cases of 1496*260e9a87SYuri Pankov.Ic \&as , 1497*260e9a87SYuri Pankov.Ic \&ds , 1498*260e9a87SYuri Pankovand 1499*260e9a87SYuri Pankov.Ic \&nr , 1500*260e9a87SYuri Pankovthe request has no effect at all. 1501*260e9a87SYuri PankovIn the cases of 1502*260e9a87SYuri Pankov.Ic \&am , 1503*260e9a87SYuri Pankov.Ic \&de , 1504*260e9a87SYuri Pankov.Ic \&rr , 1505*260e9a87SYuri Pankovand 1506*260e9a87SYuri Pankov.Ic \&rm , 1507*260e9a87SYuri Pankovwhat was parsed up to this point is used as the arguments to the request, 1508*260e9a87SYuri Pankovand the rest of the input line is discarded including the escape sequence. 1509*260e9a87SYuri PankovWhen parsing for a request or a user-defined macro name to be called, 1510*260e9a87SYuri Pankovonly the escape sequence is discarded. 1511*260e9a87SYuri PankovThe characters preceding it are used as the request or macro name, 1512*260e9a87SYuri Pankovthe characters following it are used as the arguments to the request or macro. 1513*260e9a87SYuri Pankov.It Sy "NOT IMPLEMENTED: Bd -file" 1514*260e9a87SYuri Pankov.Pq mdoc 1515*260e9a87SYuri PankovFor security reasons, the 1516*260e9a87SYuri Pankov.Ic \&Bd 1517*260e9a87SYuri Pankovmacro does not support the 1518*260e9a87SYuri Pankov.Fl file 1519*260e9a87SYuri Pankovargument. 1520*260e9a87SYuri PankovBy requesting the inclusion of a sensitive file, a malicious document 1521*260e9a87SYuri Pankovmight otherwise trick a privileged user into inadvertently displaying 1522*260e9a87SYuri Pankovthe file on the screen, revealing the file content to bystanders. 1523*260e9a87SYuri PankovThe argument is ignored including the file name following it. 1524*260e9a87SYuri Pankov.It Sy "missing list type, using -item" 1525*260e9a87SYuri Pankov.Pq mdoc 1526*260e9a87SYuri PankovA 1527*260e9a87SYuri Pankov.Ic \&Bl 1528*260e9a87SYuri Pankovmacro fails to specify the list type. 1529*260e9a87SYuri Pankov.It Sy "missing manual name, using \(dq\(dq" 1530*260e9a87SYuri Pankov.Pq mdoc 1531*260e9a87SYuri PankovThe first call to 1532*260e9a87SYuri Pankov.Ic \&Nm 1533*260e9a87SYuri Pankovlacks the required argument. 1534*260e9a87SYuri Pankov.It Sy "uname(3) system call failed, using UNKNOWN" 1535*260e9a87SYuri Pankov.Pq mdoc 1536*260e9a87SYuri PankovThe 1537*260e9a87SYuri Pankov.Ic \&Os 1538*260e9a87SYuri Pankovmacro is called without arguments, and the 1539*260e9a87SYuri Pankov.Xr uname 3 1540*260e9a87SYuri Pankovsystem call failed. 1541*260e9a87SYuri PankovAs a workaround, 1542*260e9a87SYuri Pankov.Nm 1543*260e9a87SYuri Pankovcan be compiled with 1544*260e9a87SYuri Pankov.Sm off 1545*260e9a87SYuri Pankov.Fl D Cm OSNAME=\(dq\e\(dq Ar string Cm \e\(dq\(dq . 1546*260e9a87SYuri Pankov.Sm on 1547*260e9a87SYuri Pankov.It Sy "unknown standard specifier" 1548*260e9a87SYuri Pankov.Pq mdoc 1549*260e9a87SYuri PankovAn 1550*260e9a87SYuri Pankov.Ic \&St 1551*260e9a87SYuri Pankovmacro has an unknown argument and is discarded. 1552*260e9a87SYuri Pankov.It Sy "skipping request without numeric argument" 1553*260e9a87SYuri Pankov.Pq roff , eqn 1554*260e9a87SYuri PankovAn 1555*260e9a87SYuri Pankov.Ic \&it 1556*260e9a87SYuri Pankovrequest or an 1557*260e9a87SYuri Pankov.Xr eqn 5 1558*260e9a87SYuri Pankov.Ic \&size 1559*260e9a87SYuri Pankovor 1560*260e9a87SYuri Pankov.Ic \&gsize 1561*260e9a87SYuri Pankovstatement has a non-numeric or negative argument or no argument at all. 1562*260e9a87SYuri PankovThe invalid request or statement is ignored. 1563*260e9a87SYuri Pankov.It Sy "NOT IMPLEMENTED: .so with absolute path or \(dq..\(dq" 1564*260e9a87SYuri Pankov.Pq roff 1565*260e9a87SYuri PankovFor security reasons, 1566*260e9a87SYuri Pankov.Nm 1567*260e9a87SYuri Pankovallows 1568*260e9a87SYuri Pankov.Ic \&so 1569*260e9a87SYuri Pankovfile inclusion requests only with relative paths 1570*260e9a87SYuri Pankovand only without ascending to any parent directory. 1571*260e9a87SYuri PankovBy requesting the inclusion of a sensitive file, a malicious document 1572*260e9a87SYuri Pankovmight otherwise trick a privileged user into inadvertently displaying 1573*260e9a87SYuri Pankovthe file on the screen, revealing the file content to bystanders. 1574*260e9a87SYuri Pankov.Nm 1575*260e9a87SYuri Pankovonly shows the path as it appears behind 1576*260e9a87SYuri Pankov.Ic \&so . 1577*260e9a87SYuri Pankov.It Sy ".so request failed" 1578*260e9a87SYuri Pankov.Pq roff 1579*260e9a87SYuri PankovServicing a 1580*260e9a87SYuri Pankov.Ic \&so 1581*260e9a87SYuri Pankovrequest requires reading an external file, but the file could not be 1582*260e9a87SYuri Pankovopened. 1583*260e9a87SYuri Pankov.Nm 1584*260e9a87SYuri Pankovonly shows the path as it appears behind 1585*260e9a87SYuri Pankov.Ic \&so . 1586*260e9a87SYuri Pankov.It Sy "skipping all arguments" 1587*260e9a87SYuri Pankov.Pq mdoc , man , eqn , roff 1588*260e9a87SYuri PankovAn 1589*260e9a87SYuri Pankov.Xr mdoc 5 1590*260e9a87SYuri Pankov.Ic \&Bt , 1591*260e9a87SYuri Pankov.Ic \&Ed , 1592*260e9a87SYuri Pankov.Ic \&Ef , 1593*260e9a87SYuri Pankov.Ic \&Ek , 1594*260e9a87SYuri Pankov.Ic \&El , 1595*260e9a87SYuri Pankov.Ic \&Lp , 1596*260e9a87SYuri Pankov.Ic \&Pp , 1597*260e9a87SYuri Pankov.Ic \&Re , 1598*260e9a87SYuri Pankov.Ic \&Rs , 1599*260e9a87SYuri Pankovor 1600*260e9a87SYuri Pankov.Ic \&Ud 1601*260e9a87SYuri Pankovmacro, an 1602*260e9a87SYuri Pankov.Ic \&It 1603*260e9a87SYuri Pankovmacro in a list that don't support item heads, a 1604*260e9a87SYuri Pankov.Xr man 5 1605*260e9a87SYuri Pankov.Ic \&LP , 1606*260e9a87SYuri Pankov.Ic \&P , 1607*260e9a87SYuri Pankovor 1608*260e9a87SYuri Pankov.Ic \&PP 1609*260e9a87SYuri Pankovmacro, an 1610*260e9a87SYuri Pankov.Xr eqn 5 1611*260e9a87SYuri Pankov.Ic \&EQ 1612*260e9a87SYuri Pankovor 1613*260e9a87SYuri Pankov.Ic \&EN 1614*260e9a87SYuri Pankovmacro, or a 1615*260e9a87SYuri Pankov.Xr mandoc_roff 5 1616*260e9a87SYuri Pankov.Ic \&br , 1617*260e9a87SYuri Pankov.Ic \&fi , 1618*260e9a87SYuri Pankovor 1619*260e9a87SYuri Pankov.Ic \&nf 1620*260e9a87SYuri Pankovrequest or 1621*260e9a87SYuri Pankov.Sq \&.. 1622*260e9a87SYuri Pankovblock closing request is invoked with at least one argument. 1623*260e9a87SYuri PankovAll arguments are ignored. 1624*260e9a87SYuri Pankov.It Sy "skipping excess arguments" 1625*260e9a87SYuri Pankov.Pq mdoc , man , roff 1626*260e9a87SYuri PankovA macro or request is invoked with too many arguments: 1627*260e9a87SYuri Pankov.Bl -dash -offset 2n -width 2n -compact 1628*260e9a87SYuri Pankov.It 1629*260e9a87SYuri Pankov.Ic \&Fo , 1630*260e9a87SYuri Pankov.Ic \&PD , 1631*260e9a87SYuri Pankov.Ic \&RS , 1632*260e9a87SYuri Pankov.Ic \&UR , 1633*260e9a87SYuri Pankov.Ic \&ft , 1634*260e9a87SYuri Pankovor 1635*260e9a87SYuri Pankov.Ic \&sp 1636*260e9a87SYuri Pankovwith more than one argument 1637*260e9a87SYuri Pankov.It 1638*260e9a87SYuri Pankov.Ic \&An 1639*260e9a87SYuri Pankovwith another argument after 1640*260e9a87SYuri Pankov.Fl split 1641*260e9a87SYuri Pankovor 1642*260e9a87SYuri Pankov.Fl nosplit 1643*260e9a87SYuri Pankov.It 1644*260e9a87SYuri Pankov.Ic \&RE 1645*260e9a87SYuri Pankovwith more than one argument or with a non-integer argument 1646*260e9a87SYuri Pankov.It 1647*260e9a87SYuri Pankov.Ic \&OP 1648*260e9a87SYuri Pankovor a request of the 1649*260e9a87SYuri Pankov.Ic \&de 1650*260e9a87SYuri Pankovfamily with more than two arguments 1651*260e9a87SYuri Pankov.It 1652*260e9a87SYuri Pankov.Ic \&Dt 1653*260e9a87SYuri Pankovwith more than three arguments 1654*260e9a87SYuri Pankov.It 1655*260e9a87SYuri Pankov.Ic \&TH 1656*260e9a87SYuri Pankovwith more than five arguments 1657*260e9a87SYuri Pankov.It 1658*260e9a87SYuri Pankov.Ic \&Bd , 1659*260e9a87SYuri Pankov.Ic \&Bk , 1660*260e9a87SYuri Pankovor 1661*260e9a87SYuri Pankov.Ic \&Bl 1662*260e9a87SYuri Pankovwith invalid arguments 1663*260e9a87SYuri Pankov.El 1664*260e9a87SYuri PankovThe excess arguments are ignored. 1665*260e9a87SYuri Pankov.El 1666*260e9a87SYuri Pankov.Ss Unsupported features 1667*260e9a87SYuri Pankov.Bl -ohang 1668*260e9a87SYuri Pankov.It Sy "input too large" 1669*260e9a87SYuri Pankov.Pq mdoc , man 1670*260e9a87SYuri PankovCurrently, 1671*260e9a87SYuri Pankov.Nm 1672*260e9a87SYuri Pankovcannot handle input files larger than its arbitrary size limit 1673*260e9a87SYuri Pankovof 2^31 bytes (2 Gigabytes). 1674*260e9a87SYuri PankovSince useful manuals are always small, this is not a problem in practice. 1675*260e9a87SYuri PankovParsing is aborted as soon as the condition is detected. 1676*260e9a87SYuri Pankov.It Sy "unsupported control character" 1677*260e9a87SYuri Pankov.Pq roff 1678*260e9a87SYuri PankovAn ASCII control character supported by other 1679*260e9a87SYuri Pankov.Xr mandoc_roff 5 1680*260e9a87SYuri Pankovimplementations but not by 1681*260e9a87SYuri Pankov.Nm 1682*260e9a87SYuri Pankovwas found in an input file. 1683*260e9a87SYuri PankovIt is replaced by a question mark. 1684*260e9a87SYuri Pankov.It Sy "unsupported roff request" 1685*260e9a87SYuri Pankov.Pq roff 1686*260e9a87SYuri PankovAn input file contains a 1687*260e9a87SYuri Pankov.Xr mandoc_roff 5 1688*260e9a87SYuri Pankovrequest supported by GNU troff or Heirloom troff but not by 1689*260e9a87SYuri Pankov.Nm , 1690*260e9a87SYuri Pankovand it is likely that this will cause information loss 1691*260e9a87SYuri Pankovor considerable misformatting. 1692*260e9a87SYuri Pankov.It Sy "eqn delim option in tbl" 1693*260e9a87SYuri Pankov.Pq eqn , tbl 1694*260e9a87SYuri PankovThe options line of a table defines equation delimiters. 1695*260e9a87SYuri PankovAny equation source code contained in the table will be printed unformatted. 1696*260e9a87SYuri Pankov.It Sy "unsupported table layout modifier" 1697*260e9a87SYuri Pankov.Pq tbl 1698*260e9a87SYuri PankovA table layout specification contains an 1699*260e9a87SYuri Pankov.Sq Cm m 1700*260e9a87SYuri Pankovmodifier. 1701*260e9a87SYuri PankovThe modifier is discarded. 1702*260e9a87SYuri Pankov.It Sy "ignoring macro in table" 1703*260e9a87SYuri Pankov.Pq tbl , mdoc , man 1704*260e9a87SYuri PankovA table contains an invocation of an 1705*260e9a87SYuri Pankov.Xr mdoc 5 1706*260e9a87SYuri Pankovor 1707*260e9a87SYuri Pankov.Xr man 5 1708*260e9a87SYuri Pankovmacro or of an undefined macro. 1709*260e9a87SYuri PankovThe macro is ignored, and its arguments are handled 1710*260e9a87SYuri Pankovas if they were a text line. 1711*260e9a87SYuri Pankov.El 171295c635efSGarrett D'Amore.Sh SEE ALSO 171395c635efSGarrett D'Amore.Xr eqn 5 , 171495c635efSGarrett D'Amore.Xr man 5 , 171595c635efSGarrett D'Amore.Xr mandoc_char 5 , 171695c635efSGarrett D'Amore.Xr mandoc_roff 5 , 1717*260e9a87SYuri Pankov.Xr mdoc 5 , 171895c635efSGarrett D'Amore.Xr tbl 5 171995c635efSGarrett D'Amore.Sh AUTHORS 172095c635efSGarrett D'AmoreThe 172195c635efSGarrett D'Amore.Nm 172295c635efSGarrett D'Amoreutility was written by 1723*260e9a87SYuri Pankov.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 1724*260e9a87SYuri Pankovand is maintained by 1725*260e9a87SYuri Pankov.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 1726*260e9a87SYuri Pankov.Sh BUGS 172795c635efSGarrett D'AmoreIn 1728*260e9a87SYuri Pankov.Fl T Ns Cm html , 172995c635efSGarrett D'Amorethe maximum size of an element attribute is determined by 173095c635efSGarrett D'Amore.Dv BUFSIZ , 173195c635efSGarrett D'Amorewhich is usually 1024 bytes. 173295c635efSGarrett D'AmoreBe aware of this when setting long link 173395c635efSGarrett D'Amoreformats such as 173495c635efSGarrett D'Amore.Fl O Ns Cm style Ns = Ns Ar really/long/link . 1735