1*99db7d0eSSascha Wildner.\" $OpenBSD: mandoc.1,v 1.166 2020/02/15 15:28:01 schwarze Exp $ 280387638SSascha Wildner.\" 3*99db7d0eSSascha Wildner.\" Copyright (c) 2012, 2014-2021 Ingo Schwarze <schwarze@openbsd.org> 436342e81SSascha Wildner.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> 580387638SSascha Wildner.\" 680387638SSascha Wildner.\" Permission to use, copy, modify, and distribute this software for any 780387638SSascha Wildner.\" purpose with or without fee is hereby granted, provided that the above 880387638SSascha Wildner.\" copyright notice and this permission notice appear in all copies. 980387638SSascha Wildner.\" 1080387638SSascha Wildner.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1180387638SSascha Wildner.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1280387638SSascha Wildner.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1380387638SSascha Wildner.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1480387638SSascha Wildner.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1580387638SSascha Wildner.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1680387638SSascha Wildner.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1780387638SSascha Wildner.\" 18*99db7d0eSSascha Wildner.Dd $Mdocdate: August 14 2021 $ 1980387638SSascha Wildner.Dt MANDOC 1 2080387638SSascha Wildner.Os 2180387638SSascha Wildner.Sh NAME 2280387638SSascha Wildner.Nm mandoc 2354ba9607SSascha Wildner.Nd format manual pages 2480387638SSascha Wildner.Sh SYNOPSIS 2580387638SSascha Wildner.Nm mandoc 2654ba9607SSascha Wildner.Op Fl ac 2754ba9607SSascha Wildner.Op Fl I Cm os Ns = Ns Ar name 2854ba9607SSascha Wildner.Op Fl K Ar encoding 2954ba9607SSascha Wildner.Op Fl mdoc | man 3054ba9607SSascha Wildner.Op Fl O Ar options 3154ba9607SSascha Wildner.Op Fl T Ar output 3254ba9607SSascha Wildner.Op Fl W Ar level 3336342e81SSascha Wildner.Op Ar 3480387638SSascha Wildner.Sh DESCRIPTION 3580387638SSascha WildnerThe 3680387638SSascha Wildner.Nm 3754ba9607SSascha Wildnerutility formats manual pages for display. 3836342e81SSascha Wildner.Pp 3936342e81SSascha WildnerBy default, 4036342e81SSascha Wildner.Nm 4136342e81SSascha Wildnerreads 4236342e81SSascha Wildner.Xr mdoc 7 4336342e81SSascha Wildneror 4436342e81SSascha Wildner.Xr man 7 4554ba9607SSascha Wildnertext from stdin and produces 4654ba9607SSascha Wildner.Fl T Cm locale 4736342e81SSascha Wildneroutput. 4836342e81SSascha Wildner.Pp 4954ba9607SSascha WildnerThe options are as follows: 5080387638SSascha Wildner.Bl -tag -width Ds 5154ba9607SSascha Wildner.It Fl a 5254ba9607SSascha WildnerIf the standard output is a terminal device and 5354ba9607SSascha Wildner.Fl c 5454ba9607SSascha Wildneris not specified, use 55*99db7d0eSSascha Wildner.Xr less 1 5654ba9607SSascha Wildnerto paginate the output, just like 5754ba9607SSascha Wildner.Xr man 1 5854ba9607SSascha Wildnerwould. 5954ba9607SSascha Wildner.It Fl c 6054ba9607SSascha WildnerCopy the formatted manual pages to the standard output without using 61*99db7d0eSSascha Wildner.Xr less 1 6254ba9607SSascha Wildnerto paginate them. 6354ba9607SSascha WildnerThis is the default. 6454ba9607SSascha WildnerIt can be specified to override 6554ba9607SSascha Wildner.Fl a . 6654ba9607SSascha Wildner.It Fl I Cm os Ns = Ns Ar name 67f88b6c16SFranco FichtnerOverride the default operating system 68f88b6c16SFranco Fichtner.Ar name 69f88b6c16SFranco Fichtnerfor the 70f88b6c16SFranco Fichtner.Xr mdoc 7 7154ba9607SSascha Wildner.Ic \&Os 7254ba9607SSascha Wildnerand for the 7354ba9607SSascha Wildner.Xr man 7 7454ba9607SSascha Wildner.Ic \&TH 75f88b6c16SFranco Fichtnermacro. 7654ba9607SSascha Wildner.It Fl K Ar encoding 7754ba9607SSascha WildnerSpecify the input encoding. 7854ba9607SSascha WildnerThe supported 7954ba9607SSascha Wildner.Ar encoding 8054ba9607SSascha Wildnerarguments are 8154ba9607SSascha Wildner.Cm us-ascii , 8254ba9607SSascha Wildner.Cm iso-8859-1 , 8354ba9607SSascha Wildnerand 8454ba9607SSascha Wildner.Cm utf-8 . 8554ba9607SSascha WildnerIf not specified, autodetection uses the first match in the following 8654ba9607SSascha Wildnerlist: 8754ba9607SSascha Wildner.Bl -enum 8854ba9607SSascha Wildner.It 8954ba9607SSascha WildnerIf the first three bytes of the input file are the UTF-8 byte order 9054ba9607SSascha Wildnermark (BOM, 0xefbbbf), input is interpreted as 9154ba9607SSascha Wildner.Cm utf-8 . 9254ba9607SSascha Wildner.It 9354ba9607SSascha WildnerIf the first or second line of the input file matches the 9454ba9607SSascha Wildner.Sy emacs 9554ba9607SSascha Wildnermode line format 9654ba9607SSascha Wildner.Pp 9754ba9607SSascha Wildner.D1 .\e" -*- Oo ...; Oc coding: Ar encoding ; No -*- 9854ba9607SSascha Wildner.Pp 9954ba9607SSascha Wildnerthen input is interpreted according to 10054ba9607SSascha Wildner.Ar encoding . 10154ba9607SSascha Wildner.It 10254ba9607SSascha WildnerIf the first non-ASCII byte in the file introduces a valid UTF-8 10354ba9607SSascha Wildnersequence, input is interpreted as 10454ba9607SSascha Wildner.Cm utf-8 . 10554ba9607SSascha Wildner.It 10654ba9607SSascha WildnerOtherwise, input is interpreted as 10754ba9607SSascha Wildner.Cm iso-8859-1 . 10854ba9607SSascha Wildner.El 10954ba9607SSascha Wildner.It Fl mdoc | man 11054ba9607SSascha WildnerWith 11154ba9607SSascha Wildner.Fl mdoc , 11254ba9607SSascha Wildnerall input files are interpreted as 11354ba9607SSascha Wildner.Xr mdoc 7 . 11454ba9607SSascha WildnerWith 11554ba9607SSascha Wildner.Fl man , 11654ba9607SSascha Wildnerall input files are interpreted as 11754ba9607SSascha Wildner.Xr man 7 . 11854ba9607SSascha WildnerBy default, the input language is automatically detected for each file: 11954ba9607SSascha Wildnerif the first macro is 12054ba9607SSascha Wildner.Ic \&Dd 12154ba9607SSascha Wildneror 12254ba9607SSascha Wildner.Ic \&Dt , 12354ba9607SSascha Wildnerthe 12454ba9607SSascha Wildner.Xr mdoc 7 12554ba9607SSascha Wildnerparser is used; otherwise, the 12654ba9607SSascha Wildner.Xr man 7 12754ba9607SSascha Wildnerparser is used. 12854ba9607SSascha WildnerWith other arguments, 12954ba9607SSascha Wildner.Fl m 13054ba9607SSascha Wildneris silently ignored. 13154ba9607SSascha Wildner.It Fl O Ar options 13280387638SSascha WildnerComma-separated output options. 13354ba9607SSascha WildnerSee the descriptions of the individual output formats for supported 13454ba9607SSascha Wildner.Ar options . 13554ba9607SSascha Wildner.It Fl T Ar output 13654ba9607SSascha WildnerSelect the output format. 13754ba9607SSascha WildnerSupported values for the 13854ba9607SSascha Wildner.Ar output 13954ba9607SSascha Wildnerargument are 14054ba9607SSascha Wildner.Cm ascii , 14154ba9607SSascha Wildner.Cm html , 14254ba9607SSascha Wildnerthe default of 14354ba9607SSascha Wildner.Cm locale , 14454ba9607SSascha Wildner.Cm man , 14554ba9607SSascha Wildner.Cm markdown , 14654ba9607SSascha Wildner.Cm pdf , 14754ba9607SSascha Wildner.Cm ps , 14854ba9607SSascha Wildner.Cm tree , 14954ba9607SSascha Wildnerand 15054ba9607SSascha Wildner.Cm utf8 . 15154ba9607SSascha Wildner.Pp 15254ba9607SSascha WildnerThe special 15354ba9607SSascha Wildner.Fl T Cm lint 15454ba9607SSascha Wildnermode only parses the input and produces no output. 15554ba9607SSascha WildnerIt implies 15654ba9607SSascha Wildner.Fl W Cm all 15754ba9607SSascha Wildnerand redirects parser messages, which usually appear on standard 15854ba9607SSascha Wildnererror output, to standard output. 15954ba9607SSascha Wildner.It Fl W Ar level 16080387638SSascha WildnerSpecify the minimum message 16180387638SSascha Wildner.Ar level 16280387638SSascha Wildnerto be reported on the standard error output and to affect the exit status. 16380387638SSascha WildnerThe 16480387638SSascha Wildner.Ar level 16580387638SSascha Wildnercan be 16654ba9607SSascha Wildner.Cm base , 16754ba9607SSascha Wildner.Cm style , 16880387638SSascha Wildner.Cm warning , 16980387638SSascha Wildner.Cm error , 17080387638SSascha Wildneror 17154ba9607SSascha Wildner.Cm unsupp . 17254ba9607SSascha WildnerThe 17354ba9607SSascha Wildner.Cm base 17454ba9607SSascha Wildnerlevel automatically derives the operating system from the contents of the 17554ba9607SSascha Wildner.Ic \&Os 17654ba9607SSascha Wildnermacro, from the 17754ba9607SSascha Wildner.Fl Ios 17854ba9607SSascha Wildnercommand line option, or from the 17954ba9607SSascha Wildner.Xr uname 3 18054ba9607SSascha Wildnerreturn value. 18154ba9607SSascha WildnerThe levels 18254ba9607SSascha Wildner.Cm openbsd 18354ba9607SSascha Wildnerand 18454ba9607SSascha Wildner.Cm netbsd 18554ba9607SSascha Wildnerare variants of 18654ba9607SSascha Wildner.Cm base 18754ba9607SSascha Wildnerthat bypass autodetection and request validation of base system 18854ba9607SSascha Wildnerconventions for a particular operating system. 18954ba9607SSascha WildnerThe level 19054ba9607SSascha Wildner.Cm all 19180387638SSascha Wildneris an alias for 19254ba9607SSascha Wildner.Cm base . 19354ba9607SSascha WildnerBy default, 19454ba9607SSascha Wildner.Nm 19554ba9607SSascha Wildneris silent. 19680387638SSascha WildnerSee 19780387638SSascha Wildner.Sx EXIT STATUS 19880387638SSascha Wildnerand 19980387638SSascha Wildner.Sx DIAGNOSTICS 20080387638SSascha Wildnerfor details. 20180387638SSascha Wildner.Pp 20280387638SSascha WildnerThe special option 20354ba9607SSascha Wildner.Fl W Cm stop 20480387638SSascha Wildnertells 20580387638SSascha Wildner.Nm 20680387638SSascha Wildnerto exit after parsing a file that causes warnings or errors of at least 20780387638SSascha Wildnerthe requested level. 20880387638SSascha WildnerNo formatted output will be produced from that file. 20980387638SSascha WildnerIf both a 21080387638SSascha Wildner.Ar level 21180387638SSascha Wildnerand 21280387638SSascha Wildner.Cm stop 21380387638SSascha Wildnerare requested, they can be joined with a comma, for example 21454ba9607SSascha Wildner.Fl W Cm error , Ns Cm stop . 21580387638SSascha Wildner.It Ar file 21654ba9607SSascha WildnerRead from the given input file. 21754ba9607SSascha WildnerIf multiple files are specified, they are processed in the given order. 21854ba9607SSascha WildnerIf unspecified, 21980387638SSascha Wildner.Nm 22054ba9607SSascha Wildnerreads from standard input. 22180387638SSascha Wildner.El 22280387638SSascha Wildner.Pp 22354ba9607SSascha WildnerThe options 22454ba9607SSascha Wildner.Fl fhklw 225*99db7d0eSSascha Wildnerare also supported and are documented in 226*99db7d0eSSascha Wildner.Xr man 1 . 22754ba9607SSascha WildnerIn 22854ba9607SSascha Wildner.Fl f 22954ba9607SSascha Wildnerand 23054ba9607SSascha Wildner.Fl k 23154ba9607SSascha Wildnermode, 23254ba9607SSascha Wildner.Nm 23354ba9607SSascha Wildneralso supports the options 23454ba9607SSascha Wildner.Fl CMmOSs 23554ba9607SSascha Wildnerdescribed in the 23654ba9607SSascha Wildner.Xr apropos 1 23754ba9607SSascha Wildnermanual. 23854ba9607SSascha WildnerThe options 23954ba9607SSascha Wildner.Fl fkl 24054ba9607SSascha Wildnerare mutually exclusive and override each other. 24180387638SSascha Wildner.Ss ASCII Output 24254ba9607SSascha WildnerUse 24354ba9607SSascha Wildner.Fl T Cm ascii 24454ba9607SSascha Wildnerto force text output in 7-bit ASCII character encoding documented in the 24554ba9607SSascha Wildner.Xr ascii 7 24654ba9607SSascha Wildnermanual page, ignoring the 24754ba9607SSascha Wildner.Xr locale 1 24854ba9607SSascha Wildnerset in the environment. 24980387638SSascha Wildner.Pp 25080387638SSascha WildnerFont styles are applied by using back-spaced encoding such that an 25180387638SSascha Wildnerunderlined character 25280387638SSascha Wildner.Sq c 25380387638SSascha Wildneris rendered as 25480387638SSascha Wildner.Sq _ Ns \e[bs] Ns c , 25580387638SSascha Wildnerwhere 25680387638SSascha Wildner.Sq \e[bs] 25780387638SSascha Wildneris the back-space character number 8. 25880387638SSascha WildnerEmboldened characters are rendered as 25980387638SSascha Wildner.Sq c Ns \e[bs] Ns c . 26054ba9607SSascha WildnerThis markup is typically converted to appropriate terminal sequences by 26154ba9607SSascha Wildnerthe pager or 26254ba9607SSascha Wildner.Xr ul 1 . 26354ba9607SSascha WildnerTo remove the markup, pipe the output to 26454ba9607SSascha Wildner.Xr col 1 26554ba9607SSascha Wildner.Fl b 26654ba9607SSascha Wildnerinstead. 26780387638SSascha Wildner.Pp 26880387638SSascha WildnerThe special characters documented in 26980387638SSascha Wildner.Xr mandoc_char 7 27080387638SSascha Wildnerare rendered best-effort in an ASCII equivalent. 27154ba9607SSascha WildnerIn particular, opening and closing 27254ba9607SSascha Wildner.Sq single quotes 27354ba9607SSascha Wildnerare represented as characters number 0x60 and 0x27, respectively, 27454ba9607SSascha Wildnerwhich agrees with all ASCII standards from 1965 to the latest 27554ba9607SSascha Wildnerrevision (2012) and which matches the traditional way in which 27654ba9607SSascha Wildner.Xr roff 7 27754ba9607SSascha Wildnerformatters represent single quotes in ASCII output. 27854ba9607SSascha WildnerThis correct ASCII rendering may look strange with modern 27954ba9607SSascha WildnerUnicode-compatible fonts because contrary to ASCII, Unicode uses 28054ba9607SSascha Wildnerthe code point U+0060 for the grave accent only, never for an opening 28154ba9607SSascha Wildnerquote. 28280387638SSascha Wildner.Pp 28380387638SSascha WildnerThe following 28480387638SSascha Wildner.Fl O 28580387638SSascha Wildnerarguments are accepted: 28680387638SSascha Wildner.Bl -tag -width Ds 28736342e81SSascha Wildner.It Cm indent Ns = Ns Ar indent 28836342e81SSascha WildnerThe left margin for normal text is set to 28936342e81SSascha Wildner.Ar indent 29036342e81SSascha Wildnerblank characters instead of the default of five for 29136342e81SSascha Wildner.Xr mdoc 7 29236342e81SSascha Wildnerand seven for 29336342e81SSascha Wildner.Xr man 7 . 29436342e81SSascha WildnerIncreasing this is not recommended; it may result in degraded formatting, 29536342e81SSascha Wildnerfor example overfull lines or ugly line breaks. 29654ba9607SSascha WildnerWhen output is to a pager on a terminal that is less than 66 columns 29754ba9607SSascha Wildnerwide, the default is reduced to three columns. 29854ba9607SSascha Wildner.It Cm mdoc 29954ba9607SSascha WildnerFormat 30054ba9607SSascha Wildner.Xr man 7 30154ba9607SSascha Wildnerinput files in 30254ba9607SSascha Wildner.Xr mdoc 7 30354ba9607SSascha Wildneroutput style. 304*99db7d0eSSascha WildnerThis prints the operating system name rather than the page title 305*99db7d0eSSascha Wildneron the right side of the footer line, and it implies 30654ba9607SSascha Wildner.Fl O Cm indent Ns =5 . 30754ba9607SSascha WildnerOne useful application is for checking that 30854ba9607SSascha Wildner.Fl T Cm man 30954ba9607SSascha Wildneroutput formats in the same way as the 31054ba9607SSascha Wildner.Xr mdoc 7 31154ba9607SSascha Wildnersource it was generated from. 31254ba9607SSascha Wildner.It Cm tag Ns Op = Ns Ar term 31354ba9607SSascha WildnerIf the formatted manual page is opened in a pager, 31454ba9607SSascha Wildnergo to the definition of the 31554ba9607SSascha Wildner.Ar term 31654ba9607SSascha Wildnerrather than showing the manual page from the beginning. 31754ba9607SSascha WildnerIf no 31854ba9607SSascha Wildner.Ar term 31954ba9607SSascha Wildneris specified, reuse the first command line argument that is not a 32054ba9607SSascha Wildner.Ar section 32154ba9607SSascha Wildnernumber. 32254ba9607SSascha WildnerIf that argument is in 32354ba9607SSascha Wildner.Xr apropos 1 32454ba9607SSascha Wildner.Ar key Ns = Ns Ar val 32554ba9607SSascha Wildnerformat, only the 32654ba9607SSascha Wildner.Ar val 32754ba9607SSascha Wildneris used rather than the argument as a whole. 32854ba9607SSascha WildnerThis is useful for commands like 32954ba9607SSascha Wildner.Ql man -akO tag Ic=ulimit 33054ba9607SSascha Wildnerto search for a keyword and jump right to its definition 33154ba9607SSascha Wildnerin the matching manual pages. 33280387638SSascha Wildner.It Cm width Ns = Ns Ar width 33380387638SSascha WildnerThe output width is set to 33454ba9607SSascha Wildner.Ar width 33554ba9607SSascha Wildnerinstead of the default of 78. 33654ba9607SSascha WildnerWhen output is to a pager on a terminal that is less than 79 columns 33754ba9607SSascha Wildnerwide, the default is reduced to one less than the terminal width. 33854ba9607SSascha WildnerIn any case, lines that are output in literal mode are never wrapped 33954ba9607SSascha Wildnerand may exceed the output width. 34080387638SSascha Wildner.El 34180387638SSascha Wildner.Ss HTML Output 34280387638SSascha WildnerOutput produced by 34354ba9607SSascha Wildner.Fl T Cm html 34454ba9607SSascha Wildnerconforms to HTML5 using optional self-closing tags. 34554ba9607SSascha WildnerDefault styles use only CSS1. 34654ba9607SSascha WildnerEquations rendered from 34754ba9607SSascha Wildner.Xr eqn 7 34854ba9607SSascha Wildnerblocks use MathML. 34980387638SSascha Wildner.Pp 35054ba9607SSascha WildnerThe file 35154ba9607SSascha Wildner.Pa /usr/share/misc/mandoc.css 35254ba9607SSascha Wildnerdocuments style-sheet classes available for customising output. 35380387638SSascha WildnerIf a style-sheet is not specified with 35454ba9607SSascha Wildner.Fl O Cm style , 35554ba9607SSascha Wildner.Fl T Cm html 35654ba9607SSascha Wildnerdefaults to simple output (via an embedded style-sheet) 35754ba9607SSascha Wildnerreadable in any graphical or text-based web 35880387638SSascha Wildnerbrowser. 35980387638SSascha Wildner.Pp 36054ba9607SSascha WildnerNon-ASCII characters are rendered 36154ba9607SSascha Wildneras hexadecimal Unicode character references. 36280387638SSascha Wildner.Pp 36380387638SSascha WildnerThe following 36480387638SSascha Wildner.Fl O 36580387638SSascha Wildnerarguments are accepted: 36680387638SSascha Wildner.Bl -tag -width Ds 36736342e81SSascha Wildner.It Cm fragment 36854ba9607SSascha WildnerOmit the <!DOCTYPE> declaration and the <html>, <head>, and <body> 36954ba9607SSascha Wildnerelements and only emit the subtree below the <body> element. 37036342e81SSascha WildnerThe 37136342e81SSascha Wildner.Cm style 37236342e81SSascha Wildnerargument will be ignored. 37336342e81SSascha WildnerThis is useful when embedding manual content within existing documents. 37480387638SSascha Wildner.It Cm includes Ns = Ns Ar fmt 37580387638SSascha WildnerThe string 37680387638SSascha Wildner.Ar fmt , 37780387638SSascha Wildnerfor example, 37880387638SSascha Wildner.Ar ../src/%I.html , 37980387638SSascha Wildneris used as a template for linked header files (usually via the 38054ba9607SSascha Wildner.Ic \&In 38180387638SSascha Wildnermacro). 38280387638SSascha WildnerInstances of 38380387638SSascha Wildner.Sq \&%I 38480387638SSascha Wildnerare replaced with the include filename. 38580387638SSascha WildnerThe default is not to present a 38680387638SSascha Wildnerhyperlink. 38754ba9607SSascha Wildner.It Cm man Ns = Ns Ar fmt Ns Op ; Ns Ar fmt 38880387638SSascha WildnerThe string 38980387638SSascha Wildner.Ar fmt , 39080387638SSascha Wildnerfor example, 39180387638SSascha Wildner.Ar ../html%S/%N.%S.html , 39280387638SSascha Wildneris used as a template for linked manuals (usually via the 39354ba9607SSascha Wildner.Ic \&Xr 39480387638SSascha Wildnermacro). 39580387638SSascha WildnerInstances of 39680387638SSascha Wildner.Sq \&%N 39780387638SSascha Wildnerand 39880387638SSascha Wildner.Sq %S 39980387638SSascha Wildnerare replaced with the linked manual's name and section, respectively. 40080387638SSascha WildnerIf no section is included, section 1 is assumed. 40180387638SSascha WildnerThe default is not to 40280387638SSascha Wildnerpresent a hyperlink. 40354ba9607SSascha WildnerIf two formats are given and a file 40454ba9607SSascha Wildner.Ar %N.%S 40554ba9607SSascha Wildnerexists in the current directory, the first format is used; 40654ba9607SSascha Wildnerotherwise, the second format is used. 40780387638SSascha Wildner.It Cm style Ns = Ns Ar style.css 40880387638SSascha WildnerThe file 40980387638SSascha Wildner.Ar style.css 41080387638SSascha Wildneris used for an external style-sheet. 41180387638SSascha WildnerThis must be a valid absolute or 41280387638SSascha Wildnerrelative URI. 413*99db7d0eSSascha Wildner.It Cm tag Ns Op = Ns Ar term 414*99db7d0eSSascha WildnerSame syntax and semantics as for 415*99db7d0eSSascha Wildner.Sx ASCII Output . 416*99db7d0eSSascha WildnerThis is implemented by passing a 417*99db7d0eSSascha Wildner.Ic file:// 418*99db7d0eSSascha WildnerURI ending in a fragment identifier to the pager 419*99db7d0eSSascha Wildnerrather than passing merely a file name. 420*99db7d0eSSascha WildnerWhen using this argument, use a pager supporting such URIs, for example 421*99db7d0eSSascha Wildner.Bd -literal -offset 3n 422*99db7d0eSSascha WildnerMANPAGER='lynx -force_html' man -T html -O tag=MANPAGER man 423*99db7d0eSSascha WildnerMANPAGER='w3m -T text/html' man -T html -O tag=toc mandoc 424*99db7d0eSSascha Wildner.Ed 425*99db7d0eSSascha Wildner.Pp 426*99db7d0eSSascha WildnerConsequently, for HTML output, this argument does not work with 427*99db7d0eSSascha Wildner.Xr more 1 428*99db7d0eSSascha Wildneror 429*99db7d0eSSascha Wildner.Xr less 1 . 430*99db7d0eSSascha WildnerFor example, 431*99db7d0eSSascha Wildner.Ql MANPAGER=less man -T html -O tag=toc mandoc 432*99db7d0eSSascha Wildnerdoes not work because 433*99db7d0eSSascha Wildner.Xr less 1 434*99db7d0eSSascha Wildnerdoes not support 435*99db7d0eSSascha Wildner.Ic file:// 436*99db7d0eSSascha WildnerURIs. 43754ba9607SSascha Wildner.It Cm toc 43854ba9607SSascha WildnerIf an input file contains at least two non-standard sections, 43954ba9607SSascha Wildnerprint a table of contents near the beginning of the output. 44080387638SSascha Wildner.El 44136342e81SSascha Wildner.Ss Locale Output 44254ba9607SSascha WildnerBy default, 44354ba9607SSascha Wildner.Nm 44454ba9607SSascha Wildnerautomatically selects UTF-8 or ASCII output according to the current 44554ba9607SSascha Wildner.Xr locale 1 . 44654ba9607SSascha WildnerIf any of the environment variables 44754ba9607SSascha Wildner.Ev LC_ALL , 44854ba9607SSascha Wildner.Ev LC_CTYPE , 44954ba9607SSascha Wildneror 45054ba9607SSascha Wildner.Ev LANG 45154ba9607SSascha Wildnerare set and the first one that is set 45254ba9607SSascha Wildnerselects the UTF-8 character encoding, it produces 45354ba9607SSascha Wildner.Sx UTF-8 Output ; 45454ba9607SSascha Wildnerotherwise, it falls back to 45554ba9607SSascha Wildner.Sx ASCII Output . 45654ba9607SSascha WildnerThis output mode can also be selected explicitly with 45754ba9607SSascha Wildner.Fl T Cm locale . 45836342e81SSascha Wildner.Ss Man Output 45954ba9607SSascha WildnerUse 46054ba9607SSascha Wildner.Fl T Cm man 46154ba9607SSascha Wildnerto translate 46254ba9607SSascha Wildner.Xr mdoc 7 46354ba9607SSascha Wildnerinput into 46436342e81SSascha Wildner.Xr man 7 46536342e81SSascha Wildneroutput format. 466f88b6c16SFranco FichtnerThis is useful for distributing manual sources to legacy systems 46736342e81SSascha Wildnerlacking 46836342e81SSascha Wildner.Xr mdoc 7 46936342e81SSascha Wildnerformatters. 470*99db7d0eSSascha WildnerEmbedded 471*99db7d0eSSascha Wildner.Xr eqn 7 472*99db7d0eSSascha Wildnerand 473*99db7d0eSSascha Wildner.Xr tbl 7 474*99db7d0eSSascha Wildnercode is not supported. 47536342e81SSascha Wildner.Pp 47654ba9607SSascha WildnerIf the input format of a file is 47736342e81SSascha Wildner.Xr man 7 , 478*99db7d0eSSascha Wildnerthe input is copied to the output. 47936342e81SSascha WildnerThe parser is also run, and as usual, the 48036342e81SSascha Wildner.Fl W 48136342e81SSascha Wildnerlevel controls which 48236342e81SSascha Wildner.Sx DIAGNOSTICS 48336342e81SSascha Wildnerare displayed before copying the input to the output. 48454ba9607SSascha Wildner.Ss Markdown Output 48554ba9607SSascha WildnerUse 48654ba9607SSascha Wildner.Fl T Cm markdown 48754ba9607SSascha Wildnerto translate 48854ba9607SSascha Wildner.Xr mdoc 7 48954ba9607SSascha Wildnerinput to the markdown format conforming to 49054ba9607SSascha Wildner.Lk http://daringfireball.net/projects/markdown/syntax.text\ 49154ba9607SSascha Wildner "John Gruber's 2004 specification" . 49254ba9607SSascha WildnerThe output also almost conforms to the 49354ba9607SSascha Wildner.Lk http://commonmark.org/ CommonMark 49454ba9607SSascha Wildnerspecification. 49554ba9607SSascha Wildner.Pp 49654ba9607SSascha WildnerThe character set used for the markdown output is ASCII. 49754ba9607SSascha WildnerNon-ASCII characters are encoded as HTML entities. 49854ba9607SSascha WildnerSince that is not possible in literal font contexts, because these 49954ba9607SSascha Wildnerare rendered as code spans and code blocks in the markdown output, 50054ba9607SSascha Wildnernon-ASCII characters are transliterated to ASCII approximations in 50154ba9607SSascha Wildnerthese contexts. 50254ba9607SSascha Wildner.Pp 50354ba9607SSascha WildnerMarkdown is a very weak markup language, so all semantic markup is 50454ba9607SSascha Wildnerlost, and even part of the presentational markup may be lost. 50554ba9607SSascha WildnerDo not use this as an intermediate step in converting to HTML; 50654ba9607SSascha Wildnerinstead, use 50754ba9607SSascha Wildner.Fl T Cm html 50854ba9607SSascha Wildnerdirectly. 50954ba9607SSascha Wildner.Pp 51054ba9607SSascha WildnerThe 51154ba9607SSascha Wildner.Xr man 7 , 51254ba9607SSascha Wildner.Xr tbl 7 , 51354ba9607SSascha Wildnerand 51454ba9607SSascha Wildner.Xr eqn 7 51554ba9607SSascha Wildnerinput languages are not supported by 51654ba9607SSascha Wildner.Fl T Cm markdown 51754ba9607SSascha Wildneroutput mode. 51836342e81SSascha Wildner.Ss PDF Output 51936342e81SSascha WildnerPDF-1.1 output may be generated by 52054ba9607SSascha Wildner.Fl T Cm pdf . 52136342e81SSascha WildnerSee 52236342e81SSascha Wildner.Sx PostScript Output 52336342e81SSascha Wildnerfor 52436342e81SSascha Wildner.Fl O 52536342e81SSascha Wildnerarguments and defaults. 52680387638SSascha Wildner.Ss PostScript Output 52780387638SSascha WildnerPostScript 52880387638SSascha Wildner.Qq Adobe-3.0 52980387638SSascha WildnerLevel-2 pages may be generated by 53054ba9607SSascha Wildner.Fl T Cm ps . 53180387638SSascha WildnerOutput pages default to letter sized and are rendered in the Times font 53280387638SSascha Wildnerfamily, 11-point. 53380387638SSascha WildnerMargins are calculated as 1/9 the page length and width. 53480387638SSascha WildnerLine-height is 1.4m. 53580387638SSascha Wildner.Pp 53680387638SSascha WildnerSpecial characters are rendered as in 53780387638SSascha Wildner.Sx ASCII Output . 53880387638SSascha Wildner.Pp 53980387638SSascha WildnerThe following 54080387638SSascha Wildner.Fl O 54180387638SSascha Wildnerarguments are accepted: 54280387638SSascha Wildner.Bl -tag -width Ds 54380387638SSascha Wildner.It Cm paper Ns = Ns Ar name 54480387638SSascha WildnerThe paper size 54580387638SSascha Wildner.Ar name 54680387638SSascha Wildnermay be one of 54780387638SSascha Wildner.Ar a3 , 54880387638SSascha Wildner.Ar a4 , 54980387638SSascha Wildner.Ar a5 , 55080387638SSascha Wildner.Ar legal , 55180387638SSascha Wildneror 55280387638SSascha Wildner.Ar letter . 55380387638SSascha WildnerYou may also manually specify dimensions as 55480387638SSascha Wildner.Ar NNxNN , 55580387638SSascha Wildnerwidth by height in millimetres. 55680387638SSascha WildnerIf an unknown value is encountered, 55780387638SSascha Wildner.Ar letter 55880387638SSascha Wildneris used. 55980387638SSascha Wildner.El 56054ba9607SSascha Wildner.Ss UTF-8 Output 56136342e81SSascha WildnerUse 56254ba9607SSascha Wildner.Fl T Cm utf8 56354ba9607SSascha Wildnerto force text output in UTF-8 multi-byte character encoding, 56454ba9607SSascha Wildnerignoring the 56554ba9607SSascha Wildner.Xr locale 1 56654ba9607SSascha Wildnersettings in the environment. 56780387638SSascha WildnerSee 56854ba9607SSascha Wildner.Sx ASCII Output 56954ba9607SSascha Wildnerregarding font styles and 57054ba9607SSascha Wildner.Fl O 57154ba9607SSascha Wildnerarguments. 57280387638SSascha Wildner.Pp 57354ba9607SSascha WildnerOn operating systems lacking locale or wide character support, and 57454ba9607SSascha Wildneron those where the internal character representation is not UCS-4, 57554ba9607SSascha Wildner.Nm 57654ba9607SSascha Wildneralways falls back to 57754ba9607SSascha Wildner.Sx ASCII Output . 57854ba9607SSascha Wildner.Ss Syntax tree output 57954ba9607SSascha WildnerUse 58054ba9607SSascha Wildner.Fl T Cm tree 58154ba9607SSascha Wildnerto show a human readable representation of the syntax tree. 58254ba9607SSascha WildnerIt is useful for debugging the source code of manual pages. 58354ba9607SSascha WildnerThe exact format is subject to change, so don't write parsers for it. 58454ba9607SSascha Wildner.Pp 58554ba9607SSascha WildnerThe first paragraph shows meta data found in the 58654ba9607SSascha Wildner.Xr mdoc 7 58754ba9607SSascha Wildnerprologue, on the 58854ba9607SSascha Wildner.Xr man 7 58954ba9607SSascha Wildner.Ic \&TH 59054ba9607SSascha Wildnerline, or the fallbacks used. 59154ba9607SSascha Wildner.Pp 59254ba9607SSascha WildnerIn the tree dump, each output line shows one syntax tree node. 59354ba9607SSascha WildnerChild nodes are indented with respect to their parent node. 59454ba9607SSascha WildnerThe columns are: 59554ba9607SSascha Wildner.Pp 59654ba9607SSascha Wildner.Bl -enum -compact 59754ba9607SSascha Wildner.It 59854ba9607SSascha WildnerFor macro nodes, the macro name; for text and 59954ba9607SSascha Wildner.Xr tbl 7 60054ba9607SSascha Wildnernodes, the content. 60154ba9607SSascha WildnerThere is a special format for 60254ba9607SSascha Wildner.Xr eqn 7 60354ba9607SSascha Wildnernodes. 60454ba9607SSascha Wildner.It 60554ba9607SSascha WildnerNode type (text, elem, block, head, body, body-end, tail, tbl, eqn). 60654ba9607SSascha Wildner.It 60754ba9607SSascha WildnerFlags: 60854ba9607SSascha Wildner.Bl -dash -compact 60954ba9607SSascha Wildner.It 61054ba9607SSascha WildnerAn opening parenthesis if the node is an opening delimiter. 61154ba9607SSascha Wildner.It 61254ba9607SSascha WildnerAn asterisk if the node starts a new input line. 61354ba9607SSascha Wildner.It 61454ba9607SSascha WildnerThe input line number (starting at one). 61554ba9607SSascha Wildner.It 61654ba9607SSascha WildnerA colon. 61754ba9607SSascha Wildner.It 61854ba9607SSascha WildnerThe input column number (starting at one). 61954ba9607SSascha Wildner.It 62054ba9607SSascha WildnerA closing parenthesis if the node is a closing delimiter. 62154ba9607SSascha Wildner.It 62254ba9607SSascha WildnerA full stop if the node ends a sentence. 62354ba9607SSascha Wildner.It 62454ba9607SSascha WildnerBROKEN if the node is a block broken by another block. 62554ba9607SSascha Wildner.It 62654ba9607SSascha WildnerNOSRC if the node is not in the input file, 62754ba9607SSascha Wildnerbut automatically generated from macros. 62854ba9607SSascha Wildner.It 62954ba9607SSascha WildnerNOPRT if the node is not supposed to generate output 63054ba9607SSascha Wildnerfor any output format. 63154ba9607SSascha Wildner.El 63254ba9607SSascha Wildner.El 63354ba9607SSascha Wildner.Pp 63454ba9607SSascha WildnerThe following 63554ba9607SSascha Wildner.Fl O 63654ba9607SSascha Wildnerargument is accepted: 63754ba9607SSascha Wildner.Bl -tag -width Ds 63854ba9607SSascha Wildner.It Cm noval 63954ba9607SSascha WildnerSkip validation and show the unvalidated syntax tree. 64054ba9607SSascha WildnerThis can help to find out whether a given behaviour is caused by 64154ba9607SSascha Wildnerthe parser or by the validator. 64254ba9607SSascha WildnerMeta data is not available in this case. 64354ba9607SSascha Wildner.El 64454ba9607SSascha Wildner.Sh ENVIRONMENT 64554ba9607SSascha Wildner.Bl -tag -width MANPAGER 64654ba9607SSascha Wildner.It Ev LC_CTYPE 64754ba9607SSascha WildnerThe character encoding 64854ba9607SSascha Wildner.Xr locale 1 . 64954ba9607SSascha WildnerWhen 65054ba9607SSascha Wildner.Sx Locale Output 65154ba9607SSascha Wildneris selected, it decides whether to use ASCII or UTF-8 output format. 65254ba9607SSascha WildnerIt never affects the interpretation of input files. 65354ba9607SSascha Wildner.It Ev MANPAGER 65454ba9607SSascha WildnerAny non-empty value of the environment variable 65554ba9607SSascha Wildner.Ev MANPAGER 65654ba9607SSascha Wildneris used instead of the standard pagination program, 657*99db7d0eSSascha Wildner.Xr less 1 ; 65854ba9607SSascha Wildnersee 65954ba9607SSascha Wildner.Xr man 1 66054ba9607SSascha Wildnerfor details. 66154ba9607SSascha WildnerOnly used if 66254ba9607SSascha Wildner.Fl a 66354ba9607SSascha Wildneror 66454ba9607SSascha Wildner.Fl l 66554ba9607SSascha Wildneris specified. 66654ba9607SSascha Wildner.It Ev PAGER 66754ba9607SSascha WildnerSpecifies the pagination program to use when 66854ba9607SSascha Wildner.Ev MANPAGER 66954ba9607SSascha Wildneris not defined. 67054ba9607SSascha WildnerIf neither PAGER nor MANPAGER is defined, 671*99db7d0eSSascha Wildner.Xr less 1 67254ba9607SSascha Wildneris used. 67354ba9607SSascha WildnerOnly used if 67454ba9607SSascha Wildner.Fl a 67554ba9607SSascha Wildneror 67654ba9607SSascha Wildner.Fl l 67754ba9607SSascha Wildneris specified. 67854ba9607SSascha Wildner.El 67980387638SSascha Wildner.Sh EXIT STATUS 68080387638SSascha WildnerThe 68180387638SSascha Wildner.Nm 68280387638SSascha Wildnerutility exits with one of the following values, controlled by the message 68380387638SSascha Wildner.Ar level 68480387638SSascha Wildnerassociated with the 68580387638SSascha Wildner.Fl W 68680387638SSascha Wildneroption: 68780387638SSascha Wildner.Pp 68880387638SSascha Wildner.Bl -tag -width Ds -compact 68980387638SSascha Wildner.It 0 69054ba9607SSascha WildnerNo base system convention violations, style suggestions, warnings, 69154ba9607SSascha Wildneror errors occurred, or those that did were ignored because they 69254ba9607SSascha Wildnerwere lower than the requested 69380387638SSascha Wildner.Ar level . 69454ba9607SSascha Wildner.It 1 69554ba9607SSascha WildnerAt least one base system convention violation or style suggestion 69654ba9607SSascha Wildneroccurred, but no warning or error, and 69754ba9607SSascha Wildner.Fl W Cm base 69854ba9607SSascha Wildneror 69954ba9607SSascha Wildner.Fl W Cm style 70054ba9607SSascha Wildnerwas specified. 70180387638SSascha Wildner.It 2 70280387638SSascha WildnerAt least one warning occurred, but no error, and 70354ba9607SSascha Wildner.Fl W Cm warning 70454ba9607SSascha Wildneror a lower 70554ba9607SSascha Wildner.Ar level 70654ba9607SSascha Wildnerwas requested. 70780387638SSascha Wildner.It 3 70854ba9607SSascha WildnerAt least one parsing error occurred, 70954ba9607SSascha Wildnerbut no unsupported feature was encountered, and 71054ba9607SSascha Wildner.Fl W Cm error 71154ba9607SSascha Wildneror a lower 71254ba9607SSascha Wildner.Ar level 71354ba9607SSascha Wildnerwas requested. 71480387638SSascha Wildner.It 4 71554ba9607SSascha WildnerAt least one unsupported feature was encountered, and 71654ba9607SSascha Wildner.Fl W Cm unsupp 71754ba9607SSascha Wildneror a lower 71854ba9607SSascha Wildner.Ar level 71954ba9607SSascha Wildnerwas requested. 72080387638SSascha Wildner.It 5 72180387638SSascha WildnerInvalid command line arguments were specified. 72280387638SSascha WildnerNo input files have been read. 72380387638SSascha Wildner.It 6 72454ba9607SSascha WildnerAn operating system error occurred, for example exhaustion 72554ba9607SSascha Wildnerof memory, file descriptors, or process table entries. 726*99db7d0eSSascha WildnerSuch errors may cause 72780387638SSascha Wildner.Nm 72880387638SSascha Wildnerto exit at once, possibly in the middle of parsing or formatting a file. 72980387638SSascha Wildner.El 73080387638SSascha Wildner.Pp 73180387638SSascha WildnerNote that selecting 73254ba9607SSascha Wildner.Fl T Cm lint 73380387638SSascha Wildneroutput mode implies 73454ba9607SSascha Wildner.Fl W Cm all . 73580387638SSascha Wildner.Sh EXAMPLES 73680387638SSascha WildnerTo page manuals to the terminal: 73780387638SSascha Wildner.Pp 73854ba9607SSascha Wildner.Dl $ mandoc -l mandoc.1 man.1 apropos.1 makewhatis.8 73980387638SSascha Wildner.Pp 74080387638SSascha WildnerTo produce HTML manuals with 74154ba9607SSascha Wildner.Pa /usr/share/misc/mandoc.css 74280387638SSascha Wildneras the style-sheet: 74380387638SSascha Wildner.Pp 74454ba9607SSascha Wildner.Dl $ mandoc \-T html -O style=/usr/share/misc/mandoc.css mdoc.7 > mdoc.7.html 74580387638SSascha Wildner.Pp 74680387638SSascha WildnerTo check over a large set of manuals: 74780387638SSascha Wildner.Pp 74854ba9607SSascha Wildner.Dl $ mandoc \-T lint \(gafind /usr/src -name \e*\e.[1-9]\(ga 74980387638SSascha Wildner.Pp 75080387638SSascha WildnerTo produce a series of PostScript manuals for A4 paper: 75180387638SSascha Wildner.Pp 75254ba9607SSascha Wildner.Dl $ mandoc \-T ps \-O paper=a4 mdoc.7 man.7 > manuals.ps 75336342e81SSascha Wildner.Pp 75436342e81SSascha WildnerConvert a modern 75536342e81SSascha Wildner.Xr mdoc 7 75636342e81SSascha Wildnermanual to the older 75736342e81SSascha Wildner.Xr man 7 75836342e81SSascha Wildnerformat, for use on systems lacking an 75936342e81SSascha Wildner.Xr mdoc 7 76036342e81SSascha Wildnerparser: 76136342e81SSascha Wildner.Pp 76254ba9607SSascha Wildner.Dl $ mandoc \-T man foo.mdoc > foo.man 76380387638SSascha Wildner.Sh DIAGNOSTICS 764070c62a6SFranco FichtnerMessages displayed by 765070c62a6SFranco Fichtner.Nm 766070c62a6SFranco Fichtnerfollow this format: 76754ba9607SSascha Wildner.Bd -ragged -offset indent 76854ba9607SSascha Wildner.Nm : 76954ba9607SSascha Wildner.Ar file : Ns Ar line : Ns Ar column : level : message : macro arguments 77054ba9607SSascha Wildner.Pq Ar os 77154ba9607SSascha Wildner.Ed 77280387638SSascha Wildner.Pp 77354ba9607SSascha WildnerThe first three fields identify the 77454ba9607SSascha Wildner.Ar file 77554ba9607SSascha Wildnername, 77654ba9607SSascha Wildner.Ar line 77754ba9607SSascha Wildnernumber, and 77854ba9607SSascha Wildner.Ar column 77954ba9607SSascha Wildnernumber of the input file where the message was triggered. 78054ba9607SSascha WildnerThe line and column numbers start at 1. 781070c62a6SFranco FichtnerBoth are omitted for messages referring to an input file as a whole. 78254ba9607SSascha WildnerAll 78354ba9607SSascha Wildner.Ar level 78454ba9607SSascha Wildnerand 78554ba9607SSascha Wildner.Ar message 78654ba9607SSascha Wildnerstrings are explained below. 78754ba9607SSascha WildnerThe name of the 78854ba9607SSascha Wildner.Ar macro 78954ba9607SSascha Wildnertriggering the message and its 79054ba9607SSascha Wildner.Ar arguments 79154ba9607SSascha Wildnerare omitted where meaningless. 79254ba9607SSascha WildnerThe 79354ba9607SSascha Wildner.Ar os 79454ba9607SSascha Wildneroperating system specifier is omitted for messages that are relevant 79554ba9607SSascha Wildnerfor all operating systems. 796070c62a6SFranco FichtnerFatal messages about invalid command line arguments 797070c62a6SFranco Fichtneror operating system errors, for example when memory is exhausted, 798070c62a6SFranco Fichtnermay also omit the 799070c62a6SFranco Fichtner.Ar file 800070c62a6SFranco Fichtnerand 801070c62a6SFranco Fichtner.Ar level 802070c62a6SFranco Fichtnerfields. 80380387638SSascha Wildner.Pp 80480387638SSascha WildnerMessage levels have the following meanings: 80580387638SSascha Wildner.Bl -tag -width "warning" 806*99db7d0eSSascha Wildner.It Cm syserr 807*99db7d0eSSascha WildnerAn operating system error occurred. 808*99db7d0eSSascha WildnerThere isn't necessarily anything wrong with the input files. 809*99db7d0eSSascha WildnerOutput may all the same be missing or incomplete. 810*99db7d0eSSascha Wildner.It Cm badarg 811*99db7d0eSSascha WildnerInvalid command line arguments were specified. 812*99db7d0eSSascha WildnerNo input files have been read and no output is produced. 81354ba9607SSascha Wildner.It Cm unsupp 81454ba9607SSascha WildnerAn input file uses unsupported low-level 81554ba9607SSascha Wildner.Xr roff 7 81654ba9607SSascha Wildnerfeatures. 81754ba9607SSascha WildnerThe output may be incomplete and/or misformatted, 81854ba9607SSascha Wildnerso using GNU troff instead of 81980387638SSascha Wildner.Nm 82054ba9607SSascha Wildnerto process the file may be preferable. 82154ba9607SSascha Wildner.It Cm error 82254ba9607SSascha WildnerIndicates a risk of information loss or severe misformatting, 82354ba9607SSascha Wildnerin most cases caused by serious syntax errors. 82480387638SSascha Wildner.It Cm warning 82554ba9607SSascha WildnerIndicates a risk that the information shown or its formatting 82654ba9607SSascha Wildnermay mismatch the author's intent in minor ways. 82754ba9607SSascha WildnerAdditionally, syntax errors are classified at least as warnings, 82854ba9607SSascha Wildnereven if they do not usually cause misformatting. 82954ba9607SSascha Wildner.It Cm style 83054ba9607SSascha WildnerAn input file uses dubious or discouraged style. 83154ba9607SSascha WildnerThis is not a complaint about the syntax, and probably neither 83254ba9607SSascha Wildnerformatting nor portability are in danger. 83354ba9607SSascha WildnerWhile great care is taken to avoid false positives on the higher 83454ba9607SSascha Wildnermessage levels, the 83554ba9607SSascha Wildner.Cm style 83654ba9607SSascha Wildnerlevel tries to reduce the probability that issues go unnoticed, 83754ba9607SSascha Wildnerso it may occasionally issue bogus suggestions. 83854ba9607SSascha WildnerPlease use your good judgement to decide whether any particular 83954ba9607SSascha Wildner.Cm style 84054ba9607SSascha Wildnersuggestion really justifies a change to the input file. 84154ba9607SSascha Wildner.It Cm base 84254ba9607SSascha WildnerA convention used in the base system of a specific operating system 84354ba9607SSascha Wildneris not adhered to. 84454ba9607SSascha WildnerThese are not markup mistakes, and neither the quality of formatting 84554ba9607SSascha Wildnernor portability are in danger. 84654ba9607SSascha WildnerMessages of the 84754ba9607SSascha Wildner.Cm base 84854ba9607SSascha Wildnerlevel are printed with the more intuitive 84954ba9607SSascha Wildner.Cm style 85054ba9607SSascha Wildner.Ar level 85154ba9607SSascha Wildnertag. 85280387638SSascha Wildner.El 85380387638SSascha Wildner.Pp 85480387638SSascha WildnerMessages of the 85554ba9607SSascha Wildner.Cm base , 85654ba9607SSascha Wildner.Cm style , 85754ba9607SSascha Wildner.Cm warning , 85854ba9607SSascha Wildner.Cm error , 85980387638SSascha Wildnerand 86054ba9607SSascha Wildner.Cm unsupp 861*99db7d0eSSascha Wildnerlevels are hidden unless their level, or a lower level, is requested using a 86280387638SSascha Wildner.Fl W 86380387638SSascha Wildneroption or 86454ba9607SSascha Wildner.Fl T Cm lint 86580387638SSascha Wildneroutput mode. 86654ba9607SSascha Wildner.Pp 86754ba9607SSascha WildnerAs indicated below, all 86854ba9607SSascha Wildner.Cm base 86954ba9607SSascha Wildnerand some 87054ba9607SSascha Wildner.Cm style 87154ba9607SSascha Wildnerchecks are only performed if a specific operating system name occurs 87254ba9607SSascha Wildnerin the arguments of the 87354ba9607SSascha Wildner.Fl W 87454ba9607SSascha Wildnercommand line option, of the 87554ba9607SSascha Wildner.Ic \&Os 87654ba9607SSascha Wildnermacro, of the 87754ba9607SSascha Wildner.Fl Ios 87854ba9607SSascha Wildnercommand line option, or, if neither are present, in the return value 87954ba9607SSascha Wildnerof the 88054ba9607SSascha Wildner.Xr uname 3 88154ba9607SSascha Wildnerfunction. 88254ba9607SSascha Wildner.Ss Conventions for base system manuals 88354ba9607SSascha Wildner.Bl -ohang 88454ba9607SSascha Wildner.It Sy "Mdocdate found" 88554ba9607SSascha Wildner.Pq mdoc , Nx 88654ba9607SSascha WildnerThe 88754ba9607SSascha Wildner.Ic \&Dd 88854ba9607SSascha Wildnermacro uses CVS 88954ba9607SSascha Wildner.Ic Mdocdate 89054ba9607SSascha Wildnerkeyword substitution, which is not supported by the 89154ba9607SSascha Wildner.Nx 89254ba9607SSascha Wildnerbase system. 89354ba9607SSascha WildnerConsider using the conventional 89454ba9607SSascha Wildner.Dq "Month dd, yyyy" 89554ba9607SSascha Wildnerformat instead. 89654ba9607SSascha Wildner.It Sy "Mdocdate missing" 89754ba9607SSascha Wildner.Pq mdoc , Ox 89854ba9607SSascha WildnerThe 89954ba9607SSascha Wildner.Ic \&Dd 90054ba9607SSascha Wildnermacro does not use CVS 90154ba9607SSascha Wildner.Ic Mdocdate 90254ba9607SSascha Wildnerkeyword substitution, but using it is conventionally expected in the 90354ba9607SSascha Wildner.Ox 90454ba9607SSascha Wildnerbase system. 90554ba9607SSascha Wildner.It Sy "unknown architecture" 90654ba9607SSascha Wildner.Pq mdoc , Ox , Nx 90754ba9607SSascha WildnerThe third argument of the 90854ba9607SSascha Wildner.Ic \&Dt 90954ba9607SSascha Wildnermacro does not match any of the architectures this operating system 91054ba9607SSascha Wildneris running on. 91154ba9607SSascha Wildner.It Sy "operating system explicitly specified" 91254ba9607SSascha Wildner.Pq mdoc , Ox , Nx 91354ba9607SSascha WildnerThe 91454ba9607SSascha Wildner.Ic \&Os 91554ba9607SSascha Wildnermacro has an argument. 91654ba9607SSascha WildnerIn the base system, it is conventionally left blank. 91754ba9607SSascha Wildner.It Sy "RCS id missing" 91854ba9607SSascha Wildner.Pq Ox , Nx 91954ba9607SSascha WildnerThe manual page lacks the comment line with the RCS identifier 92054ba9607SSascha Wildnergenerated by CVS 92154ba9607SSascha Wildner.Ic OpenBSD 92254ba9607SSascha Wildneror 92354ba9607SSascha Wildner.Ic NetBSD 92454ba9607SSascha Wildnerkeyword substitution as conventionally used in these operating systems. 92554ba9607SSascha Wildner.El 92654ba9607SSascha Wildner.Ss Style suggestions 92754ba9607SSascha Wildner.Bl -ohang 92854ba9607SSascha Wildner.It Sy "legacy man(7) date format" 92954ba9607SSascha Wildner.Pq mdoc 93054ba9607SSascha WildnerThe 93154ba9607SSascha Wildner.Ic \&Dd 93254ba9607SSascha Wildnermacro uses the legacy 93354ba9607SSascha Wildner.Xr man 7 93454ba9607SSascha Wildnerdate format 93554ba9607SSascha Wildner.Dq yyyy-dd-mm . 93654ba9607SSascha WildnerConsider using the conventional 93754ba9607SSascha Wildner.Xr mdoc 7 93854ba9607SSascha Wildnerdate format 93954ba9607SSascha Wildner.Dq "Month dd, yyyy" 94054ba9607SSascha Wildnerinstead. 94154ba9607SSascha Wildner.It Sy "normalizing date format to" : No ... 94254ba9607SSascha Wildner.Pq mdoc , man 94354ba9607SSascha WildnerThe 94454ba9607SSascha Wildner.Ic \&Dd 94554ba9607SSascha Wildneror 94654ba9607SSascha Wildner.Ic \&TH 94754ba9607SSascha Wildnermacro provides an abbreviated month name or a day number with a 94854ba9607SSascha Wildnerleading zero. 94954ba9607SSascha WildnerIn the formatted output, the month name is written out in full 95054ba9607SSascha Wildnerand the leading zero is omitted. 95154ba9607SSascha Wildner.It Sy "lower case character in document title" 95254ba9607SSascha Wildner.Pq mdoc , man 95354ba9607SSascha WildnerThe title is still used as given in the 95454ba9607SSascha Wildner.Ic \&Dt 95554ba9607SSascha Wildneror 95654ba9607SSascha Wildner.Ic \&TH 95754ba9607SSascha Wildnermacro. 95854ba9607SSascha Wildner.It Sy "duplicate RCS id" 95954ba9607SSascha WildnerA single manual page contains two copies of the RCS identifier for 96054ba9607SSascha Wildnerthe same operating system. 96154ba9607SSascha WildnerConsider deleting the later instance and moving the first one up 96254ba9607SSascha Wildnerto the top of the page. 96354ba9607SSascha Wildner.It Sy "possible typo in section name" 96454ba9607SSascha Wildner.Pq mdoc 96554ba9607SSascha WildnerFuzzy string matching revealed that the argument of an 96654ba9607SSascha Wildner.Ic \&Sh 96754ba9607SSascha Wildnermacro is similar, but not identical to a standard section name. 96854ba9607SSascha Wildner.It Sy "unterminated quoted argument" 96954ba9607SSascha Wildner.Pq roff 97054ba9607SSascha WildnerMacro arguments can be enclosed in double quote characters 97154ba9607SSascha Wildnersuch that space characters and macro names contained in the quoted 97254ba9607SSascha Wildnerargument need not be escaped. 97354ba9607SSascha WildnerThe closing quote of the last argument of a macro can be omitted. 97454ba9607SSascha WildnerHowever, omitting it is not recommended because it makes the code 97554ba9607SSascha Wildnerharder to read. 97654ba9607SSascha Wildner.It Sy "useless macro" 97754ba9607SSascha Wildner.Pq mdoc 97854ba9607SSascha WildnerA 97954ba9607SSascha Wildner.Ic \&Bt , 98054ba9607SSascha Wildner.Ic \&Tn , 98154ba9607SSascha Wildneror 98254ba9607SSascha Wildner.Ic \&Ud 98354ba9607SSascha Wildnermacro was found. 98454ba9607SSascha WildnerSimply delete it: it serves no useful purpose. 98554ba9607SSascha Wildner.It Sy "consider using OS macro" 98654ba9607SSascha Wildner.Pq mdoc 98754ba9607SSascha WildnerA string was found in plain text or in a 98854ba9607SSascha Wildner.Ic \&Bx 98954ba9607SSascha Wildnermacro that could be represented using 99054ba9607SSascha Wildner.Ic \&Ox , 99154ba9607SSascha Wildner.Ic \&Nx , 99254ba9607SSascha Wildner.Ic \&Fx , 99354ba9607SSascha Wildneror 99454ba9607SSascha Wildner.Ic \&Dx . 99554ba9607SSascha Wildner.It Sy "errnos out of order" 99654ba9607SSascha Wildner.Pq mdoc, Nx 99754ba9607SSascha WildnerThe 99854ba9607SSascha Wildner.Ic \&Er 99954ba9607SSascha Wildneritems in a 100054ba9607SSascha Wildner.Ic \&Bl 100154ba9607SSascha Wildnerlist are not in alphabetical order. 100254ba9607SSascha Wildner.It Sy "duplicate errno" 100354ba9607SSascha Wildner.Pq mdoc, Nx 100454ba9607SSascha WildnerA 100554ba9607SSascha Wildner.Ic \&Bl 100654ba9607SSascha Wildnerlist contains two consecutive 100754ba9607SSascha Wildner.Ic \&It 100854ba9607SSascha Wildnerentries describing the same 100954ba9607SSascha Wildner.Ic \&Er 101054ba9607SSascha Wildnernumber. 1011*99db7d0eSSascha Wildner.It Sy "referenced manual not found" 1012*99db7d0eSSascha Wildner.Pq mdoc 1013*99db7d0eSSascha WildnerAn 1014*99db7d0eSSascha Wildner.Ic \&Xr 1015*99db7d0eSSascha Wildnermacro references a manual page that was not found. 1016*99db7d0eSSascha WildnerWhen running with 1017*99db7d0eSSascha Wildner.Fl W Cm base , 1018*99db7d0eSSascha Wildnerthe search is restricted to the base system, by default to 1019*99db7d0eSSascha Wildner.Pa /usr/share/man : Ns Pa /usr/X11R6/man . 1020*99db7d0eSSascha WildnerThis path can be configured at compile time using the 1021*99db7d0eSSascha Wildner.Dv MANPATH_BASE 1022*99db7d0eSSascha Wildnerpreprocessor macro. 1023*99db7d0eSSascha WildnerWhen running with 1024*99db7d0eSSascha Wildner.Fl W Cm style , 1025*99db7d0eSSascha Wildnerthe search is done along the full search path as described in the 1026*99db7d0eSSascha Wildner.Xr man 1 1027*99db7d0eSSascha Wildnermanual page, respecting the 1028*99db7d0eSSascha Wildner.Fl m 1029*99db7d0eSSascha Wildnerand 1030*99db7d0eSSascha Wildner.Fl M 1031*99db7d0eSSascha Wildnercommand line options, the 1032*99db7d0eSSascha Wildner.Ev MANPATH 1033*99db7d0eSSascha Wildnerenvironment variable, the 1034*99db7d0eSSascha Wildner.Xr man.conf 5 1035*99db7d0eSSascha Wildnerfile and falling back to the default of 1036*99db7d0eSSascha Wildner.Pa /usr/share/man : Ns Pa /usr/X11R6/man : Ns Pa /usr/local/man , 1037*99db7d0eSSascha Wildneralso configurable at compile time using the 1038*99db7d0eSSascha Wildner.Dv MANPATH_DEFAULT 1039*99db7d0eSSascha Wildnerpreprocessor macro. 104054ba9607SSascha Wildner.It Sy "trailing delimiter" 104154ba9607SSascha Wildner.Pq mdoc 104254ba9607SSascha WildnerThe last argument of an 104354ba9607SSascha Wildner.Ic \&Ex , \&Fo , \&Nd , \&Nm , \&Os , \&Sh , \&Ss , \&St , 104454ba9607SSascha Wildneror 104554ba9607SSascha Wildner.Ic \&Sx 104654ba9607SSascha Wildnermacro ends with a trailing delimiter. 104754ba9607SSascha WildnerThis is usually bad style and often indicates typos. 104854ba9607SSascha WildnerMost likely, the delimiter can be removed. 104954ba9607SSascha Wildner.It Sy "no blank before trailing delimiter" 105054ba9607SSascha Wildner.Pq mdoc 105154ba9607SSascha WildnerThe last argument of a macro that supports trailing delimiter 105254ba9607SSascha Wildnerarguments is longer than one byte and ends with a trailing delimiter. 105354ba9607SSascha WildnerConsider inserting a blank such that the delimiter becomes a separate 105454ba9607SSascha Wildnerargument, thus moving it out of the scope of the macro. 105554ba9607SSascha Wildner.It Sy "fill mode already enabled, skipping" 105654ba9607SSascha Wildner.Pq man 105754ba9607SSascha WildnerA 105854ba9607SSascha Wildner.Ic \&fi 105954ba9607SSascha Wildnerrequest occurs even though the document is still in fill mode, 106054ba9607SSascha Wildneror already switched back to fill mode. 106154ba9607SSascha WildnerIt has no effect. 106254ba9607SSascha Wildner.It Sy "fill mode already disabled, skipping" 106354ba9607SSascha Wildner.Pq man 106454ba9607SSascha WildnerAn 106554ba9607SSascha Wildner.Ic \&nf 106654ba9607SSascha Wildnerrequest occurs even though the document already switched to no-fill mode 106754ba9607SSascha Wildnerand did not switch back to fill mode yet. 106854ba9607SSascha WildnerIt has no effect. 1069*99db7d0eSSascha Wildner.It Sy "input text line longer than 80 bytes" 1070*99db7d0eSSascha WildnerConsider breaking the input text line 1071*99db7d0eSSascha Wildnerat one of the blank characters before column 80. 107254ba9607SSascha Wildner.It Sy "verbatim \(dq--\(dq, maybe consider using \e(em" 107354ba9607SSascha Wildner.Pq mdoc 107454ba9607SSascha WildnerEven though the ASCII output device renders an em-dash as 107554ba9607SSascha Wildner.Qq \-\- , 107654ba9607SSascha Wildnerthat is not a good way to write it in an input file 107754ba9607SSascha Wildnerbecause it renders poorly on all other output devices. 107854ba9607SSascha Wildner.It Sy "function name without markup" 107954ba9607SSascha Wildner.Pq mdoc 108054ba9607SSascha WildnerA word followed by an empty pair of parentheses occurs on a text line. 108154ba9607SSascha WildnerConsider using an 108254ba9607SSascha Wildner.Ic \&Fn 108354ba9607SSascha Wildneror 108454ba9607SSascha Wildner.Ic \&Xr 108554ba9607SSascha Wildnermacro. 108654ba9607SSascha Wildner.It Sy "whitespace at end of input line" 108754ba9607SSascha Wildner.Pq mdoc , man , roff 108854ba9607SSascha WildnerWhitespace at the end of input lines is almost never semantically 108954ba9607SSascha Wildnersignificant \(em but in the odd case where it might be, it is 109054ba9607SSascha Wildnerextremely confusing when reviewing and maintaining documents. 109154ba9607SSascha Wildner.It Sy "bad comment style" 109254ba9607SSascha Wildner.Pq roff 109354ba9607SSascha WildnerComment lines start with a dot, a backslash, and a double-quote character. 109454ba9607SSascha WildnerThe 109554ba9607SSascha Wildner.Nm 109654ba9607SSascha Wildnerutility treats the line as a comment line even without the backslash, 109754ba9607SSascha Wildnerbut leaving out the backslash might not be portable. 109854ba9607SSascha Wildner.El 1099070c62a6SFranco Fichtner.Ss Warnings related to the document prologue 1100070c62a6SFranco Fichtner.Bl -ohang 1101070c62a6SFranco Fichtner.It Sy "missing manual title, using UNTITLED" 1102070c62a6SFranco Fichtner.Pq mdoc 1103070c62a6SFranco FichtnerA 1104070c62a6SFranco Fichtner.Ic \&Dt 1105070c62a6SFranco Fichtnermacro has no arguments, or there is no 1106070c62a6SFranco Fichtner.Ic \&Dt 1107070c62a6SFranco Fichtnermacro before the first non-prologue macro. 1108070c62a6SFranco Fichtner.It Sy "missing manual title, using \(dq\(dq" 1109070c62a6SFranco Fichtner.Pq man 1110070c62a6SFranco FichtnerThere is no 1111070c62a6SFranco Fichtner.Ic \&TH 1112070c62a6SFranco Fichtnermacro, or it has no arguments. 1113070c62a6SFranco Fichtner.It Sy "missing manual section, using \(dq\(dq" 1114070c62a6SFranco Fichtner.Pq mdoc , man 1115070c62a6SFranco FichtnerA 1116070c62a6SFranco Fichtner.Ic \&Dt 1117070c62a6SFranco Fichtneror 1118070c62a6SFranco Fichtner.Ic \&TH 1119070c62a6SFranco Fichtnermacro lacks the mandatory section argument. 1120070c62a6SFranco Fichtner.It Sy "unknown manual section" 1121070c62a6SFranco Fichtner.Pq mdoc 1122070c62a6SFranco FichtnerThe section number in a 1123070c62a6SFranco Fichtner.Ic \&Dt 1124070c62a6SFranco Fichtnerline is invalid, but still used. 1125*99db7d0eSSascha Wildner.It Sy "filename/section mismatch" 1126*99db7d0eSSascha Wildner.Pq mdoc , man 1127*99db7d0eSSascha WildnerThe name of the input file being processed is known and its file 1128*99db7d0eSSascha Wildnername extension starts with a non-zero digit, but the 1129*99db7d0eSSascha Wildner.Ic \&Dt 1130*99db7d0eSSascha Wildneror 1131*99db7d0eSSascha Wildner.Ic \&TH 1132*99db7d0eSSascha Wildnermacro contains a 1133*99db7d0eSSascha Wildner.Ar section 1134*99db7d0eSSascha Wildnerargument that starts with a different non-zero digit. 1135*99db7d0eSSascha WildnerThe 1136*99db7d0eSSascha Wildner.Ar section 1137*99db7d0eSSascha Wildnerargument is used as provided anyway. 1138*99db7d0eSSascha WildnerConsider checking whether the file name or the argument need a correction. 1139*99db7d0eSSascha Wildner.It Sy "missing date, using \(dq\(dq" 1140070c62a6SFranco Fichtner.Pq mdoc, man 1141070c62a6SFranco FichtnerThe document was parsed as 1142070c62a6SFranco Fichtner.Xr mdoc 7 1143070c62a6SFranco Fichtnerand it has no 1144070c62a6SFranco Fichtner.Ic \&Dd 1145070c62a6SFranco Fichtnermacro, or the 1146070c62a6SFranco Fichtner.Ic \&Dd 1147070c62a6SFranco Fichtnermacro has no arguments or only empty arguments; 1148070c62a6SFranco Fichtneror the document was parsed as 1149070c62a6SFranco Fichtner.Xr man 7 1150070c62a6SFranco Fichtnerand it has no 1151070c62a6SFranco Fichtner.Ic \&TH 1152070c62a6SFranco Fichtnermacro, or the 1153070c62a6SFranco Fichtner.Ic \&TH 1154070c62a6SFranco Fichtnermacro has less than three arguments or its third argument is empty. 1155070c62a6SFranco Fichtner.It Sy "cannot parse date, using it verbatim" 1156070c62a6SFranco Fichtner.Pq mdoc , man 1157070c62a6SFranco FichtnerThe date given in a 1158070c62a6SFranco Fichtner.Ic \&Dd 1159070c62a6SFranco Fichtneror 1160070c62a6SFranco Fichtner.Ic \&TH 1161070c62a6SFranco Fichtnermacro does not follow the conventional format. 116254ba9607SSascha Wildner.It Sy "date in the future, using it anyway" 116354ba9607SSascha Wildner.Pq mdoc , man 116454ba9607SSascha WildnerThe date given in a 116554ba9607SSascha Wildner.Ic \&Dd 116654ba9607SSascha Wildneror 116754ba9607SSascha Wildner.Ic \&TH 116854ba9607SSascha Wildnermacro is more than a day ahead of the current system 116954ba9607SSascha Wildner.Xr time 3 . 1170070c62a6SFranco Fichtner.It Sy "missing Os macro, using \(dq\(dq" 1171070c62a6SFranco Fichtner.Pq mdoc 1172070c62a6SFranco FichtnerThe default or current system is not shown in this case. 1173070c62a6SFranco Fichtner.It Sy "late prologue macro" 1174070c62a6SFranco Fichtner.Pq mdoc 1175070c62a6SFranco FichtnerA 1176070c62a6SFranco Fichtner.Ic \&Dd 1177070c62a6SFranco Fichtneror 1178070c62a6SFranco Fichtner.Ic \&Os 1179070c62a6SFranco Fichtnermacro occurs after some non-prologue macro, but still takes effect. 1180070c62a6SFranco Fichtner.It Sy "prologue macros out of order" 1181070c62a6SFranco Fichtner.Pq mdoc 1182070c62a6SFranco FichtnerThe prologue macros are not given in the conventional order 1183070c62a6SFranco Fichtner.Ic \&Dd , 1184070c62a6SFranco Fichtner.Ic \&Dt , 1185070c62a6SFranco Fichtner.Ic \&Os . 1186070c62a6SFranco FichtnerAll three macros are used even when given in another order. 1187070c62a6SFranco Fichtner.El 1188070c62a6SFranco Fichtner.Ss Warnings regarding document structure 1189070c62a6SFranco Fichtner.Bl -ohang 1190070c62a6SFranco Fichtner.It Sy ".so is fragile, better use ln(1)" 1191070c62a6SFranco Fichtner.Pq roff 1192070c62a6SFranco FichtnerIncluding files only works when the parser program runs with the correct 1193070c62a6SFranco Fichtnercurrent working directory. 1194070c62a6SFranco Fichtner.It Sy "no document body" 1195070c62a6SFranco Fichtner.Pq mdoc , man 1196070c62a6SFranco FichtnerThe document body contains neither text nor macros. 1197070c62a6SFranco FichtnerAn empty document is shown, consisting only of a header and a footer line. 1198070c62a6SFranco Fichtner.It Sy "content before first section header" 1199070c62a6SFranco Fichtner.Pq mdoc , man 1200070c62a6SFranco FichtnerSome macros or text precede the first 1201070c62a6SFranco Fichtner.Ic \&Sh 1202070c62a6SFranco Fichtneror 1203070c62a6SFranco Fichtner.Ic \&SH 1204070c62a6SFranco Fichtnersection header. 1205070c62a6SFranco FichtnerThe offending macros and text are parsed and added to the top level 1206070c62a6SFranco Fichtnerof the syntax tree, outside any section block. 1207070c62a6SFranco Fichtner.It Sy "first section is not NAME" 1208070c62a6SFranco Fichtner.Pq mdoc 1209070c62a6SFranco FichtnerThe argument of the first 1210070c62a6SFranco Fichtner.Ic \&Sh 1211070c62a6SFranco Fichtnermacro is not 1212070c62a6SFranco Fichtner.Sq NAME . 1213070c62a6SFranco FichtnerThis may confuse 1214070c62a6SFranco Fichtner.Xr makewhatis 8 1215070c62a6SFranco Fichtnerand 1216070c62a6SFranco Fichtner.Xr apropos 1 . 121754ba9607SSascha Wildner.It Sy "NAME section without Nm before Nd" 1218070c62a6SFranco Fichtner.Pq mdoc 121954ba9607SSascha WildnerThe NAME section does not contain any 122054ba9607SSascha Wildner.Ic \&Nm 122154ba9607SSascha Wildnerchild macro before the first 1222070c62a6SFranco Fichtner.Ic \&Nd 122354ba9607SSascha Wildnermacro. 122454ba9607SSascha Wildner.It Sy "NAME section without description" 122554ba9607SSascha Wildner.Pq mdoc 122654ba9607SSascha WildnerThe NAME section lacks the mandatory 122754ba9607SSascha Wildner.Ic \&Nd 122854ba9607SSascha Wildnerchild macro. 122954ba9607SSascha Wildner.It Sy "description not at the end of NAME" 123054ba9607SSascha Wildner.Pq mdoc 123154ba9607SSascha WildnerThe NAME section does contain an 123254ba9607SSascha Wildner.Ic \&Nd 123354ba9607SSascha Wildnerchild macro, but other content follows it. 123454ba9607SSascha Wildner.It Sy "bad NAME section content" 123554ba9607SSascha Wildner.Pq mdoc 123654ba9607SSascha WildnerThe NAME section contains plain text or macros other than 123754ba9607SSascha Wildner.Ic \&Nm 1238070c62a6SFranco Fichtnerand 123954ba9607SSascha Wildner.Ic \&Nd . 124054ba9607SSascha Wildner.It Sy "missing comma before name" 124154ba9607SSascha Wildner.Pq mdoc 124254ba9607SSascha WildnerThe NAME section contains an 124354ba9607SSascha Wildner.Ic \&Nm 124454ba9607SSascha Wildnermacro that is neither the first one nor preceded by a comma. 124554ba9607SSascha Wildner.It Sy "missing description line, using \(dq\(dq" 124654ba9607SSascha Wildner.Pq mdoc 124754ba9607SSascha WildnerThe 124854ba9607SSascha Wildner.Ic \&Nd 124954ba9607SSascha Wildnermacro lacks the required argument. 125054ba9607SSascha WildnerThe title line of the manual will end after the dash. 125154ba9607SSascha Wildner.It Sy "description line outside NAME section" 125254ba9607SSascha Wildner.Pq mdoc 125354ba9607SSascha WildnerAn 125454ba9607SSascha Wildner.Ic \&Nd 125554ba9607SSascha Wildnermacro appears outside the NAME section. 125654ba9607SSascha WildnerThe arguments are printed anyway and the following text is used for 125754ba9607SSascha Wildner.Xr apropos 1 , 125854ba9607SSascha Wildnerbut none of that behaviour is portable. 1259070c62a6SFranco Fichtner.It Sy "sections out of conventional order" 1260070c62a6SFranco Fichtner.Pq mdoc 1261070c62a6SFranco FichtnerA standard section occurs after another section it usually precedes. 1262070c62a6SFranco FichtnerAll section titles are used as given, 1263070c62a6SFranco Fichtnerand the order of sections is not changed. 1264070c62a6SFranco Fichtner.It Sy "duplicate section title" 1265070c62a6SFranco Fichtner.Pq mdoc 1266070c62a6SFranco FichtnerThe same standard section title occurs more than once. 1267070c62a6SFranco Fichtner.It Sy "unexpected section" 1268070c62a6SFranco Fichtner.Pq mdoc 1269070c62a6SFranco FichtnerA standard section header occurs in a section of the manual 1270070c62a6SFranco Fichtnerwhere it normally isn't useful. 127154ba9607SSascha Wildner.It Sy "cross reference to self" 127254ba9607SSascha Wildner.Pq mdoc 127354ba9607SSascha WildnerAn 127454ba9607SSascha Wildner.Ic \&Xr 127554ba9607SSascha Wildnermacro refers to a name and section matching the section of the present 127654ba9607SSascha Wildnermanual page and a name mentioned in an 127754ba9607SSascha Wildner.Ic \&Nm 127854ba9607SSascha Wildnermacro in the NAME or SYNOPSIS section, or in an 127954ba9607SSascha Wildner.Ic \&Fn 128054ba9607SSascha Wildneror 128154ba9607SSascha Wildner.Ic \&Fo 128254ba9607SSascha Wildnermacro in the SYNOPSIS. 128354ba9607SSascha WildnerConsider using 128454ba9607SSascha Wildner.Ic \&Nm 128554ba9607SSascha Wildneror 128654ba9607SSascha Wildner.Ic \&Fn 128754ba9607SSascha Wildnerinstead of 128854ba9607SSascha Wildner.Ic \&Xr . 128954ba9607SSascha Wildner.It Sy "unusual Xr order" 129054ba9607SSascha Wildner.Pq mdoc 129154ba9607SSascha WildnerIn the SEE ALSO section, an 129254ba9607SSascha Wildner.Ic \&Xr 129354ba9607SSascha Wildnermacro with a lower section number follows one with a higher number, 129454ba9607SSascha Wildneror two 129554ba9607SSascha Wildner.Ic \&Xr 129654ba9607SSascha Wildnermacros referring to the same section are out of alphabetical order. 129754ba9607SSascha Wildner.It Sy "unusual Xr punctuation" 129854ba9607SSascha Wildner.Pq mdoc 129954ba9607SSascha WildnerIn the SEE ALSO section, punctuation between two 130054ba9607SSascha Wildner.Ic \&Xr 130154ba9607SSascha Wildnermacros differs from a single comma, or there is trailing punctuation 130254ba9607SSascha Wildnerafter the last 130354ba9607SSascha Wildner.Ic \&Xr 130454ba9607SSascha Wildnermacro. 130554ba9607SSascha Wildner.It Sy "AUTHORS section without An macro" 130654ba9607SSascha Wildner.Pq mdoc 130754ba9607SSascha WildnerAn AUTHORS sections contains no 130854ba9607SSascha Wildner.Ic \&An 130954ba9607SSascha Wildnermacros, or only empty ones. 131054ba9607SSascha WildnerProbably, there are author names lacking markup. 1311070c62a6SFranco Fichtner.El 1312070c62a6SFranco Fichtner.Ss "Warnings related to macros and nesting" 1313070c62a6SFranco Fichtner.Bl -ohang 1314070c62a6SFranco Fichtner.It Sy "obsolete macro" 1315070c62a6SFranco Fichtner.Pq mdoc 1316070c62a6SFranco FichtnerSee the 1317070c62a6SFranco Fichtner.Xr mdoc 7 1318070c62a6SFranco Fichtnermanual for replacements. 131954ba9607SSascha Wildner.It Sy "macro neither callable nor escaped" 132054ba9607SSascha Wildner.Pq mdoc 132154ba9607SSascha WildnerThe name of a macro that is not callable appears on a macro line. 132254ba9607SSascha WildnerIt is printed verbatim. 132354ba9607SSascha WildnerIf the intention is to call it, move it to its own input line; 132454ba9607SSascha Wildnerotherwise, escape it by prepending 132554ba9607SSascha Wildner.Sq \e& . 1326070c62a6SFranco Fichtner.It Sy "skipping paragraph macro" 1327070c62a6SFranco FichtnerIn 1328070c62a6SFranco Fichtner.Xr mdoc 7 1329070c62a6SFranco Fichtnerdocuments, this happens 1330070c62a6SFranco Fichtner.Bl -dash -compact 1331070c62a6SFranco Fichtner.It 1332070c62a6SFranco Fichtnerat the beginning and end of sections and subsections 1333070c62a6SFranco Fichtner.It 1334070c62a6SFranco Fichtnerright before non-compact lists and displays 1335070c62a6SFranco Fichtner.It 1336070c62a6SFranco Fichtnerat the end of items in non-column, non-compact lists 1337070c62a6SFranco Fichtner.It 1338070c62a6SFranco Fichtnerand for multiple consecutive paragraph macros. 1339070c62a6SFranco Fichtner.El 1340070c62a6SFranco FichtnerIn 1341070c62a6SFranco Fichtner.Xr man 7 1342070c62a6SFranco Fichtnerdocuments, it happens 1343070c62a6SFranco Fichtner.Bl -dash -compact 1344070c62a6SFranco Fichtner.It 1345070c62a6SFranco Fichtnerfor empty 1346070c62a6SFranco Fichtner.Ic \&P , 1347070c62a6SFranco Fichtner.Ic \&PP , 1348070c62a6SFranco Fichtnerand 1349070c62a6SFranco Fichtner.Ic \&LP 1350070c62a6SFranco Fichtnermacros 1351070c62a6SFranco Fichtner.It 1352070c62a6SFranco Fichtnerfor 1353070c62a6SFranco Fichtner.Ic \&IP 1354070c62a6SFranco Fichtnermacros having neither head nor body arguments 1355070c62a6SFranco Fichtner.It 1356070c62a6SFranco Fichtnerfor 1357070c62a6SFranco Fichtner.Ic \&br 1358070c62a6SFranco Fichtneror 1359070c62a6SFranco Fichtner.Ic \&sp 1360070c62a6SFranco Fichtnerright after 1361070c62a6SFranco Fichtner.Ic \&SH 1362070c62a6SFranco Fichtneror 1363070c62a6SFranco Fichtner.Ic \&SS 1364070c62a6SFranco Fichtner.El 1365070c62a6SFranco Fichtner.It Sy "moving paragraph macro out of list" 1366070c62a6SFranco Fichtner.Pq mdoc 1367070c62a6SFranco FichtnerA list item in a 1368070c62a6SFranco Fichtner.Ic \&Bl 1369070c62a6SFranco Fichtnerlist contains a trailing paragraph macro. 1370070c62a6SFranco FichtnerThe paragraph macro is moved after the end of the list. 1371070c62a6SFranco Fichtner.It Sy "skipping no-space macro" 1372070c62a6SFranco Fichtner.Pq mdoc 1373070c62a6SFranco FichtnerAn input line begins with an 1374070c62a6SFranco Fichtner.Ic \&Ns 137554ba9607SSascha Wildnermacro, or the next argument after an 137654ba9607SSascha Wildner.Ic \&Ns 137754ba9607SSascha Wildnermacro is an isolated closing delimiter. 1378070c62a6SFranco FichtnerThe macro is ignored. 1379070c62a6SFranco Fichtner.It Sy "blocks badly nested" 1380070c62a6SFranco Fichtner.Pq mdoc 1381070c62a6SFranco FichtnerIf two blocks intersect, one should completely contain the other. 1382070c62a6SFranco FichtnerOtherwise, rendered output is likely to look strange in any output 1383070c62a6SFranco Fichtnerformat, and rendering in SGML-based output formats is likely to be 1384070c62a6SFranco Fichtneroutright wrong because such languages do not support badly nested 1385070c62a6SFranco Fichtnerblocks at all. 1386070c62a6SFranco FichtnerTypical examples of badly nested blocks are 1387070c62a6SFranco Fichtner.Qq Ic \&Ao \&Bo \&Ac \&Bc 1388070c62a6SFranco Fichtnerand 1389070c62a6SFranco Fichtner.Qq Ic \&Ao \&Bq \&Ac . 1390070c62a6SFranco FichtnerIn these examples, 1391070c62a6SFranco Fichtner.Ic \&Ac 1392070c62a6SFranco Fichtnerbreaks 1393070c62a6SFranco Fichtner.Ic \&Bo 1394070c62a6SFranco Fichtnerand 1395070c62a6SFranco Fichtner.Ic \&Bq , 1396070c62a6SFranco Fichtnerrespectively. 1397070c62a6SFranco Fichtner.It Sy "nested displays are not portable" 1398070c62a6SFranco Fichtner.Pq mdoc 1399070c62a6SFranco FichtnerA 1400070c62a6SFranco Fichtner.Ic \&Bd , 1401070c62a6SFranco Fichtner.Ic \&D1 , 1402070c62a6SFranco Fichtneror 1403070c62a6SFranco Fichtner.Ic \&Dl 1404070c62a6SFranco Fichtnerdisplay occurs nested inside another 1405070c62a6SFranco Fichtner.Ic \&Bd 1406070c62a6SFranco Fichtnerdisplay. 1407070c62a6SFranco FichtnerThis works with 1408070c62a6SFranco Fichtner.Nm , 1409070c62a6SFranco Fichtnerbut fails with most other implementations. 1410070c62a6SFranco Fichtner.It Sy "moving content out of list" 1411070c62a6SFranco Fichtner.Pq mdoc 1412070c62a6SFranco FichtnerA 1413070c62a6SFranco Fichtner.Ic \&Bl 1414070c62a6SFranco Fichtnerlist block contains text or macros before the first 1415070c62a6SFranco Fichtner.Ic \&It 1416070c62a6SFranco Fichtnermacro. 1417070c62a6SFranco FichtnerThe offending children are moved before the beginning of the list. 141854ba9607SSascha Wildner.It Sy "first macro on line" 141954ba9607SSascha WildnerInside a 142054ba9607SSascha Wildner.Ic \&Bl Fl column 142154ba9607SSascha Wildnerlist, a 142254ba9607SSascha Wildner.Ic \&Ta 142354ba9607SSascha Wildnermacro occurs as the first macro on a line, which is not portable. 1424070c62a6SFranco Fichtner.It Sy "line scope broken" 1425070c62a6SFranco Fichtner.Pq man 1426070c62a6SFranco FichtnerWhile parsing the next-line scope of the previous macro, 1427070c62a6SFranco Fichtneranother macro is found that prematurely terminates the previous one. 1428070c62a6SFranco FichtnerThe previous, interrupted macro is deleted from the parse tree. 1429070c62a6SFranco Fichtner.El 1430070c62a6SFranco Fichtner.Ss "Warnings related to missing arguments" 1431070c62a6SFranco Fichtner.Bl -ohang 1432070c62a6SFranco Fichtner.It Sy "skipping empty request" 143354ba9607SSascha Wildner.Pq roff , eqn 143454ba9607SSascha WildnerThe macro name is missing from a macro definition request, 143554ba9607SSascha Wildneror an 143654ba9607SSascha Wildner.Xr eqn 7 143754ba9607SSascha Wildnercontrol statement or operation keyword lacks its required argument. 1438070c62a6SFranco Fichtner.It Sy "conditional request controls empty scope" 1439070c62a6SFranco Fichtner.Pq roff 1440070c62a6SFranco FichtnerA conditional request is only useful if any of the following 1441070c62a6SFranco Fichtnerfollows it on the same logical input line: 1442070c62a6SFranco Fichtner.Bl -dash -compact 1443070c62a6SFranco Fichtner.It 1444070c62a6SFranco FichtnerThe 1445070c62a6SFranco Fichtner.Sq \e{ 1446070c62a6SFranco Fichtnerkeyword to open a multi-line scope. 1447070c62a6SFranco Fichtner.It 1448070c62a6SFranco FichtnerA request or macro or some text, resulting in a single-line scope. 1449070c62a6SFranco Fichtner.It 1450070c62a6SFranco FichtnerThe immediate end of the logical line without any intervening whitespace, 1451070c62a6SFranco Fichtnerresulting in next-line scope. 1452070c62a6SFranco Fichtner.El 1453070c62a6SFranco FichtnerHere, a conditional request is followed by trailing whitespace only, 1454070c62a6SFranco Fichtnerand there is no other content on its logical input line. 1455070c62a6SFranco FichtnerNote that it doesn't matter whether the logical input line is split 1456070c62a6SFranco Fichtneracross multiple physical input lines using 1457070c62a6SFranco Fichtner.Sq \e 1458070c62a6SFranco Fichtnerline continuation characters. 1459070c62a6SFranco FichtnerThis is one of the rare cases 1460070c62a6SFranco Fichtnerwhere trailing whitespace is syntactically significant. 1461070c62a6SFranco FichtnerThe conditional request controls a scope containing whitespace only, 1462070c62a6SFranco Fichtnerso it is unlikely to have a significant effect, 1463070c62a6SFranco Fichtnerexcept that it may control a following 1464070c62a6SFranco Fichtner.Ic \&el 1465070c62a6SFranco Fichtnerclause. 1466070c62a6SFranco Fichtner.It Sy "skipping empty macro" 1467070c62a6SFranco Fichtner.Pq mdoc 1468070c62a6SFranco FichtnerThe indicated macro has no arguments and hence no effect. 146954ba9607SSascha Wildner.It Sy "empty block" 147054ba9607SSascha Wildner.Pq mdoc , man 147154ba9607SSascha WildnerA 147254ba9607SSascha Wildner.Ic \&Bd , 147354ba9607SSascha Wildner.Ic \&Bk , 147454ba9607SSascha Wildner.Ic \&Bl , 147554ba9607SSascha Wildner.Ic \&D1 , 147654ba9607SSascha Wildner.Ic \&Dl , 147754ba9607SSascha Wildner.Ic \&MT , 147854ba9607SSascha Wildner.Ic \&RS , 147954ba9607SSascha Wildneror 148054ba9607SSascha Wildner.Ic \&UR 148154ba9607SSascha Wildnerblock contains nothing in its body and will produce no output. 1482070c62a6SFranco Fichtner.It Sy "empty argument, using 0n" 1483070c62a6SFranco Fichtner.Pq mdoc 1484070c62a6SFranco FichtnerThe required width is missing after 1485070c62a6SFranco Fichtner.Ic \&Bd 1486070c62a6SFranco Fichtneror 1487070c62a6SFranco Fichtner.Ic \&Bl 1488070c62a6SFranco Fichtner.Fl offset 1489070c62a6SFranco Fichtneror 1490070c62a6SFranco Fichtner.Fl width . 1491070c62a6SFranco Fichtner.It Sy "missing display type, using -ragged" 1492070c62a6SFranco Fichtner.Pq mdoc 1493070c62a6SFranco FichtnerThe 1494070c62a6SFranco Fichtner.Ic \&Bd 1495070c62a6SFranco Fichtnermacro is invoked without the required display type. 1496070c62a6SFranco Fichtner.It Sy "list type is not the first argument" 1497070c62a6SFranco Fichtner.Pq mdoc 1498070c62a6SFranco FichtnerIn a 1499070c62a6SFranco Fichtner.Ic \&Bl 1500070c62a6SFranco Fichtnermacro, at least one other argument precedes the type argument. 150180387638SSascha WildnerThe 150280387638SSascha Wildner.Nm 1503070c62a6SFranco Fichtnerutility copes with any argument order, but some other 1504070c62a6SFranco Fichtner.Xr mdoc 7 1505070c62a6SFranco Fichtnerimplementations do not. 1506070c62a6SFranco Fichtner.It Sy "missing -width in -tag list, using 8n" 1507070c62a6SFranco Fichtner.Pq mdoc 1508070c62a6SFranco FichtnerEvery 1509070c62a6SFranco Fichtner.Ic \&Bl 1510070c62a6SFranco Fichtnermacro having the 1511070c62a6SFranco Fichtner.Fl tag 1512070c62a6SFranco Fichtnerargument requires 1513070c62a6SFranco Fichtner.Fl width , 1514070c62a6SFranco Fichtnertoo. 1515070c62a6SFranco Fichtner.It Sy "missing utility name, using \(dq\(dq" 1516070c62a6SFranco Fichtner.Pq mdoc 1517070c62a6SFranco FichtnerThe 1518070c62a6SFranco Fichtner.Ic \&Ex Fl std 1519070c62a6SFranco Fichtnermacro is called without an argument before 1520070c62a6SFranco Fichtner.Ic \&Nm 1521070c62a6SFranco Fichtnerhas first been called with an argument. 152254ba9607SSascha Wildner.It Sy "missing function name, using \(dq\(dq" 152354ba9607SSascha Wildner.Pq mdoc 152454ba9607SSascha WildnerThe 152554ba9607SSascha Wildner.Ic \&Fo 152654ba9607SSascha Wildnermacro is called without an argument. 152754ba9607SSascha WildnerNo function name is printed. 1528070c62a6SFranco Fichtner.It Sy "empty head in list item" 1529070c62a6SFranco Fichtner.Pq mdoc 1530070c62a6SFranco FichtnerIn a 1531070c62a6SFranco Fichtner.Ic \&Bl 1532070c62a6SFranco Fichtner.Fl diag , 1533070c62a6SFranco Fichtner.Fl hang , 1534070c62a6SFranco Fichtner.Fl inset , 1535070c62a6SFranco Fichtner.Fl ohang , 1536070c62a6SFranco Fichtneror 1537070c62a6SFranco Fichtner.Fl tag 1538070c62a6SFranco Fichtnerlist, an 1539070c62a6SFranco Fichtner.Ic \&It 1540070c62a6SFranco Fichtnermacro lacks the required argument. 1541070c62a6SFranco FichtnerThe item head is left empty. 1542070c62a6SFranco Fichtner.It Sy "empty list item" 1543070c62a6SFranco Fichtner.Pq mdoc 1544070c62a6SFranco FichtnerIn a 1545070c62a6SFranco Fichtner.Ic \&Bl 1546070c62a6SFranco Fichtner.Fl bullet , 1547070c62a6SFranco Fichtner.Fl dash , 1548070c62a6SFranco Fichtner.Fl enum , 1549070c62a6SFranco Fichtneror 1550070c62a6SFranco Fichtner.Fl hyphen 1551070c62a6SFranco Fichtnerlist, an 1552070c62a6SFranco Fichtner.Ic \&It 1553070c62a6SFranco Fichtnerblock is empty. 1554070c62a6SFranco FichtnerAn empty list item is shown. 155554ba9607SSascha Wildner.It Sy "missing argument, using next line" 155654ba9607SSascha Wildner.Pq mdoc 155754ba9607SSascha WildnerAn 155854ba9607SSascha Wildner.Ic \&It 155954ba9607SSascha Wildnermacro in a 156054ba9607SSascha Wildner.Ic \&Bd Fl column 156154ba9607SSascha Wildnerlist has no arguments. 156254ba9607SSascha WildnerWhile 156354ba9607SSascha Wildner.Nm 156454ba9607SSascha Wildneruses the text or macros of the following line, if any, for the cell, 156554ba9607SSascha Wildnerother formatters may misformat the list. 156654ba9607SSascha Wildner.It Sy "missing font type, using \efR" 1567070c62a6SFranco Fichtner.Pq mdoc 1568070c62a6SFranco FichtnerA 1569070c62a6SFranco Fichtner.Ic \&Bf 1570070c62a6SFranco Fichtnermacro has no argument. 157154ba9607SSascha WildnerIt switches to the default font. 157254ba9607SSascha Wildner.It Sy "unknown font type, using \efR" 1573070c62a6SFranco Fichtner.Pq mdoc 1574070c62a6SFranco FichtnerThe 1575070c62a6SFranco Fichtner.Ic \&Bf 1576070c62a6SFranco Fichtnerargument is invalid. 157754ba9607SSascha WildnerThe default font is used instead. 157854ba9607SSascha Wildner.It Sy "nothing follows prefix" 157954ba9607SSascha Wildner.Pq mdoc 158054ba9607SSascha WildnerA 158154ba9607SSascha Wildner.Ic \&Pf 158254ba9607SSascha Wildnermacro has no argument, or only one argument and no macro follows 158354ba9607SSascha Wildneron the same input line. 158454ba9607SSascha WildnerThis defeats its purpose; in particular, spacing is not suppressed 158554ba9607SSascha Wildnerbefore the text or macros following on the next input line. 158654ba9607SSascha Wildner.It Sy "empty reference block" 158754ba9607SSascha Wildner.Pq mdoc 158854ba9607SSascha WildnerAn 158954ba9607SSascha Wildner.Ic \&Rs 159054ba9607SSascha Wildnermacro is immediately followed by an 159154ba9607SSascha Wildner.Ic \&Re 159254ba9607SSascha Wildnermacro on the next input line. 159354ba9607SSascha WildnerSuch an empty block does not produce any output. 159454ba9607SSascha Wildner.It Sy "missing section argument" 159554ba9607SSascha Wildner.Pq mdoc 159654ba9607SSascha WildnerAn 159754ba9607SSascha Wildner.Ic \&Xr 159854ba9607SSascha Wildnermacro lacks its second, section number argument. 159954ba9607SSascha WildnerThe first argument, i.e. the name, is printed, but without subsequent 160054ba9607SSascha Wildnerparentheses. 1601070c62a6SFranco Fichtner.It Sy "missing -std argument, adding it" 1602070c62a6SFranco Fichtner.Pq mdoc 1603070c62a6SFranco FichtnerAn 1604070c62a6SFranco Fichtner.Ic \&Ex 1605070c62a6SFranco Fichtneror 1606070c62a6SFranco Fichtner.Ic \&Rv 1607070c62a6SFranco Fichtnermacro lacks the required 1608070c62a6SFranco Fichtner.Fl std 1609070c62a6SFranco Fichtnerargument. 1610070c62a6SFranco FichtnerThe 1611070c62a6SFranco Fichtner.Nm 1612070c62a6SFranco Fichtnerutility assumes 1613070c62a6SFranco Fichtner.Fl std 1614070c62a6SFranco Fichtnereven when it is not specified, but other implementations may not. 161554ba9607SSascha Wildner.It Sy "missing option string, using \(dq\(dq" 161654ba9607SSascha Wildner.Pq man 161754ba9607SSascha WildnerThe 161854ba9607SSascha Wildner.Ic \&OP 161954ba9607SSascha Wildnermacro is invoked without any argument. 162054ba9607SSascha WildnerAn empty pair of square brackets is shown. 162154ba9607SSascha Wildner.It Sy "missing resource identifier, using \(dq\(dq" 162254ba9607SSascha Wildner.Pq man 162354ba9607SSascha WildnerThe 162454ba9607SSascha Wildner.Ic \&MT 162554ba9607SSascha Wildneror 162654ba9607SSascha Wildner.Ic \&UR 162754ba9607SSascha Wildnermacro is invoked without any argument. 162854ba9607SSascha WildnerAn empty pair of angle brackets is shown. 162954ba9607SSascha Wildner.It Sy "missing eqn box, using \(dq\(dq" 163054ba9607SSascha Wildner.Pq eqn 163154ba9607SSascha WildnerA diacritic mark or a binary operator is found, 163254ba9607SSascha Wildnerbut there is nothing to the left of it. 163354ba9607SSascha WildnerAn empty box is inserted. 1634070c62a6SFranco Fichtner.El 1635070c62a6SFranco Fichtner.Ss "Warnings related to bad macro arguments" 1636070c62a6SFranco Fichtner.Bl -ohang 1637070c62a6SFranco Fichtner.It Sy "duplicate argument" 1638070c62a6SFranco Fichtner.Pq mdoc 1639070c62a6SFranco FichtnerA 1640070c62a6SFranco Fichtner.Ic \&Bd 1641070c62a6SFranco Fichtneror 1642070c62a6SFranco Fichtner.Ic \&Bl 1643070c62a6SFranco Fichtnermacro has more than one 1644070c62a6SFranco Fichtner.Fl compact , 1645070c62a6SFranco Fichtnermore than one 1646070c62a6SFranco Fichtner.Fl offset , 1647070c62a6SFranco Fichtneror more than one 1648070c62a6SFranco Fichtner.Fl width 1649070c62a6SFranco Fichtnerargument. 1650070c62a6SFranco FichtnerAll but the last instances of these arguments are ignored. 1651070c62a6SFranco Fichtner.It Sy "skipping duplicate argument" 1652070c62a6SFranco Fichtner.Pq mdoc 1653070c62a6SFranco FichtnerAn 1654070c62a6SFranco Fichtner.Ic \&An 1655070c62a6SFranco Fichtnermacro has more than one 1656070c62a6SFranco Fichtner.Fl split 1657070c62a6SFranco Fichtneror 1658070c62a6SFranco Fichtner.Fl nosplit 1659070c62a6SFranco Fichtnerargument. 1660070c62a6SFranco FichtnerAll but the first of these arguments are ignored. 1661070c62a6SFranco Fichtner.It Sy "skipping duplicate display type" 1662070c62a6SFranco Fichtner.Pq mdoc 1663070c62a6SFranco FichtnerA 1664070c62a6SFranco Fichtner.Ic \&Bd 1665070c62a6SFranco Fichtnermacro has more than one type argument; the first one is used. 1666070c62a6SFranco Fichtner.It Sy "skipping duplicate list type" 1667070c62a6SFranco Fichtner.Pq mdoc 1668070c62a6SFranco FichtnerA 1669070c62a6SFranco Fichtner.Ic \&Bl 1670070c62a6SFranco Fichtnermacro has more than one type argument; the first one is used. 1671070c62a6SFranco Fichtner.It Sy "skipping -width argument" 1672070c62a6SFranco Fichtner.Pq mdoc 1673070c62a6SFranco FichtnerA 1674070c62a6SFranco Fichtner.Ic \&Bl 1675070c62a6SFranco Fichtner.Fl column , 1676070c62a6SFranco Fichtner.Fl diag , 1677070c62a6SFranco Fichtner.Fl ohang , 1678070c62a6SFranco Fichtner.Fl inset , 1679070c62a6SFranco Fichtneror 1680070c62a6SFranco Fichtner.Fl item 1681070c62a6SFranco Fichtnerlist has a 1682070c62a6SFranco Fichtner.Fl width 1683070c62a6SFranco Fichtnerargument. 1684070c62a6SFranco FichtnerThat has no effect. 168554ba9607SSascha Wildner.It Sy "wrong number of cells" 168654ba9607SSascha WildnerIn a line of a 168754ba9607SSascha Wildner.Ic \&Bl Fl column 168854ba9607SSascha Wildnerlist, the number of tabs or 168954ba9607SSascha Wildner.Ic \&Ta 169054ba9607SSascha Wildnermacros is less than the number expected from the list header line 169154ba9607SSascha Wildneror exceeds the expected number by more than one. 169254ba9607SSascha WildnerMissing cells remain empty, and all cells exceeding the number of 169354ba9607SSascha Wildnercolumns are joined into one single cell. 1694070c62a6SFranco Fichtner.It Sy "unknown AT&T UNIX version" 1695070c62a6SFranco Fichtner.Pq mdoc 1696070c62a6SFranco FichtnerAn 1697070c62a6SFranco Fichtner.Ic \&At 1698070c62a6SFranco Fichtnermacro has an invalid argument. 1699070c62a6SFranco FichtnerIt is used verbatim, with 1700070c62a6SFranco Fichtner.Qq "AT&T UNIX " 1701070c62a6SFranco Fichtnerprefixed to it. 170254ba9607SSascha Wildner.It Sy "comma in function argument" 170354ba9607SSascha Wildner.Pq mdoc 170454ba9607SSascha WildnerAn argument of an 170554ba9607SSascha Wildner.Ic \&Fa 170654ba9607SSascha Wildneror 170754ba9607SSascha Wildner.Ic \&Fn 170854ba9607SSascha Wildnermacro contains a comma; it should probably be split into two arguments. 170954ba9607SSascha Wildner.It Sy "parenthesis in function name" 171054ba9607SSascha Wildner.Pq mdoc 171154ba9607SSascha WildnerThe first argument of an 171254ba9607SSascha Wildner.Ic \&Fc 171354ba9607SSascha Wildneror 171454ba9607SSascha Wildner.Ic \&Fn 171554ba9607SSascha Wildnermacro contains an opening or closing parenthesis; that's probably wrong, 171654ba9607SSascha Wildnerparentheses are added automatically. 171754ba9607SSascha Wildner.It Sy "unknown library name" 171854ba9607SSascha Wildner.Pq mdoc, not on Ox 171954ba9607SSascha WildnerAn 172054ba9607SSascha Wildner.Ic \&Lb 172154ba9607SSascha Wildnermacro has an unknown name argument and will be rendered as 172254ba9607SSascha Wildner.Qq library Dq Ar name . 1723070c62a6SFranco Fichtner.It Sy "invalid content in Rs block" 1724070c62a6SFranco Fichtner.Pq mdoc 1725070c62a6SFranco FichtnerAn 1726070c62a6SFranco Fichtner.Ic \&Rs 1727070c62a6SFranco Fichtnerblock contains plain text or non-% macros. 1728070c62a6SFranco FichtnerThe bogus content is left in the syntax tree. 1729070c62a6SFranco FichtnerFormatting may be poor. 1730070c62a6SFranco Fichtner.It Sy "invalid Boolean argument" 1731070c62a6SFranco Fichtner.Pq mdoc 1732070c62a6SFranco FichtnerAn 1733070c62a6SFranco Fichtner.Ic \&Sm 1734070c62a6SFranco Fichtnermacro has an argument other than 1735070c62a6SFranco Fichtner.Cm on 1736070c62a6SFranco Fichtneror 1737070c62a6SFranco Fichtner.Cm off . 1738070c62a6SFranco FichtnerThe invalid argument is moved out of the macro, which leaves the macro 1739070c62a6SFranco Fichtnerempty, causing it to toggle the spacing mode. 174054ba9607SSascha Wildner.It Sy "argument contains two font escapes" 174154ba9607SSascha Wildner.Pq roff 174254ba9607SSascha WildnerThe second argument of a 174354ba9607SSascha Wildner.Ic char 174454ba9607SSascha Wildnerrequest contains more than one font escape sequence. 174554ba9607SSascha WildnerA wrong font may remain active after using the character. 1746070c62a6SFranco Fichtner.It Sy "unknown font, skipping request" 174754ba9607SSascha Wildner.Pq man , tbl 1748070c62a6SFranco FichtnerA 1749070c62a6SFranco Fichtner.Xr roff 7 1750070c62a6SFranco Fichtner.Ic \&ft 175154ba9607SSascha Wildnerrequest or a 175254ba9607SSascha Wildner.Xr tbl 7 175354ba9607SSascha Wildner.Ic \&f 175454ba9607SSascha Wildnerlayout modifier has an unknown 175554ba9607SSascha Wildner.Ar font 175654ba9607SSascha Wildnerargument. 175754ba9607SSascha Wildner.It Sy "odd number of characters in request" 175854ba9607SSascha Wildner.Pq roff 175954ba9607SSascha WildnerA 176054ba9607SSascha Wildner.Ic \&tr 176154ba9607SSascha Wildnerrequest contains an odd number of characters. 176254ba9607SSascha WildnerThe last character is mapped to the blank character. 1763070c62a6SFranco Fichtner.El 1764070c62a6SFranco Fichtner.Ss "Warnings related to plain text" 1765070c62a6SFranco Fichtner.Bl -ohang 1766070c62a6SFranco Fichtner.It Sy "blank line in fill mode, using .sp" 1767070c62a6SFranco Fichtner.Pq mdoc 1768070c62a6SFranco FichtnerThe meaning of blank input lines is only well-defined in non-fill mode: 1769070c62a6SFranco FichtnerIn fill mode, line breaks of text input lines are not supposed to be 1770070c62a6SFranco Fichtnersignificant. 1771070c62a6SFranco FichtnerHowever, for compatibility with groff, blank lines in fill mode 1772*99db7d0eSSascha Wildnerare formatted like 1773070c62a6SFranco Fichtner.Ic \&sp 1774070c62a6SFranco Fichtnerrequests. 1775*99db7d0eSSascha WildnerTo request a paragraph break, use 1776*99db7d0eSSascha Wildner.Ic \&Pp 1777*99db7d0eSSascha Wildnerinstead of a blank line. 1778070c62a6SFranco Fichtner.It Sy "tab in filled text" 1779070c62a6SFranco Fichtner.Pq mdoc , man 1780070c62a6SFranco FichtnerThe meaning of tab characters is only well-defined in non-fill mode: 1781070c62a6SFranco FichtnerIn fill mode, whitespace is not supposed to be significant 1782070c62a6SFranco Fichtneron text input lines. 1783070c62a6SFranco FichtnerAs an implementation dependent choice, tab characters on text lines 1784070c62a6SFranco Fichtnerare passed through to the formatters in any case. 1785070c62a6SFranco FichtnerGiven that the text before the tab character will be filled, 1786070c62a6SFranco Fichtnerit is hard to predict which tab stop position the tab will advance to. 178754ba9607SSascha Wildner.It Sy "new sentence, new line" 178854ba9607SSascha Wildner.Pq mdoc 178954ba9607SSascha WildnerA new sentence starts in the middle of a text line. 179054ba9607SSascha WildnerStart it on a new input line to help formatters produce correct spacing. 1791070c62a6SFranco Fichtner.It Sy "invalid escape sequence" 1792070c62a6SFranco Fichtner.Pq roff 1793070c62a6SFranco FichtnerAn escape sequence has an invalid opening argument delimiter, lacks the 179454ba9607SSascha Wildnerclosing argument delimiter, the argument is of an invalid form, or it is 179554ba9607SSascha Wildnera character escape sequence with an invalid name. 1796070c62a6SFranco FichtnerIf the argument is incomplete, 1797070c62a6SFranco Fichtner.Ic \e* 1798070c62a6SFranco Fichtnerand 1799070c62a6SFranco Fichtner.Ic \en 1800070c62a6SFranco Fichtnerexpand to an empty string, 1801070c62a6SFranco Fichtner.Ic \eB 1802070c62a6SFranco Fichtnerto the digit 1803070c62a6SFranco Fichtner.Sq 0 , 1804070c62a6SFranco Fichtnerand 1805070c62a6SFranco Fichtner.Ic \ew 1806070c62a6SFranco Fichtnerto the length of the incomplete argument. 1807070c62a6SFranco FichtnerAll other invalid escape sequences are ignored. 180854ba9607SSascha Wildner.It Sy "undefined escape, printing literally" 180954ba9607SSascha Wildner.Pq roff 181054ba9607SSascha WildnerIn an escape sequence, the first character 181154ba9607SSascha Wildnerright after the leading backslash is invalid. 181254ba9607SSascha WildnerThat character is printed literally, 181354ba9607SSascha Wildnerwhich is equivalent to ignoring the backslash. 1814070c62a6SFranco Fichtner.It Sy "undefined string, using \(dq\(dq" 1815070c62a6SFranco Fichtner.Pq roff 1816070c62a6SFranco FichtnerIf a string is used without being defined before, 1817070c62a6SFranco Fichtnerits value is implicitly set to the empty string. 1818070c62a6SFranco FichtnerHowever, defining strings explicitly before use 1819070c62a6SFranco Fichtnerkeeps the code more readable. 1820070c62a6SFranco Fichtner.El 182154ba9607SSascha Wildner.Ss "Warnings related to tables" 182254ba9607SSascha Wildner.Bl -ohang 182354ba9607SSascha Wildner.It Sy "tbl line starts with span" 182454ba9607SSascha Wildner.Pq tbl 182554ba9607SSascha WildnerThe first cell in a table layout line is a horizontal span 182654ba9607SSascha Wildner.Pq Sq Cm s . 182754ba9607SSascha WildnerData provided for this cell is ignored, and nothing is printed in the cell. 182854ba9607SSascha Wildner.It Sy "tbl column starts with span" 182954ba9607SSascha Wildner.Pq tbl 183054ba9607SSascha WildnerThe first line of a table layout specification 183154ba9607SSascha Wildnerrequests a vertical span 183254ba9607SSascha Wildner.Pq Sq Cm ^ . 183354ba9607SSascha WildnerData provided for this cell is ignored, and nothing is printed in the cell. 183454ba9607SSascha Wildner.It Sy "skipping vertical bar in tbl layout" 183554ba9607SSascha Wildner.Pq tbl 183654ba9607SSascha WildnerA table layout specification contains more than two consecutive vertical bars. 183754ba9607SSascha WildnerA double bar is printed, all additional bars are discarded. 1838070c62a6SFranco Fichtner.El 1839070c62a6SFranco Fichtner.Ss "Errors related to tables" 184054ba9607SSascha Wildner.Bl -ohang 184154ba9607SSascha Wildner.It Sy "non-alphabetic character in tbl options" 184254ba9607SSascha Wildner.Pq tbl 184354ba9607SSascha WildnerThe table options line contains a character other than a letter, 184454ba9607SSascha Wildnerblank, or comma where the beginning of an option name is expected. 184554ba9607SSascha WildnerThe character is ignored. 184654ba9607SSascha Wildner.It Sy "skipping unknown tbl option" 184754ba9607SSascha Wildner.Pq tbl 184854ba9607SSascha WildnerThe table options line contains a string of letters that does not 184954ba9607SSascha Wildnermatch any known option name. 185054ba9607SSascha WildnerThe word is ignored. 185154ba9607SSascha Wildner.It Sy "missing tbl option argument" 185254ba9607SSascha Wildner.Pq tbl 185354ba9607SSascha WildnerA table option that requires an argument is not followed by an 185454ba9607SSascha Wildneropening parenthesis, or the opening parenthesis is immediately 185554ba9607SSascha Wildnerfollowed by a closing parenthesis. 185654ba9607SSascha WildnerThe option is ignored. 185754ba9607SSascha Wildner.It Sy "wrong tbl option argument size" 185854ba9607SSascha Wildner.Pq tbl 185954ba9607SSascha WildnerA table option argument contains an invalid number of characters. 186054ba9607SSascha WildnerBoth the option and the argument are ignored. 186154ba9607SSascha Wildner.It Sy "empty tbl layout" 186254ba9607SSascha Wildner.Pq tbl 186354ba9607SSascha WildnerA table layout specification is completely empty, 186454ba9607SSascha Wildnerspecifying zero lines and zero columns. 186554ba9607SSascha WildnerAs a fallback, a single left-justified column is used. 186654ba9607SSascha Wildner.It Sy "invalid character in tbl layout" 186754ba9607SSascha Wildner.Pq tbl 186854ba9607SSascha WildnerA table layout specification contains a character that can neither 186954ba9607SSascha Wildnerbe interpreted as a layout key character nor as a layout modifier, 187054ba9607SSascha Wildneror a modifier precedes the first key. 187154ba9607SSascha WildnerThe invalid character is discarded. 187254ba9607SSascha Wildner.It Sy "unmatched parenthesis in tbl layout" 187354ba9607SSascha Wildner.Pq tbl 187454ba9607SSascha WildnerA table layout specification contains an opening parenthesis, 187554ba9607SSascha Wildnerbut no matching closing parenthesis. 187654ba9607SSascha WildnerThe rest of the input line, starting from the parenthesis, has no effect. 1877*99db7d0eSSascha Wildner.It Sy "ignoring excessive spacing in tbl layout" 1878*99db7d0eSSascha Wildner.Pq tbl 1879*99db7d0eSSascha WildnerA spacing modifier in a table layout is unreasonably large. 1880*99db7d0eSSascha WildnerThe default spacing of 3n is used instead. 188154ba9607SSascha Wildner.It Sy "tbl without any data cells" 188254ba9607SSascha Wildner.Pq tbl 188354ba9607SSascha WildnerA table does not contain any data cells. 188454ba9607SSascha WildnerIt will probably produce no output. 188554ba9607SSascha Wildner.It Sy "ignoring data in spanned tbl cell" 188654ba9607SSascha Wildner.Pq tbl 188754ba9607SSascha WildnerA table cell is marked as a horizontal span 188854ba9607SSascha Wildner.Pq Sq Cm s 188954ba9607SSascha Wildneror vertical span 189054ba9607SSascha Wildner.Pq Sq Cm ^ 189154ba9607SSascha Wildnerin the table layout, but it contains data. 189254ba9607SSascha WildnerThe data is ignored. 189354ba9607SSascha Wildner.It Sy "ignoring extra tbl data cells" 189454ba9607SSascha Wildner.Pq tbl 189554ba9607SSascha WildnerA data line contains more cells than the corresponding layout line. 189654ba9607SSascha WildnerThe data in the extra cells is ignored. 189754ba9607SSascha Wildner.It Sy "data block open at end of tbl" 189854ba9607SSascha Wildner.Pq tbl 189954ba9607SSascha WildnerA data block is opened with 190054ba9607SSascha Wildner.Cm T{ , 190154ba9607SSascha Wildnerbut never closed with a matching 190254ba9607SSascha Wildner.Cm T} . 190354ba9607SSascha WildnerThe remaining data lines of the table are all put into one cell, 190454ba9607SSascha Wildnerand any remaining cells stay empty. 1905070c62a6SFranco Fichtner.El 1906070c62a6SFranco Fichtner.Ss "Errors related to roff, mdoc, and man code" 1907070c62a6SFranco Fichtner.Bl -ohang 190854ba9607SSascha Wildner.It Sy "duplicate prologue macro" 190954ba9607SSascha Wildner.Pq mdoc 191054ba9607SSascha WildnerOne of the prologue macros occurs more than once. 191154ba9607SSascha WildnerThe last instance overrides all previous ones. 191254ba9607SSascha Wildner.It Sy "skipping late title macro" 191354ba9607SSascha Wildner.Pq mdoc 191454ba9607SSascha WildnerThe 191554ba9607SSascha Wildner.Ic \&Dt 191654ba9607SSascha Wildnermacro appears after the first non-prologue macro. 191754ba9607SSascha WildnerTraditional formatters cannot handle this because 191854ba9607SSascha Wildnerthey write the page header before parsing the document body. 191954ba9607SSascha WildnerEven though this technical restriction does not apply to 192054ba9607SSascha Wildner.Nm , 192154ba9607SSascha Wildnertraditional semantics is preserved. 192254ba9607SSascha WildnerThe late macro is discarded including its arguments. 1923070c62a6SFranco Fichtner.It Sy "input stack limit exceeded, infinite loop?" 1924070c62a6SFranco Fichtner.Pq roff 1925070c62a6SFranco FichtnerExplicit recursion limits are implemented for the following features, 1926070c62a6SFranco Fichtnerin order to prevent infinite loops: 1927070c62a6SFranco Fichtner.Bl -dash -compact 1928070c62a6SFranco Fichtner.It 1929070c62a6SFranco Fichtnerexpansion of nested escape sequences 1930070c62a6SFranco Fichtnerincluding expansion of strings and number registers, 1931070c62a6SFranco Fichtner.It 1932070c62a6SFranco Fichtnerexpansion of nested user-defined macros, 1933070c62a6SFranco Fichtner.It 1934070c62a6SFranco Fichtnerand 1935070c62a6SFranco Fichtner.Ic \&so 1936070c62a6SFranco Fichtnerfile inclusion. 1937070c62a6SFranco Fichtner.El 1938070c62a6SFranco FichtnerWhen a limit is hit, the output is incorrect, typically losing 1939070c62a6SFranco Fichtnersome content, but the parser can continue. 1940070c62a6SFranco Fichtner.It Sy "skipping bad character" 1941070c62a6SFranco Fichtner.Pq mdoc , man , roff 1942070c62a6SFranco FichtnerThe input file contains a byte that is not a printable 1943070c62a6SFranco Fichtner.Xr ascii 7 1944070c62a6SFranco Fichtnercharacter. 1945070c62a6SFranco FichtnerThe message mentions the character number. 1946070c62a6SFranco FichtnerThe offending byte is replaced with a question mark 1947070c62a6SFranco Fichtner.Pq Sq \&? . 1948070c62a6SFranco FichtnerConsider editing the input file to replace the byte with an ASCII 1949070c62a6SFranco Fichtnertransliteration of the intended character. 1950070c62a6SFranco Fichtner.It Sy "skipping unknown macro" 1951070c62a6SFranco Fichtner.Pq mdoc , man , roff 1952070c62a6SFranco FichtnerThe first identifier on a request or macro line is neither recognized as a 1953070c62a6SFranco Fichtner.Xr roff 7 1954070c62a6SFranco Fichtnerrequest, nor as a user-defined macro, nor, respectively, as an 1955070c62a6SFranco Fichtner.Xr mdoc 7 1956070c62a6SFranco Fichtneror 1957070c62a6SFranco Fichtner.Xr man 7 1958070c62a6SFranco Fichtnermacro. 1959070c62a6SFranco FichtnerIt may be mistyped or unsupported. 1960070c62a6SFranco FichtnerThe request or macro is discarded including its arguments. 196154ba9607SSascha Wildner.It Sy "skipping request outside macro" 196254ba9607SSascha Wildner.Pq roff 196354ba9607SSascha WildnerA 196454ba9607SSascha Wildner.Ic shift 196554ba9607SSascha Wildneror 196654ba9607SSascha Wildner.Ic return 196754ba9607SSascha Wildnerrequest occurs outside any macro definition and has no effect. 196854ba9607SSascha Wildner.It Sy "skipping insecure request" 196954ba9607SSascha Wildner.Pq roff 197054ba9607SSascha WildnerAn input file attempted to run a shell command 197154ba9607SSascha Wildneror to read or write an external file. 197254ba9607SSascha WildnerSuch attempts are denied for security reasons. 1973070c62a6SFranco Fichtner.It Sy "skipping item outside list" 197454ba9607SSascha Wildner.Pq mdoc , eqn 1975070c62a6SFranco FichtnerAn 1976070c62a6SFranco Fichtner.Ic \&It 1977070c62a6SFranco Fichtnermacro occurs outside any 1978070c62a6SFranco Fichtner.Ic \&Bl 197954ba9607SSascha Wildnerlist, or an 198054ba9607SSascha Wildner.Xr eqn 7 198154ba9607SSascha Wildner.Ic above 198254ba9607SSascha Wildnerdelimiter occurs outside any pile. 1983070c62a6SFranco FichtnerIt is discarded including its arguments. 1984070c62a6SFranco Fichtner.It Sy "skipping column outside column list" 1985070c62a6SFranco Fichtner.Pq mdoc 1986070c62a6SFranco FichtnerA 1987070c62a6SFranco Fichtner.Ic \&Ta 1988070c62a6SFranco Fichtnermacro occurs outside any 1989070c62a6SFranco Fichtner.Ic \&Bl Fl column 1990070c62a6SFranco Fichtnerblock. 1991070c62a6SFranco FichtnerIt is discarded including its arguments. 1992070c62a6SFranco Fichtner.It Sy "skipping end of block that is not open" 1993070c62a6SFranco Fichtner.Pq mdoc , man , eqn , tbl , roff 1994070c62a6SFranco FichtnerVarious syntax elements can only be used to explicitly close blocks 1995070c62a6SFranco Fichtnerthat have previously been opened. 1996070c62a6SFranco FichtnerAn 1997070c62a6SFranco Fichtner.Xr mdoc 7 1998070c62a6SFranco Fichtnerblock closing macro, a 1999070c62a6SFranco Fichtner.Xr man 7 200054ba9607SSascha Wildner.Ic \&ME , \&RE 2001070c62a6SFranco Fichtneror 2002070c62a6SFranco Fichtner.Ic \&UE 200354ba9607SSascha Wildnermacro, an 200454ba9607SSascha Wildner.Xr eqn 7 200554ba9607SSascha Wildnerright delimiter or closing brace, or the end of an equation, table, or 2006070c62a6SFranco Fichtner.Xr roff 7 2007070c62a6SFranco Fichtnerconditional request is encountered but no matching block is open. 2008070c62a6SFranco FichtnerThe offending request or macro is discarded. 200954ba9607SSascha Wildner.It Sy "fewer RS blocks open, skipping" 201054ba9607SSascha Wildner.Pq man 201154ba9607SSascha WildnerThe 201254ba9607SSascha Wildner.Ic \&RE 201354ba9607SSascha Wildnermacro is invoked with an argument, but less than the specified number of 201454ba9607SSascha Wildner.Ic \&RS 201554ba9607SSascha Wildnerblocks is open. 201654ba9607SSascha WildnerThe 201754ba9607SSascha Wildner.Ic \&RE 201854ba9607SSascha Wildnermacro is discarded. 2019070c62a6SFranco Fichtner.It Sy "inserting missing end of block" 2020070c62a6SFranco Fichtner.Pq mdoc , tbl 2021070c62a6SFranco FichtnerVarious 2022070c62a6SFranco Fichtner.Xr mdoc 7 2023070c62a6SFranco Fichtnermacros as well as tables require explicit closing by dedicated macros. 2024070c62a6SFranco FichtnerA block that doesn't support bad nesting 2025070c62a6SFranco Fichtnerends before all of its children are properly closed. 2026070c62a6SFranco FichtnerThe open child nodes are closed implicitly. 202754ba9607SSascha Wildner.It Sy "appending missing end of block" 2028070c62a6SFranco Fichtner.Pq mdoc , man , eqn , tbl , roff 2029070c62a6SFranco FichtnerAt the end of the document, an explicit 2030070c62a6SFranco Fichtner.Xr mdoc 7 2031070c62a6SFranco Fichtnerblock, a 2032070c62a6SFranco Fichtner.Xr man 7 2033070c62a6SFranco Fichtnernext-line scope or 203454ba9607SSascha Wildner.Ic \&MT , \&RS 2035070c62a6SFranco Fichtneror 2036070c62a6SFranco Fichtner.Ic \&UR 2037070c62a6SFranco Fichtnerblock, an equation, table, or 2038070c62a6SFranco Fichtner.Xr roff 7 2039070c62a6SFranco Fichtnerconditional or ignore block is still open. 2040070c62a6SFranco FichtnerThe open block is closed implicitly. 2041070c62a6SFranco Fichtner.It Sy "escaped character not allowed in a name" 2042070c62a6SFranco Fichtner.Pq roff 2043070c62a6SFranco FichtnerMacro, string and register identifiers consist of printable, 2044070c62a6SFranco Fichtnernon-whitespace ASCII characters. 2045070c62a6SFranco FichtnerEscape sequences and characters and strings expressed in terms of them 2046070c62a6SFranco Fichtnercannot form part of a name. 2047070c62a6SFranco FichtnerThe first argument of an 2048070c62a6SFranco Fichtner.Ic \&am , 2049070c62a6SFranco Fichtner.Ic \&as , 2050070c62a6SFranco Fichtner.Ic \&de , 2051070c62a6SFranco Fichtner.Ic \&ds , 2052070c62a6SFranco Fichtner.Ic \&nr , 2053070c62a6SFranco Fichtneror 2054070c62a6SFranco Fichtner.Ic \&rr 2055070c62a6SFranco Fichtnerrequest, or any argument of an 2056070c62a6SFranco Fichtner.Ic \&rm 2057070c62a6SFranco Fichtnerrequest, or the name of a request or user defined macro being called, 2058070c62a6SFranco Fichtneris terminated by an escape sequence. 2059070c62a6SFranco FichtnerIn the cases of 2060070c62a6SFranco Fichtner.Ic \&as , 2061070c62a6SFranco Fichtner.Ic \&ds , 2062070c62a6SFranco Fichtnerand 2063070c62a6SFranco Fichtner.Ic \&nr , 2064070c62a6SFranco Fichtnerthe request has no effect at all. 2065070c62a6SFranco FichtnerIn the cases of 2066070c62a6SFranco Fichtner.Ic \&am , 2067070c62a6SFranco Fichtner.Ic \&de , 2068070c62a6SFranco Fichtner.Ic \&rr , 2069070c62a6SFranco Fichtnerand 2070070c62a6SFranco Fichtner.Ic \&rm , 2071070c62a6SFranco Fichtnerwhat was parsed up to this point is used as the arguments to the request, 2072070c62a6SFranco Fichtnerand the rest of the input line is discarded including the escape sequence. 2073070c62a6SFranco FichtnerWhen parsing for a request or a user-defined macro name to be called, 2074070c62a6SFranco Fichtneronly the escape sequence is discarded. 2075070c62a6SFranco FichtnerThe characters preceding it are used as the request or macro name, 2076070c62a6SFranco Fichtnerthe characters following it are used as the arguments to the request or macro. 207754ba9607SSascha Wildner.It Sy "using macro argument outside macro" 207854ba9607SSascha Wildner.Pq roff 207954ba9607SSascha WildnerThe escape sequence \e$ occurs outside any macro definition 208054ba9607SSascha Wildnerand expands to the empty string. 208154ba9607SSascha Wildner.It Sy "argument number is not numeric" 208254ba9607SSascha Wildner.Pq roff 208354ba9607SSascha WildnerThe argument of the escape sequence \e$ is not a digit; 208454ba9607SSascha Wildnerthe escape sequence expands to the empty string. 208554ba9607SSascha Wildner.It Sy "NOT IMPLEMENTED: Bd -file" 208654ba9607SSascha Wildner.Pq mdoc 208754ba9607SSascha WildnerFor security reasons, the 208854ba9607SSascha Wildner.Ic \&Bd 208954ba9607SSascha Wildnermacro does not support the 209054ba9607SSascha Wildner.Fl file 209154ba9607SSascha Wildnerargument. 209254ba9607SSascha WildnerBy requesting the inclusion of a sensitive file, a malicious document 209354ba9607SSascha Wildnermight otherwise trick a privileged user into inadvertently displaying 209454ba9607SSascha Wildnerthe file on the screen, revealing the file content to bystanders. 209554ba9607SSascha WildnerThe argument is ignored including the file name following it. 209654ba9607SSascha Wildner.It Sy "skipping display without arguments" 209754ba9607SSascha Wildner.Pq mdoc 209854ba9607SSascha WildnerA 209954ba9607SSascha Wildner.Ic \&Bd 210054ba9607SSascha Wildnerblock macro does not have any arguments. 210154ba9607SSascha WildnerThe block is discarded, and the block content is displayed in 210254ba9607SSascha Wildnerwhatever mode was active before the block. 2103070c62a6SFranco Fichtner.It Sy "missing list type, using -item" 2104070c62a6SFranco Fichtner.Pq mdoc 2105070c62a6SFranco FichtnerA 2106070c62a6SFranco Fichtner.Ic \&Bl 2107070c62a6SFranco Fichtnermacro fails to specify the list type. 210854ba9607SSascha Wildner.It Sy "argument is not numeric, using 1" 210954ba9607SSascha Wildner.Pq roff 211054ba9607SSascha WildnerThe argument of a 211154ba9607SSascha Wildner.Ic \&ce 211254ba9607SSascha Wildnerrequest is not a number. 211354ba9607SSascha Wildner.It Sy "argument is not a character" 211454ba9607SSascha Wildner.Pq roff 211554ba9607SSascha WildnerThe first argument of a 211654ba9607SSascha Wildner.Ic char 211754ba9607SSascha Wildnerrequest is neither a single ASCII character 211854ba9607SSascha Wildnernor a single character escape sequence. 211954ba9607SSascha WildnerThe request is ignored including all its arguments. 2120070c62a6SFranco Fichtner.It Sy "missing manual name, using \(dq\(dq" 2121070c62a6SFranco Fichtner.Pq mdoc 2122070c62a6SFranco FichtnerThe first call to 212354ba9607SSascha Wildner.Ic \&Nm , 212454ba9607SSascha Wildneror any call in the NAME section, lacks the required argument. 2125070c62a6SFranco Fichtner.It Sy "uname(3) system call failed, using UNKNOWN" 2126070c62a6SFranco Fichtner.Pq mdoc 2127070c62a6SFranco FichtnerThe 2128070c62a6SFranco Fichtner.Ic \&Os 2129070c62a6SFranco Fichtnermacro is called without arguments, and the 2130070c62a6SFranco Fichtner.Xr uname 3 2131070c62a6SFranco Fichtnersystem call failed. 2132070c62a6SFranco FichtnerAs a workaround, 2133070c62a6SFranco Fichtner.Nm 2134070c62a6SFranco Fichtnercan be compiled with 2135070c62a6SFranco Fichtner.Sm off 2136070c62a6SFranco Fichtner.Fl D Cm OSNAME=\(dq\e\(dq Ar string Cm \e\(dq\(dq . 2137070c62a6SFranco Fichtner.Sm on 2138070c62a6SFranco Fichtner.It Sy "unknown standard specifier" 2139070c62a6SFranco Fichtner.Pq mdoc 2140070c62a6SFranco FichtnerAn 2141070c62a6SFranco Fichtner.Ic \&St 2142070c62a6SFranco Fichtnermacro has an unknown argument and is discarded. 2143070c62a6SFranco Fichtner.It Sy "skipping request without numeric argument" 214454ba9607SSascha Wildner.Pq roff , eqn 2145070c62a6SFranco FichtnerAn 2146070c62a6SFranco Fichtner.Ic \&it 214754ba9607SSascha Wildnerrequest or an 214854ba9607SSascha Wildner.Xr eqn 7 214954ba9607SSascha Wildner.Ic \&size 215054ba9607SSascha Wildneror 215154ba9607SSascha Wildner.Ic \&gsize 215254ba9607SSascha Wildnerstatement has a non-numeric or negative argument or no argument at all. 215354ba9607SSascha WildnerThe invalid request or statement is ignored. 215454ba9607SSascha Wildner.It Sy "excessive shift" 215554ba9607SSascha Wildner.Pq roff 215654ba9607SSascha WildnerThe argument of a 215754ba9607SSascha Wildner.Ic shift 215854ba9607SSascha Wildnerrequest is larger than the number of arguments of the macro that is 215954ba9607SSascha Wildnercurrently being executed. 216054ba9607SSascha WildnerAll macro arguments are deleted and \en(.$ is set to zero. 216154ba9607SSascha Wildner.It Sy "NOT IMPLEMENTED: .so with absolute path or \(dq..\(dq" 216254ba9607SSascha Wildner.Pq roff 216354ba9607SSascha WildnerFor security reasons, 216454ba9607SSascha Wildner.Nm 216554ba9607SSascha Wildnerallows 216654ba9607SSascha Wildner.Ic \&so 216754ba9607SSascha Wildnerfile inclusion requests only with relative paths 216854ba9607SSascha Wildnerand only without ascending to any parent directory. 216954ba9607SSascha WildnerBy requesting the inclusion of a sensitive file, a malicious document 217054ba9607SSascha Wildnermight otherwise trick a privileged user into inadvertently displaying 217154ba9607SSascha Wildnerthe file on the screen, revealing the file content to bystanders. 217254ba9607SSascha Wildner.Nm 217354ba9607SSascha Wildneronly shows the path as it appears behind 217454ba9607SSascha Wildner.Ic \&so . 217554ba9607SSascha Wildner.It Sy ".so request failed" 217654ba9607SSascha Wildner.Pq roff 217754ba9607SSascha WildnerServicing a 217854ba9607SSascha Wildner.Ic \&so 217954ba9607SSascha Wildnerrequest requires reading an external file, but the file could not be 218054ba9607SSascha Wildneropened. 218154ba9607SSascha Wildner.Nm 218254ba9607SSascha Wildneronly shows the path as it appears behind 218354ba9607SSascha Wildner.Ic \&so . 2184070c62a6SFranco Fichtner.It Sy "skipping all arguments" 2185070c62a6SFranco Fichtner.Pq mdoc , man , eqn , roff 2186070c62a6SFranco FichtnerAn 2187070c62a6SFranco Fichtner.Xr mdoc 7 2188070c62a6SFranco Fichtner.Ic \&Bt , 2189070c62a6SFranco Fichtner.Ic \&Ed , 2190070c62a6SFranco Fichtner.Ic \&Ef , 2191070c62a6SFranco Fichtner.Ic \&Ek , 2192070c62a6SFranco Fichtner.Ic \&El , 219354ba9607SSascha Wildner.Ic \&Lp , 219454ba9607SSascha Wildner.Ic \&Pp , 2195070c62a6SFranco Fichtner.Ic \&Re , 219654ba9607SSascha Wildner.Ic \&Rs , 2197070c62a6SFranco Fichtneror 2198070c62a6SFranco Fichtner.Ic \&Ud 2199070c62a6SFranco Fichtnermacro, an 2200070c62a6SFranco Fichtner.Ic \&It 2201070c62a6SFranco Fichtnermacro in a list that don't support item heads, a 2202070c62a6SFranco Fichtner.Xr man 7 2203070c62a6SFranco Fichtner.Ic \&LP , 2204070c62a6SFranco Fichtner.Ic \&P , 2205070c62a6SFranco Fichtneror 2206070c62a6SFranco Fichtner.Ic \&PP 2207070c62a6SFranco Fichtnermacro, an 2208070c62a6SFranco Fichtner.Xr eqn 7 220954ba9607SSascha Wildner.Ic \&EQ 221054ba9607SSascha Wildneror 2211070c62a6SFranco Fichtner.Ic \&EN 2212070c62a6SFranco Fichtnermacro, or a 2213070c62a6SFranco Fichtner.Xr roff 7 221454ba9607SSascha Wildner.Ic \&br , 221554ba9607SSascha Wildner.Ic \&fi , 221654ba9607SSascha Wildneror 221754ba9607SSascha Wildner.Ic \&nf 221854ba9607SSascha Wildnerrequest or 2219070c62a6SFranco Fichtner.Sq \&.. 2220070c62a6SFranco Fichtnerblock closing request is invoked with at least one argument. 2221070c62a6SFranco FichtnerAll arguments are ignored. 2222070c62a6SFranco Fichtner.It Sy "skipping excess arguments" 222354ba9607SSascha Wildner.Pq mdoc , man , roff 222454ba9607SSascha WildnerA macro or request is invoked with too many arguments: 222554ba9607SSascha Wildner.Bl -dash -offset 2n -width 2n -compact 222654ba9607SSascha Wildner.It 222754ba9607SSascha Wildner.Ic \&Fo , 222854ba9607SSascha Wildner.Ic \&MT , 222954ba9607SSascha Wildner.Ic \&PD , 223054ba9607SSascha Wildner.Ic \&RS , 223154ba9607SSascha Wildner.Ic \&UR , 223254ba9607SSascha Wildner.Ic \&ft , 223354ba9607SSascha Wildneror 223454ba9607SSascha Wildner.Ic \&sp 223554ba9607SSascha Wildnerwith more than one argument 223654ba9607SSascha Wildner.It 223754ba9607SSascha Wildner.Ic \&An 223854ba9607SSascha Wildnerwith another argument after 223954ba9607SSascha Wildner.Fl split 224054ba9607SSascha Wildneror 224154ba9607SSascha Wildner.Fl nosplit 224254ba9607SSascha Wildner.It 224354ba9607SSascha Wildner.Ic \&RE 224454ba9607SSascha Wildnerwith more than one argument or with a non-integer argument 224554ba9607SSascha Wildner.It 224654ba9607SSascha Wildner.Ic \&OP 224754ba9607SSascha Wildneror a request of the 2248070c62a6SFranco Fichtner.Ic \&de 224954ba9607SSascha Wildnerfamily with more than two arguments 225054ba9607SSascha Wildner.It 225154ba9607SSascha Wildner.Ic \&Dt 225254ba9607SSascha Wildnerwith more than three arguments 225354ba9607SSascha Wildner.It 225454ba9607SSascha Wildner.Ic \&TH 225554ba9607SSascha Wildnerwith more than five arguments 225654ba9607SSascha Wildner.It 225754ba9607SSascha Wildner.Ic \&Bd , 225854ba9607SSascha Wildner.Ic \&Bk , 225954ba9607SSascha Wildneror 226054ba9607SSascha Wildner.Ic \&Bl 226154ba9607SSascha Wildnerwith invalid arguments 226254ba9607SSascha Wildner.El 2263070c62a6SFranco FichtnerThe excess arguments are ignored. 2264070c62a6SFranco Fichtner.El 226554ba9607SSascha Wildner.Ss Unsupported features 2266070c62a6SFranco Fichtner.Bl -ohang 2267070c62a6SFranco Fichtner.It Sy "input too large" 2268070c62a6SFranco Fichtner.Pq mdoc , man 2269070c62a6SFranco FichtnerCurrently, 2270070c62a6SFranco Fichtner.Nm 2271070c62a6SFranco Fichtnercannot handle input files larger than its arbitrary size limit 2272070c62a6SFranco Fichtnerof 2^31 bytes (2 Gigabytes). 2273070c62a6SFranco FichtnerSince useful manuals are always small, this is not a problem in practice. 2274070c62a6SFranco FichtnerParsing is aborted as soon as the condition is detected. 227554ba9607SSascha Wildner.It Sy "unsupported control character" 2276070c62a6SFranco Fichtner.Pq roff 227754ba9607SSascha WildnerAn ASCII control character supported by other 227854ba9607SSascha Wildner.Xr roff 7 227954ba9607SSascha Wildnerimplementations but not by 2280070c62a6SFranco Fichtner.Nm 228154ba9607SSascha Wildnerwas found in an input file. 228254ba9607SSascha WildnerIt is replaced by a question mark. 228354ba9607SSascha Wildner.It Sy "unsupported escape sequence" 2284070c62a6SFranco Fichtner.Pq roff 228554ba9607SSascha WildnerAn input file contains an escape sequence supported by GNU troff 228654ba9607SSascha Wildneror Heirloom troff but not by 228754ba9607SSascha Wildner.Nm , 228854ba9607SSascha Wildnerand it is likely that this will cause information loss 228954ba9607SSascha Wildneror considerable misformatting. 229054ba9607SSascha Wildner.It Sy "unsupported roff request" 229154ba9607SSascha Wildner.Pq roff 229254ba9607SSascha WildnerAn input file contains a 229354ba9607SSascha Wildner.Xr roff 7 229454ba9607SSascha Wildnerrequest supported by GNU troff or Heirloom troff but not by 229554ba9607SSascha Wildner.Nm , 229654ba9607SSascha Wildnerand it is likely that this will cause information loss 229754ba9607SSascha Wildneror considerable misformatting. 229854ba9607SSascha Wildner.It Sy "eqn delim option in tbl" 229954ba9607SSascha Wildner.Pq eqn , tbl 230054ba9607SSascha WildnerThe options line of a table defines equation delimiters. 230154ba9607SSascha WildnerAny equation source code contained in the table will be printed unformatted. 230254ba9607SSascha Wildner.It Sy "unsupported table layout modifier" 230354ba9607SSascha Wildner.Pq tbl 230454ba9607SSascha WildnerA table layout specification contains an 230554ba9607SSascha Wildner.Sq Cm m 230654ba9607SSascha Wildnermodifier. 230754ba9607SSascha WildnerThe modifier is discarded. 230854ba9607SSascha Wildner.It Sy "ignoring macro in table" 230954ba9607SSascha Wildner.Pq tbl , mdoc , man 231054ba9607SSascha WildnerA table contains an invocation of an 231154ba9607SSascha Wildner.Xr mdoc 7 2312070c62a6SFranco Fichtneror 231380387638SSascha Wildner.Xr man 7 231454ba9607SSascha Wildnermacro or of an undefined macro. 231554ba9607SSascha WildnerThe macro is ignored, and its arguments are handled 231654ba9607SSascha Wildneras if they were a text line. 2317*99db7d0eSSascha Wildner.It Sy "skipping tbl in -Tman mode" 2318*99db7d0eSSascha Wildner.Pq mdoc , tbl 2319*99db7d0eSSascha WildnerAn input file contains the 2320*99db7d0eSSascha Wildner.Ic \&TS 2321*99db7d0eSSascha Wildnermacro. 2322*99db7d0eSSascha WildnerThis message is only generated in 2323*99db7d0eSSascha Wildner.Fl T Cm man 2324*99db7d0eSSascha Wildneroutput mode, where 2325*99db7d0eSSascha Wildner.Xr tbl 7 2326*99db7d0eSSascha Wildnerinput is not supported. 2327*99db7d0eSSascha Wildner.It Sy "skipping eqn in -Tman mode" 2328*99db7d0eSSascha Wildner.Pq mdoc , eqn 2329*99db7d0eSSascha WildnerAn input file contains the 2330*99db7d0eSSascha Wildner.Ic \&EQ 2331*99db7d0eSSascha Wildnermacro. 2332*99db7d0eSSascha WildnerThis message is only generated in 2333*99db7d0eSSascha Wildner.Fl T Cm man 2334*99db7d0eSSascha Wildneroutput mode, where 2335*99db7d0eSSascha Wildner.Xr eqn 7 2336*99db7d0eSSascha Wildnerinput is not supported. 2337*99db7d0eSSascha Wildner.El 2338*99db7d0eSSascha Wildner.Ss Bad command line arguments 2339*99db7d0eSSascha Wildner.Bl -ohang 2340*99db7d0eSSascha Wildner.It Sy "bad command line argument" 2341*99db7d0eSSascha WildnerThe argument following one of the 2342*99db7d0eSSascha Wildner.Fl IKMmOTW 2343*99db7d0eSSascha Wildnercommand line options is invalid, or a 2344*99db7d0eSSascha Wildner.Ar file 2345*99db7d0eSSascha Wildnergiven as a command line argument cannot be opened. 2346*99db7d0eSSascha Wildner.It Sy "duplicate command line argument" 2347*99db7d0eSSascha WildnerThe 2348*99db7d0eSSascha Wildner.Fl I 2349*99db7d0eSSascha Wildnercommand line option was specified twice. 2350*99db7d0eSSascha Wildner.It Sy "option has a superfluous value" 2351*99db7d0eSSascha WildnerAn argument to the 2352*99db7d0eSSascha Wildner.Fl O 2353*99db7d0eSSascha Wildneroption has a value but does not accept one. 2354*99db7d0eSSascha Wildner.It Sy "missing option value" 2355*99db7d0eSSascha WildnerAn argument to the 2356*99db7d0eSSascha Wildner.Fl O 2357*99db7d0eSSascha Wildneroption has no argument but requires one. 2358*99db7d0eSSascha Wildner.It Sy "bad option value" 2359*99db7d0eSSascha WildnerAn argument to the 2360*99db7d0eSSascha Wildner.Fl O 2361*99db7d0eSSascha Wildner.Cm indent 2362*99db7d0eSSascha Wildneror 2363*99db7d0eSSascha Wildner.Cm width 2364*99db7d0eSSascha Wildneroption has an invalid value. 2365*99db7d0eSSascha Wildner.It Sy "duplicate option value" 2366*99db7d0eSSascha WildnerThe same 2367*99db7d0eSSascha Wildner.Fl O 2368*99db7d0eSSascha Wildneroption is specified more than once. 2369*99db7d0eSSascha Wildner.It Sy "no such tag" 2370*99db7d0eSSascha WildnerThe 2371*99db7d0eSSascha Wildner.Fl O Cm tag 2372*99db7d0eSSascha Wildneroption was specified but the tag was not found in any of the displayed 2373*99db7d0eSSascha Wildnermanual pages. 2374*99db7d0eSSascha Wildner.It Sy "\-Tmarkdown unsupported for man(7) input" 2375*99db7d0eSSascha Wildner.Pq man 2376*99db7d0eSSascha WildnerThe 2377*99db7d0eSSascha Wildner.Fl T Cm markdown 2378*99db7d0eSSascha Wildneroption was specified but an input file uses the 2379*99db7d0eSSascha Wildner.Xr man 7 2380*99db7d0eSSascha Wildnerlanguage. 2381*99db7d0eSSascha WildnerNo output is produced for that input file. 238280387638SSascha Wildner.El 238380387638SSascha Wildner.Sh SEE ALSO 238454ba9607SSascha Wildner.Xr apropos 1 , 238554ba9607SSascha Wildner.Xr man 1 , 238660e1e752SSascha Wildner.Xr eqn 7 , 238780387638SSascha Wildner.Xr man 7 , 238880387638SSascha Wildner.Xr mandoc_char 7 , 238980387638SSascha Wildner.Xr mdoc 7 , 239080387638SSascha Wildner.Xr roff 7 , 239180387638SSascha Wildner.Xr tbl 7 239254ba9607SSascha Wildner.Sh HISTORY 239354ba9607SSascha WildnerThe 239454ba9607SSascha Wildner.Nm 239554ba9607SSascha Wildnerutility first appeared in 239654ba9607SSascha Wildner.Ox 4.8 . 239754ba9607SSascha WildnerThe option 239854ba9607SSascha Wildner.Fl I 239954ba9607SSascha Wildnerappeared in 240054ba9607SSascha Wildner.Ox 5.2 , 240154ba9607SSascha Wildnerand 240254ba9607SSascha Wildner.Fl aCcfhKklMSsw 240354ba9607SSascha Wildnerin 240454ba9607SSascha Wildner.Ox 5.7 . 240580387638SSascha Wildner.Sh AUTHORS 240654ba9607SSascha Wildner.An -nosplit 240780387638SSascha WildnerThe 240880387638SSascha Wildner.Nm 240980387638SSascha Wildnerutility was written by 241054ba9607SSascha Wildner.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 241154ba9607SSascha Wildnerand is maintained by 241254ba9607SSascha Wildner.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 2413