1*c1c95addSBrooks Davis.\" $Id: mandoc.1,v 1.267 2023/11/13 19:13:01 schwarze Exp $ 261d06d6bSBaptiste Daroussin.\" 3*c1c95addSBrooks Davis.\" Copyright (c) 2012, 2014-2023 Ingo Schwarze <schwarze@openbsd.org> 461d06d6bSBaptiste Daroussin.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> 561d06d6bSBaptiste Daroussin.\" 661d06d6bSBaptiste Daroussin.\" Permission to use, copy, modify, and distribute this software for any 761d06d6bSBaptiste Daroussin.\" purpose with or without fee is hereby granted, provided that the above 861d06d6bSBaptiste Daroussin.\" copyright notice and this permission notice appear in all copies. 961d06d6bSBaptiste Daroussin.\" 1061d06d6bSBaptiste Daroussin.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1161d06d6bSBaptiste Daroussin.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1261d06d6bSBaptiste Daroussin.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1361d06d6bSBaptiste Daroussin.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1461d06d6bSBaptiste Daroussin.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1561d06d6bSBaptiste Daroussin.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1661d06d6bSBaptiste Daroussin.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1761d06d6bSBaptiste Daroussin.\" 18*c1c95addSBrooks Davis.Dd $Mdocdate: November 13 2023 $ 1961d06d6bSBaptiste Daroussin.Dt MANDOC 1 2061d06d6bSBaptiste Daroussin.Os 2161d06d6bSBaptiste Daroussin.Sh NAME 2261d06d6bSBaptiste Daroussin.Nm mandoc 2361d06d6bSBaptiste Daroussin.Nd format manual pages 2461d06d6bSBaptiste Daroussin.Sh SYNOPSIS 2561d06d6bSBaptiste Daroussin.Nm mandoc 2661d06d6bSBaptiste Daroussin.Op Fl ac 2761d06d6bSBaptiste Daroussin.Op Fl I Cm os Ns = Ns Ar name 2861d06d6bSBaptiste Daroussin.Op Fl K Ar encoding 2961d06d6bSBaptiste Daroussin.Op Fl mdoc | man 3061d06d6bSBaptiste Daroussin.Op Fl O Ar options 3161d06d6bSBaptiste Daroussin.Op Fl T Ar output 3261d06d6bSBaptiste Daroussin.Op Fl W Ar level 3361d06d6bSBaptiste Daroussin.Op Ar 3461d06d6bSBaptiste Daroussin.Sh DESCRIPTION 3561d06d6bSBaptiste DaroussinThe 3661d06d6bSBaptiste Daroussin.Nm 3761d06d6bSBaptiste Daroussinutility formats manual pages for display. 3861d06d6bSBaptiste Daroussin.Pp 3961d06d6bSBaptiste DaroussinBy default, 4061d06d6bSBaptiste Daroussin.Nm 4161d06d6bSBaptiste Daroussinreads 4261d06d6bSBaptiste Daroussin.Xr mdoc 7 4361d06d6bSBaptiste Daroussinor 4461d06d6bSBaptiste Daroussin.Xr man 7 4561d06d6bSBaptiste Daroussintext from stdin and produces 4661d06d6bSBaptiste Daroussin.Fl T Cm locale 4761d06d6bSBaptiste Daroussinoutput. 4861d06d6bSBaptiste Daroussin.Pp 4961d06d6bSBaptiste DaroussinThe options are as follows: 5061d06d6bSBaptiste Daroussin.Bl -tag -width Ds 5161d06d6bSBaptiste Daroussin.It Fl a 5261d06d6bSBaptiste DaroussinIf the standard output is a terminal device and 5361d06d6bSBaptiste Daroussin.Fl c 5461d06d6bSBaptiste Daroussinis not specified, use 556d38604fSBaptiste Daroussin.Xr less 1 5661d06d6bSBaptiste Daroussinto paginate the output, just like 5761d06d6bSBaptiste Daroussin.Xr man 1 5861d06d6bSBaptiste Daroussinwould. 5961d06d6bSBaptiste Daroussin.It Fl c 6061d06d6bSBaptiste DaroussinCopy the formatted manual pages to the standard output without using 616d38604fSBaptiste Daroussin.Xr less 1 6261d06d6bSBaptiste Daroussinto paginate them. 6361d06d6bSBaptiste DaroussinThis is the default. 6461d06d6bSBaptiste DaroussinIt can be specified to override 6561d06d6bSBaptiste Daroussin.Fl a . 6661d06d6bSBaptiste Daroussin.It Fl I Cm os Ns = Ns Ar name 6761d06d6bSBaptiste DaroussinOverride the default operating system 6861d06d6bSBaptiste Daroussin.Ar name 6961d06d6bSBaptiste Daroussinfor the 7061d06d6bSBaptiste Daroussin.Xr mdoc 7 7161d06d6bSBaptiste Daroussin.Ic \&Os 7261d06d6bSBaptiste Daroussinand for the 7361d06d6bSBaptiste Daroussin.Xr man 7 7461d06d6bSBaptiste Daroussin.Ic \&TH 7561d06d6bSBaptiste Daroussinmacro. 7661d06d6bSBaptiste Daroussin.It Fl K Ar encoding 7761d06d6bSBaptiste DaroussinSpecify the input encoding. 7861d06d6bSBaptiste DaroussinThe supported 7961d06d6bSBaptiste Daroussin.Ar encoding 8061d06d6bSBaptiste Daroussinarguments are 8161d06d6bSBaptiste Daroussin.Cm us-ascii , 8261d06d6bSBaptiste Daroussin.Cm iso-8859-1 , 8361d06d6bSBaptiste Daroussinand 8461d06d6bSBaptiste Daroussin.Cm utf-8 . 8561d06d6bSBaptiste DaroussinIf not specified, autodetection uses the first match in the following 8661d06d6bSBaptiste Daroussinlist: 8761d06d6bSBaptiste Daroussin.Bl -enum 8861d06d6bSBaptiste Daroussin.It 8961d06d6bSBaptiste DaroussinIf the first three bytes of the input file are the UTF-8 byte order 9061d06d6bSBaptiste Daroussinmark (BOM, 0xefbbbf), input is interpreted as 9161d06d6bSBaptiste Daroussin.Cm utf-8 . 9261d06d6bSBaptiste Daroussin.It 9361d06d6bSBaptiste DaroussinIf the first or second line of the input file matches the 9461d06d6bSBaptiste Daroussin.Sy emacs 9561d06d6bSBaptiste Daroussinmode line format 9661d06d6bSBaptiste Daroussin.Pp 9761d06d6bSBaptiste Daroussin.D1 .\e" -*- Oo ...; Oc coding: Ar encoding ; No -*- 9861d06d6bSBaptiste Daroussin.Pp 9961d06d6bSBaptiste Daroussinthen input is interpreted according to 10061d06d6bSBaptiste Daroussin.Ar encoding . 10161d06d6bSBaptiste Daroussin.It 10261d06d6bSBaptiste DaroussinIf the first non-ASCII byte in the file introduces a valid UTF-8 10361d06d6bSBaptiste Daroussinsequence, input is interpreted as 10461d06d6bSBaptiste Daroussin.Cm utf-8 . 10561d06d6bSBaptiste Daroussin.It 10661d06d6bSBaptiste DaroussinOtherwise, input is interpreted as 10761d06d6bSBaptiste Daroussin.Cm iso-8859-1 . 10861d06d6bSBaptiste Daroussin.El 10961d06d6bSBaptiste Daroussin.It Fl mdoc | man 11061d06d6bSBaptiste DaroussinWith 11161d06d6bSBaptiste Daroussin.Fl mdoc , 11261d06d6bSBaptiste Daroussinall input files are interpreted as 11361d06d6bSBaptiste Daroussin.Xr mdoc 7 . 11461d06d6bSBaptiste DaroussinWith 11561d06d6bSBaptiste Daroussin.Fl man , 11661d06d6bSBaptiste Daroussinall input files are interpreted as 11761d06d6bSBaptiste Daroussin.Xr man 7 . 11861d06d6bSBaptiste DaroussinBy default, the input language is automatically detected for each file: 11961d06d6bSBaptiste Daroussinif the first macro is 12061d06d6bSBaptiste Daroussin.Ic \&Dd 12161d06d6bSBaptiste Daroussinor 12261d06d6bSBaptiste Daroussin.Ic \&Dt , 12361d06d6bSBaptiste Daroussinthe 12461d06d6bSBaptiste Daroussin.Xr mdoc 7 12561d06d6bSBaptiste Daroussinparser is used; otherwise, the 12661d06d6bSBaptiste Daroussin.Xr man 7 12761d06d6bSBaptiste Daroussinparser is used. 12861d06d6bSBaptiste DaroussinWith other arguments, 12961d06d6bSBaptiste Daroussin.Fl m 13061d06d6bSBaptiste Daroussinis silently ignored. 13161d06d6bSBaptiste Daroussin.It Fl O Ar options 13261d06d6bSBaptiste DaroussinComma-separated output options. 13361d06d6bSBaptiste DaroussinSee the descriptions of the individual output formats for supported 13461d06d6bSBaptiste Daroussin.Ar options . 13561d06d6bSBaptiste Daroussin.It Fl T Ar output 13661d06d6bSBaptiste DaroussinSelect the output format. 13761d06d6bSBaptiste DaroussinSupported values for the 13861d06d6bSBaptiste Daroussin.Ar output 13961d06d6bSBaptiste Daroussinargument are 14061d06d6bSBaptiste Daroussin.Cm ascii , 14161d06d6bSBaptiste Daroussin.Cm html , 14261d06d6bSBaptiste Daroussinthe default of 14361d06d6bSBaptiste Daroussin.Cm locale , 14461d06d6bSBaptiste Daroussin.Cm man , 14561d06d6bSBaptiste Daroussin.Cm markdown , 14661d06d6bSBaptiste Daroussin.Cm pdf , 14761d06d6bSBaptiste Daroussin.Cm ps , 14861d06d6bSBaptiste Daroussin.Cm tree , 14961d06d6bSBaptiste Daroussinand 15061d06d6bSBaptiste Daroussin.Cm utf8 . 15161d06d6bSBaptiste Daroussin.Pp 15261d06d6bSBaptiste DaroussinThe special 15361d06d6bSBaptiste Daroussin.Fl T Cm lint 15461d06d6bSBaptiste Daroussinmode only parses the input and produces no output. 15561d06d6bSBaptiste DaroussinIt implies 15661d06d6bSBaptiste Daroussin.Fl W Cm all 15761d06d6bSBaptiste Daroussinand redirects parser messages, which usually appear on standard 15861d06d6bSBaptiste Daroussinerror output, to standard output. 15961d06d6bSBaptiste Daroussin.It Fl W Ar level 16061d06d6bSBaptiste DaroussinSpecify the minimum message 16161d06d6bSBaptiste Daroussin.Ar level 16261d06d6bSBaptiste Daroussinto be reported on the standard error output and to affect the exit status. 16361d06d6bSBaptiste DaroussinThe 16461d06d6bSBaptiste Daroussin.Ar level 16561d06d6bSBaptiste Daroussincan be 16661d06d6bSBaptiste Daroussin.Cm base , 16761d06d6bSBaptiste Daroussin.Cm style , 16861d06d6bSBaptiste Daroussin.Cm warning , 16961d06d6bSBaptiste Daroussin.Cm error , 17061d06d6bSBaptiste Daroussinor 17161d06d6bSBaptiste Daroussin.Cm unsupp . 17261d06d6bSBaptiste DaroussinThe 17361d06d6bSBaptiste Daroussin.Cm base 17461d06d6bSBaptiste Daroussinlevel automatically derives the operating system from the contents of the 17561d06d6bSBaptiste Daroussin.Ic \&Os 17661d06d6bSBaptiste Daroussinmacro, from the 17761d06d6bSBaptiste Daroussin.Fl Ios 17861d06d6bSBaptiste Daroussincommand line option, or from the 17961d06d6bSBaptiste Daroussin.Xr uname 3 18061d06d6bSBaptiste Daroussinreturn value. 18161d06d6bSBaptiste DaroussinThe levels 18261d06d6bSBaptiste Daroussin.Cm openbsd 18361d06d6bSBaptiste Daroussinand 18461d06d6bSBaptiste Daroussin.Cm netbsd 18561d06d6bSBaptiste Daroussinare variants of 18661d06d6bSBaptiste Daroussin.Cm base 18761d06d6bSBaptiste Daroussinthat bypass autodetection and request validation of base system 18861d06d6bSBaptiste Daroussinconventions for a particular operating system. 18961d06d6bSBaptiste DaroussinThe level 19061d06d6bSBaptiste Daroussin.Cm all 19161d06d6bSBaptiste Daroussinis an alias for 19261d06d6bSBaptiste Daroussin.Cm base . 19361d06d6bSBaptiste DaroussinBy default, 19461d06d6bSBaptiste Daroussin.Nm 19561d06d6bSBaptiste Daroussinis silent. 19661d06d6bSBaptiste DaroussinSee 19761d06d6bSBaptiste Daroussin.Sx EXIT STATUS 19861d06d6bSBaptiste Daroussinand 19961d06d6bSBaptiste Daroussin.Sx DIAGNOSTICS 20061d06d6bSBaptiste Daroussinfor details. 20161d06d6bSBaptiste Daroussin.Pp 20261d06d6bSBaptiste DaroussinThe special option 20361d06d6bSBaptiste Daroussin.Fl W Cm stop 20461d06d6bSBaptiste Daroussintells 20561d06d6bSBaptiste Daroussin.Nm 20661d06d6bSBaptiste Daroussinto exit after parsing a file that causes warnings or errors of at least 20761d06d6bSBaptiste Daroussinthe requested level. 20861d06d6bSBaptiste DaroussinNo formatted output will be produced from that file. 20961d06d6bSBaptiste DaroussinIf both a 21061d06d6bSBaptiste Daroussin.Ar level 21161d06d6bSBaptiste Daroussinand 21261d06d6bSBaptiste Daroussin.Cm stop 21361d06d6bSBaptiste Daroussinare requested, they can be joined with a comma, for example 21461d06d6bSBaptiste Daroussin.Fl W Cm error , Ns Cm stop . 21561d06d6bSBaptiste Daroussin.It Ar file 21661d06d6bSBaptiste DaroussinRead from the given input file. 21761d06d6bSBaptiste DaroussinIf multiple files are specified, they are processed in the given order. 21861d06d6bSBaptiste DaroussinIf unspecified, 21961d06d6bSBaptiste Daroussin.Nm 22061d06d6bSBaptiste Daroussinreads from standard input. 22161d06d6bSBaptiste Daroussin.El 22261d06d6bSBaptiste Daroussin.Pp 22361d06d6bSBaptiste DaroussinThe options 22461d06d6bSBaptiste Daroussin.Fl fhklw 22545a5aec3SBaptiste Daroussinare also supported and are documented in 22645a5aec3SBaptiste Daroussin.Xr man 1 . 22761d06d6bSBaptiste DaroussinIn 22861d06d6bSBaptiste Daroussin.Fl f 22961d06d6bSBaptiste Daroussinand 23061d06d6bSBaptiste Daroussin.Fl k 23161d06d6bSBaptiste Daroussinmode, 23261d06d6bSBaptiste Daroussin.Nm 23361d06d6bSBaptiste Daroussinalso supports the options 23461d06d6bSBaptiste Daroussin.Fl CMmOSs 23561d06d6bSBaptiste Daroussindescribed in the 23661d06d6bSBaptiste Daroussin.Xr apropos 1 23761d06d6bSBaptiste Daroussinmanual. 23861d06d6bSBaptiste DaroussinThe options 23961d06d6bSBaptiste Daroussin.Fl fkl 24061d06d6bSBaptiste Daroussinare mutually exclusive and override each other. 24161d06d6bSBaptiste Daroussin.Ss ASCII Output 24261d06d6bSBaptiste DaroussinUse 24361d06d6bSBaptiste Daroussin.Fl T Cm ascii 24461d06d6bSBaptiste Daroussinto force text output in 7-bit ASCII character encoding documented in the 24561d06d6bSBaptiste Daroussin.Xr ascii 7 24661d06d6bSBaptiste Daroussinmanual page, ignoring the 24761d06d6bSBaptiste Daroussin.Xr locale 1 24861d06d6bSBaptiste Daroussinset in the environment. 24961d06d6bSBaptiste Daroussin.Pp 25061d06d6bSBaptiste DaroussinFont styles are applied by using back-spaced encoding such that an 25161d06d6bSBaptiste Daroussinunderlined character 25261d06d6bSBaptiste Daroussin.Sq c 25361d06d6bSBaptiste Daroussinis rendered as 25461d06d6bSBaptiste Daroussin.Sq _ Ns \e[bs] Ns c , 25561d06d6bSBaptiste Daroussinwhere 25661d06d6bSBaptiste Daroussin.Sq \e[bs] 25761d06d6bSBaptiste Daroussinis the back-space character number 8. 25861d06d6bSBaptiste DaroussinEmboldened characters are rendered as 25961d06d6bSBaptiste Daroussin.Sq c Ns \e[bs] Ns c . 2607295610fSBaptiste DaroussinThis markup is typically converted to appropriate terminal sequences by 2617295610fSBaptiste Daroussinthe pager or 2627295610fSBaptiste Daroussin.Xr ul 1 . 2637295610fSBaptiste DaroussinTo remove the markup, pipe the output to 2647295610fSBaptiste Daroussin.Xr col 1 2657295610fSBaptiste Daroussin.Fl b 2667295610fSBaptiste Daroussininstead. 26761d06d6bSBaptiste Daroussin.Pp 26861d06d6bSBaptiste DaroussinThe special characters documented in 26961d06d6bSBaptiste Daroussin.Xr mandoc_char 7 27061d06d6bSBaptiste Daroussinare rendered best-effort in an ASCII equivalent. 2717295610fSBaptiste DaroussinIn particular, opening and closing 2727295610fSBaptiste Daroussin.Sq single quotes 2737295610fSBaptiste Daroussinare represented as characters number 0x60 and 0x27, respectively, 2747295610fSBaptiste Daroussinwhich agrees with all ASCII standards from 1965 to the latest 2757295610fSBaptiste Daroussinrevision (2012) and which matches the traditional way in which 2767295610fSBaptiste Daroussin.Xr roff 7 2777295610fSBaptiste Daroussinformatters represent single quotes in ASCII output. 2787295610fSBaptiste DaroussinThis correct ASCII rendering may look strange with modern 2797295610fSBaptiste DaroussinUnicode-compatible fonts because contrary to ASCII, Unicode uses 2807295610fSBaptiste Daroussinthe code point U+0060 for the grave accent only, never for an opening 2817295610fSBaptiste Daroussinquote. 28261d06d6bSBaptiste Daroussin.Pp 28361d06d6bSBaptiste DaroussinThe following 28461d06d6bSBaptiste Daroussin.Fl O 28561d06d6bSBaptiste Daroussinarguments are accepted: 28661d06d6bSBaptiste Daroussin.Bl -tag -width Ds 28761d06d6bSBaptiste Daroussin.It Cm indent Ns = Ns Ar indent 28861d06d6bSBaptiste DaroussinThe left margin for normal text is set to 28961d06d6bSBaptiste Daroussin.Ar indent 290*c1c95addSBrooks Davisblank characters instead of the default of five. 29161d06d6bSBaptiste DaroussinIncreasing this is not recommended; it may result in degraded formatting, 29261d06d6bSBaptiste Daroussinfor example overfull lines or ugly line breaks. 29361d06d6bSBaptiste DaroussinWhen output is to a pager on a terminal that is less than 66 columns 29461d06d6bSBaptiste Daroussinwide, the default is reduced to three columns. 29561d06d6bSBaptiste Daroussin.It Cm mdoc 29661d06d6bSBaptiste DaroussinFormat 29761d06d6bSBaptiste Daroussin.Xr man 7 29861d06d6bSBaptiste Daroussininput files in 29961d06d6bSBaptiste Daroussin.Xr mdoc 7 30061d06d6bSBaptiste Daroussinoutput style. 3016d38604fSBaptiste DaroussinThis prints the operating system name rather than the page title 302*c1c95addSBrooks Davison the right side of the footer line. 30361d06d6bSBaptiste DaroussinOne useful application is for checking that 30461d06d6bSBaptiste Daroussin.Fl T Cm man 30561d06d6bSBaptiste Daroussinoutput formats in the same way as the 30661d06d6bSBaptiste Daroussin.Xr mdoc 7 30761d06d6bSBaptiste Daroussinsource it was generated from. 3087295610fSBaptiste Daroussin.It Cm tag Ns Op = Ns Ar term 3097295610fSBaptiste DaroussinIf the formatted manual page is opened in a pager, 3107295610fSBaptiste Daroussingo to the definition of the 3117295610fSBaptiste Daroussin.Ar term 3127295610fSBaptiste Daroussinrather than showing the manual page from the beginning. 3137295610fSBaptiste DaroussinIf no 3147295610fSBaptiste Daroussin.Ar term 3157295610fSBaptiste Daroussinis specified, reuse the first command line argument that is not a 3167295610fSBaptiste Daroussin.Ar section 3177295610fSBaptiste Daroussinnumber. 3187295610fSBaptiste DaroussinIf that argument is in 3197295610fSBaptiste Daroussin.Xr apropos 1 3207295610fSBaptiste Daroussin.Ar key Ns = Ns Ar val 3217295610fSBaptiste Daroussinformat, only the 3227295610fSBaptiste Daroussin.Ar val 3237295610fSBaptiste Daroussinis used rather than the argument as a whole. 3247295610fSBaptiste DaroussinThis is useful for commands like 3257295610fSBaptiste Daroussin.Ql man -akO tag Ic=ulimit 3267295610fSBaptiste Daroussinto search for a keyword and jump right to its definition 3277295610fSBaptiste Daroussinin the matching manual pages. 32861d06d6bSBaptiste Daroussin.It Cm width Ns = Ns Ar width 32961d06d6bSBaptiste DaroussinThe output width is set to 33061d06d6bSBaptiste Daroussin.Ar width 33161d06d6bSBaptiste Daroussininstead of the default of 78. 33261d06d6bSBaptiste DaroussinWhen output is to a pager on a terminal that is less than 79 columns 33361d06d6bSBaptiste Daroussinwide, the default is reduced to one less than the terminal width. 33461d06d6bSBaptiste DaroussinIn any case, lines that are output in literal mode are never wrapped 33561d06d6bSBaptiste Daroussinand may exceed the output width. 33661d06d6bSBaptiste Daroussin.El 33761d06d6bSBaptiste Daroussin.Ss HTML Output 33861d06d6bSBaptiste DaroussinOutput produced by 33961d06d6bSBaptiste Daroussin.Fl T Cm html 34061d06d6bSBaptiste Daroussinconforms to HTML5 using optional self-closing tags. 34161d06d6bSBaptiste DaroussinEquations rendered from 34261d06d6bSBaptiste Daroussin.Xr eqn 7 34361d06d6bSBaptiste Daroussinblocks use MathML. 34461d06d6bSBaptiste DaroussinNon-ASCII characters are rendered 34561d06d6bSBaptiste Daroussinas hexadecimal Unicode character references. 34661d06d6bSBaptiste Daroussin.Pp 34761d06d6bSBaptiste DaroussinThe following 34861d06d6bSBaptiste Daroussin.Fl O 34961d06d6bSBaptiste Daroussinarguments are accepted: 35061d06d6bSBaptiste Daroussin.Bl -tag -width Ds 35161d06d6bSBaptiste Daroussin.It Cm fragment 35261d06d6bSBaptiste DaroussinOmit the <!DOCTYPE> declaration and the <html>, <head>, and <body> 35361d06d6bSBaptiste Daroussinelements and only emit the subtree below the <body> element. 35461d06d6bSBaptiste DaroussinThe 35561d06d6bSBaptiste Daroussin.Cm style 35661d06d6bSBaptiste Daroussinargument will be ignored. 35761d06d6bSBaptiste DaroussinThis is useful when embedding manual content within existing documents. 35861d06d6bSBaptiste Daroussin.It Cm includes Ns = Ns Ar fmt 35961d06d6bSBaptiste DaroussinThe string 36061d06d6bSBaptiste Daroussin.Ar fmt , 36161d06d6bSBaptiste Daroussinfor example, 36261d06d6bSBaptiste Daroussin.Ar ../src/%I.html , 36361d06d6bSBaptiste Daroussinis used as a template for linked header files (usually via the 36461d06d6bSBaptiste Daroussin.Ic \&In 36561d06d6bSBaptiste Daroussinmacro). 36661d06d6bSBaptiste DaroussinInstances of 36761d06d6bSBaptiste Daroussin.Sq \&%I 36861d06d6bSBaptiste Daroussinare replaced with the include filename. 36961d06d6bSBaptiste DaroussinThe default is not to present a 37061d06d6bSBaptiste Daroussinhyperlink. 3717295610fSBaptiste Daroussin.It Cm man Ns = Ns Ar fmt Ns Op ; Ns Ar fmt 37261d06d6bSBaptiste DaroussinThe string 37361d06d6bSBaptiste Daroussin.Ar fmt , 37461d06d6bSBaptiste Daroussinfor example, 37561d06d6bSBaptiste Daroussin.Ar ../html%S/%N.%S.html , 37661d06d6bSBaptiste Daroussinis used as a template for linked manuals (usually via the 37761d06d6bSBaptiste Daroussin.Ic \&Xr 37861d06d6bSBaptiste Daroussinmacro). 37961d06d6bSBaptiste DaroussinInstances of 38061d06d6bSBaptiste Daroussin.Sq \&%N 38161d06d6bSBaptiste Daroussinand 38261d06d6bSBaptiste Daroussin.Sq %S 38361d06d6bSBaptiste Daroussinare replaced with the linked manual's name and section, respectively. 38461d06d6bSBaptiste DaroussinIf no section is included, section 1 is assumed. 38561d06d6bSBaptiste DaroussinThe default is not to 38661d06d6bSBaptiste Daroussinpresent a hyperlink. 3877295610fSBaptiste DaroussinIf two formats are given and a file 3887295610fSBaptiste Daroussin.Ar %N.%S 3897295610fSBaptiste Daroussinexists in the current directory, the first format is used; 3907295610fSBaptiste Daroussinotherwise, the second format is used. 39161d06d6bSBaptiste Daroussin.It Cm style Ns = Ns Ar style.css 39261d06d6bSBaptiste DaroussinThe file 39361d06d6bSBaptiste Daroussin.Ar style.css 394*c1c95addSBrooks Davisis used as an external stylesheet. 39561d06d6bSBaptiste DaroussinThis must be a valid absolute or 39661d06d6bSBaptiste Daroussinrelative URI. 397*c1c95addSBrooks Davis.Pp 398*c1c95addSBrooks DavisUsing the file 399*c1c95addSBrooks Davis.Pa mandoc.css 400*c1c95addSBrooks Davisthat is distributed with 401*c1c95addSBrooks Davis.Nm 402*c1c95addSBrooks Davisis recommended. 403*c1c95addSBrooks DavisIt provides an appearance similar to terminal output with some additional 404*c1c95addSBrooks Davisfeatures specific to 405*c1c95addSBrooks Davis.Nm 406*c1c95addSBrooks DavisHTML output, in particular making anchor locations that support 407*c1c95addSBrooks Davisdeep linking stand out visually by putting a dotted line under them, 408*c1c95addSBrooks Davisproviding tooltips showing the semantic function of elements (macro 409*c1c95addSBrooks Davisnames), providing some simple aspects of responsive web design, and 410*c1c95addSBrooks Davisproviding simple support for users who prefer a dark color scheme. 411*c1c95addSBrooks Davis.Pp 412*c1c95addSBrooks DavisUsing a custom CSS file is possible, but writing it requires 413*c1c95addSBrooks Davisproficiency in all of the languages HTML 5, CSS 4, and 414*c1c95addSBrooks Davis.Xr mdoc 7 415*c1c95addSBrooks Davisand familiarity with the 416*c1c95addSBrooks Davis.Nm Ns -specific 417*c1c95addSBrooks Davisclasses used in 418*c1c95addSBrooks Davis.Pa mandoc.css . 419*c1c95addSBrooks DavisBesides, while the file 420*c1c95addSBrooks Davis.Pa mandoc.css 421*c1c95addSBrooks Davisis always adapted to the HTML output generated by the 422*c1c95addSBrooks Davis.Nm 423*c1c95addSBrooks Davisversion it is distributed with, maintaining a custom CSS file usually 424*c1c95addSBrooks Davisrequires adaptations each time 425*c1c95addSBrooks Davis.Nm 426*c1c95addSBrooks Davisis upgraded to a new version. 427*c1c95addSBrooks Davis.Pp 428*c1c95addSBrooks DavisIf a stylesheet is not specified with 429*c1c95addSBrooks Davis.Fl O Cm style , 430*c1c95addSBrooks Davis.Fl T Cm html 431*c1c95addSBrooks Davisembeds a minimal stylesheet into the HTML output, mostly to select 432*c1c95addSBrooks Davisadequate font-style and font-weight attributes for various macros. 433*c1c95addSBrooks DavisThe result is readable in any graphical or text-based web browser, 434*c1c95addSBrooks Davisbut does not aim for looking similar to terminal output. 435*c1c95addSBrooks DavisInstead, formatting is mostly left to browser defaults 436*c1c95addSBrooks Davisand to user settings in the browser configuration. 4376d38604fSBaptiste Daroussin.It Cm tag Ns Op = Ns Ar term 4386d38604fSBaptiste DaroussinSame syntax and semantics as for 4396d38604fSBaptiste Daroussin.Sx ASCII Output . 4406d38604fSBaptiste DaroussinThis is implemented by passing a 4416d38604fSBaptiste Daroussin.Ic file:// 4426d38604fSBaptiste DaroussinURI ending in a fragment identifier to the pager 4436d38604fSBaptiste Daroussinrather than passing merely a file name. 4446d38604fSBaptiste DaroussinWhen using this argument, use a pager supporting such URIs, for example 4456d38604fSBaptiste Daroussin.Bd -literal -offset 3n 4466d38604fSBaptiste DaroussinMANPAGER='lynx -force_html' man -T html -O tag=MANPAGER man 4476d38604fSBaptiste DaroussinMANPAGER='w3m -T text/html' man -T html -O tag=toc mandoc 4486d38604fSBaptiste Daroussin.Ed 4496d38604fSBaptiste Daroussin.Pp 4506d38604fSBaptiste DaroussinConsequently, for HTML output, this argument does not work with 4516d38604fSBaptiste Daroussin.Xr more 1 4526d38604fSBaptiste Daroussinor 4536d38604fSBaptiste Daroussin.Xr less 1 . 4546d38604fSBaptiste DaroussinFor example, 4556d38604fSBaptiste Daroussin.Ql MANPAGER=less man -T html -O tag=toc mandoc 4566d38604fSBaptiste Daroussindoes not work because 4576d38604fSBaptiste Daroussin.Xr less 1 4586d38604fSBaptiste Daroussindoes not support 4596d38604fSBaptiste Daroussin.Ic file:// 4606d38604fSBaptiste DaroussinURIs. 4617295610fSBaptiste Daroussin.It Cm toc 4627295610fSBaptiste DaroussinIf an input file contains at least two non-standard sections, 4637295610fSBaptiste Daroussinprint a table of contents near the beginning of the output. 46461d06d6bSBaptiste Daroussin.El 46561d06d6bSBaptiste Daroussin.Ss Locale Output 46661d06d6bSBaptiste DaroussinBy default, 46761d06d6bSBaptiste Daroussin.Nm 46861d06d6bSBaptiste Daroussinautomatically selects UTF-8 or ASCII output according to the current 46961d06d6bSBaptiste Daroussin.Xr locale 1 . 47061d06d6bSBaptiste DaroussinIf any of the environment variables 47161d06d6bSBaptiste Daroussin.Ev LC_ALL , 47261d06d6bSBaptiste Daroussin.Ev LC_CTYPE , 47361d06d6bSBaptiste Daroussinor 47461d06d6bSBaptiste Daroussin.Ev LANG 47561d06d6bSBaptiste Daroussinare set and the first one that is set 47661d06d6bSBaptiste Daroussinselects the UTF-8 character encoding, it produces 47761d06d6bSBaptiste Daroussin.Sx UTF-8 Output ; 47861d06d6bSBaptiste Daroussinotherwise, it falls back to 47961d06d6bSBaptiste Daroussin.Sx ASCII Output . 48061d06d6bSBaptiste DaroussinThis output mode can also be selected explicitly with 48161d06d6bSBaptiste Daroussin.Fl T Cm locale . 48261d06d6bSBaptiste Daroussin.Ss Man Output 48361d06d6bSBaptiste DaroussinUse 48461d06d6bSBaptiste Daroussin.Fl T Cm man 48561d06d6bSBaptiste Daroussinto translate 48661d06d6bSBaptiste Daroussin.Xr mdoc 7 48761d06d6bSBaptiste Daroussininput into 48861d06d6bSBaptiste Daroussin.Xr man 7 48961d06d6bSBaptiste Daroussinoutput format. 49061d06d6bSBaptiste DaroussinThis is useful for distributing manual sources to legacy systems 49161d06d6bSBaptiste Daroussinlacking 49261d06d6bSBaptiste Daroussin.Xr mdoc 7 49361d06d6bSBaptiste Daroussinformatters. 4946d38604fSBaptiste DaroussinEmbedded 4956d38604fSBaptiste Daroussin.Xr eqn 7 4966d38604fSBaptiste Daroussinand 4976d38604fSBaptiste Daroussin.Xr tbl 7 4986d38604fSBaptiste Daroussincode is not supported. 49961d06d6bSBaptiste Daroussin.Pp 50061d06d6bSBaptiste DaroussinIf the input format of a file is 50161d06d6bSBaptiste Daroussin.Xr man 7 , 5026d38604fSBaptiste Daroussinthe input is copied to the output. 50361d06d6bSBaptiste DaroussinThe parser is also run, and as usual, the 50461d06d6bSBaptiste Daroussin.Fl W 50561d06d6bSBaptiste Daroussinlevel controls which 50661d06d6bSBaptiste Daroussin.Sx DIAGNOSTICS 50761d06d6bSBaptiste Daroussinare displayed before copying the input to the output. 50861d06d6bSBaptiste Daroussin.Ss Markdown Output 50961d06d6bSBaptiste DaroussinUse 51061d06d6bSBaptiste Daroussin.Fl T Cm markdown 51161d06d6bSBaptiste Daroussinto translate 51261d06d6bSBaptiste Daroussin.Xr mdoc 7 51361d06d6bSBaptiste Daroussininput to the markdown format conforming to 514*c1c95addSBrooks Davis.Lk https://daringfireball.net/projects/markdown/syntax.text\ 51561d06d6bSBaptiste Daroussin "John Gruber's 2004 specification" . 51661d06d6bSBaptiste DaroussinThe output also almost conforms to the 517*c1c95addSBrooks Davis.Lk https://commonmark.org/ CommonMark 51861d06d6bSBaptiste Daroussinspecification. 51961d06d6bSBaptiste Daroussin.Pp 52061d06d6bSBaptiste DaroussinThe character set used for the markdown output is ASCII. 52161d06d6bSBaptiste DaroussinNon-ASCII characters are encoded as HTML entities. 52261d06d6bSBaptiste DaroussinSince that is not possible in literal font contexts, because these 52361d06d6bSBaptiste Daroussinare rendered as code spans and code blocks in the markdown output, 52461d06d6bSBaptiste Daroussinnon-ASCII characters are transliterated to ASCII approximations in 52561d06d6bSBaptiste Daroussinthese contexts. 52661d06d6bSBaptiste Daroussin.Pp 52761d06d6bSBaptiste DaroussinMarkdown is a very weak markup language, so all semantic markup is 52861d06d6bSBaptiste Daroussinlost, and even part of the presentational markup may be lost. 52961d06d6bSBaptiste DaroussinDo not use this as an intermediate step in converting to HTML; 53061d06d6bSBaptiste Daroussininstead, use 53161d06d6bSBaptiste Daroussin.Fl T Cm html 53261d06d6bSBaptiste Daroussindirectly. 53361d06d6bSBaptiste Daroussin.Pp 53461d06d6bSBaptiste DaroussinThe 53561d06d6bSBaptiste Daroussin.Xr man 7 , 53661d06d6bSBaptiste Daroussin.Xr tbl 7 , 53761d06d6bSBaptiste Daroussinand 53861d06d6bSBaptiste Daroussin.Xr eqn 7 53961d06d6bSBaptiste Daroussininput languages are not supported by 54061d06d6bSBaptiste Daroussin.Fl T Cm markdown 54161d06d6bSBaptiste Daroussinoutput mode. 54261d06d6bSBaptiste Daroussin.Ss PDF Output 54361d06d6bSBaptiste DaroussinPDF-1.1 output may be generated by 54461d06d6bSBaptiste Daroussin.Fl T Cm pdf . 54561d06d6bSBaptiste DaroussinSee 54661d06d6bSBaptiste Daroussin.Sx PostScript Output 54761d06d6bSBaptiste Daroussinfor 54861d06d6bSBaptiste Daroussin.Fl O 54961d06d6bSBaptiste Daroussinarguments and defaults. 55061d06d6bSBaptiste Daroussin.Ss PostScript Output 55161d06d6bSBaptiste DaroussinPostScript 55261d06d6bSBaptiste Daroussin.Qq Adobe-3.0 55361d06d6bSBaptiste DaroussinLevel-2 pages may be generated by 55461d06d6bSBaptiste Daroussin.Fl T Cm ps . 55561d06d6bSBaptiste DaroussinOutput pages default to letter sized and are rendered in the Times font 55661d06d6bSBaptiste Daroussinfamily, 11-point. 55761d06d6bSBaptiste DaroussinMargins are calculated as 1/9 the page length and width. 55861d06d6bSBaptiste DaroussinLine-height is 1.4m. 55961d06d6bSBaptiste Daroussin.Pp 56061d06d6bSBaptiste DaroussinSpecial characters are rendered as in 56161d06d6bSBaptiste Daroussin.Sx ASCII Output . 56261d06d6bSBaptiste Daroussin.Pp 56361d06d6bSBaptiste DaroussinThe following 56461d06d6bSBaptiste Daroussin.Fl O 56561d06d6bSBaptiste Daroussinarguments are accepted: 56661d06d6bSBaptiste Daroussin.Bl -tag -width Ds 56761d06d6bSBaptiste Daroussin.It Cm paper Ns = Ns Ar name 56861d06d6bSBaptiste DaroussinThe paper size 56961d06d6bSBaptiste Daroussin.Ar name 57061d06d6bSBaptiste Daroussinmay be one of 57161d06d6bSBaptiste Daroussin.Ar a3 , 57261d06d6bSBaptiste Daroussin.Ar a4 , 57361d06d6bSBaptiste Daroussin.Ar a5 , 57461d06d6bSBaptiste Daroussin.Ar legal , 57561d06d6bSBaptiste Daroussinor 57661d06d6bSBaptiste Daroussin.Ar letter . 57761d06d6bSBaptiste DaroussinYou may also manually specify dimensions as 57861d06d6bSBaptiste Daroussin.Ar NNxNN , 57961d06d6bSBaptiste Daroussinwidth by height in millimetres. 58061d06d6bSBaptiste DaroussinIf an unknown value is encountered, 58161d06d6bSBaptiste Daroussin.Ar letter 58261d06d6bSBaptiste Daroussinis used. 58361d06d6bSBaptiste Daroussin.El 58461d06d6bSBaptiste Daroussin.Ss UTF-8 Output 58561d06d6bSBaptiste DaroussinUse 58661d06d6bSBaptiste Daroussin.Fl T Cm utf8 58761d06d6bSBaptiste Daroussinto force text output in UTF-8 multi-byte character encoding, 58861d06d6bSBaptiste Daroussinignoring the 58961d06d6bSBaptiste Daroussin.Xr locale 1 59061d06d6bSBaptiste Daroussinsettings in the environment. 59161d06d6bSBaptiste DaroussinSee 59261d06d6bSBaptiste Daroussin.Sx ASCII Output 59361d06d6bSBaptiste Daroussinregarding font styles and 59461d06d6bSBaptiste Daroussin.Fl O 59561d06d6bSBaptiste Daroussinarguments. 59661d06d6bSBaptiste Daroussin.Pp 59761d06d6bSBaptiste DaroussinOn operating systems lacking locale or wide character support, and 59861d06d6bSBaptiste Daroussinon those where the internal character representation is not UCS-4, 59961d06d6bSBaptiste Daroussin.Nm 60061d06d6bSBaptiste Daroussinalways falls back to 60161d06d6bSBaptiste Daroussin.Sx ASCII Output . 60261d06d6bSBaptiste Daroussin.Ss Syntax tree output 60361d06d6bSBaptiste DaroussinUse 60461d06d6bSBaptiste Daroussin.Fl T Cm tree 60561d06d6bSBaptiste Daroussinto show a human readable representation of the syntax tree. 60661d06d6bSBaptiste DaroussinIt is useful for debugging the source code of manual pages. 60761d06d6bSBaptiste DaroussinThe exact format is subject to change, so don't write parsers for it. 60861d06d6bSBaptiste Daroussin.Pp 60961d06d6bSBaptiste DaroussinThe first paragraph shows meta data found in the 61061d06d6bSBaptiste Daroussin.Xr mdoc 7 61161d06d6bSBaptiste Daroussinprologue, on the 61261d06d6bSBaptiste Daroussin.Xr man 7 61361d06d6bSBaptiste Daroussin.Ic \&TH 61461d06d6bSBaptiste Daroussinline, or the fallbacks used. 61561d06d6bSBaptiste Daroussin.Pp 61661d06d6bSBaptiste DaroussinIn the tree dump, each output line shows one syntax tree node. 61761d06d6bSBaptiste DaroussinChild nodes are indented with respect to their parent node. 61861d06d6bSBaptiste DaroussinThe columns are: 61961d06d6bSBaptiste Daroussin.Pp 62061d06d6bSBaptiste Daroussin.Bl -enum -compact 62161d06d6bSBaptiste Daroussin.It 62261d06d6bSBaptiste DaroussinFor macro nodes, the macro name; for text and 62361d06d6bSBaptiste Daroussin.Xr tbl 7 62461d06d6bSBaptiste Daroussinnodes, the content. 62561d06d6bSBaptiste DaroussinThere is a special format for 62661d06d6bSBaptiste Daroussin.Xr eqn 7 62761d06d6bSBaptiste Daroussinnodes. 62861d06d6bSBaptiste Daroussin.It 62961d06d6bSBaptiste DaroussinNode type (text, elem, block, head, body, body-end, tail, tbl, eqn). 63061d06d6bSBaptiste Daroussin.It 63161d06d6bSBaptiste DaroussinFlags: 63261d06d6bSBaptiste Daroussin.Bl -dash -compact 63361d06d6bSBaptiste Daroussin.It 63461d06d6bSBaptiste DaroussinAn opening parenthesis if the node is an opening delimiter. 63561d06d6bSBaptiste Daroussin.It 63661d06d6bSBaptiste DaroussinAn asterisk if the node starts a new input line. 63761d06d6bSBaptiste Daroussin.It 63861d06d6bSBaptiste DaroussinThe input line number (starting at one). 63961d06d6bSBaptiste Daroussin.It 64061d06d6bSBaptiste DaroussinA colon. 64161d06d6bSBaptiste Daroussin.It 64261d06d6bSBaptiste DaroussinThe input column number (starting at one). 64361d06d6bSBaptiste Daroussin.It 64461d06d6bSBaptiste DaroussinA closing parenthesis if the node is a closing delimiter. 64561d06d6bSBaptiste Daroussin.It 64661d06d6bSBaptiste DaroussinA full stop if the node ends a sentence. 64761d06d6bSBaptiste Daroussin.It 64861d06d6bSBaptiste DaroussinBROKEN if the node is a block broken by another block. 64961d06d6bSBaptiste Daroussin.It 65061d06d6bSBaptiste DaroussinNOSRC if the node is not in the input file, 65161d06d6bSBaptiste Daroussinbut automatically generated from macros. 65261d06d6bSBaptiste Daroussin.It 65361d06d6bSBaptiste DaroussinNOPRT if the node is not supposed to generate output 65461d06d6bSBaptiste Daroussinfor any output format. 65561d06d6bSBaptiste Daroussin.El 65661d06d6bSBaptiste Daroussin.El 65761d06d6bSBaptiste Daroussin.Pp 65861d06d6bSBaptiste DaroussinThe following 65961d06d6bSBaptiste Daroussin.Fl O 66061d06d6bSBaptiste Daroussinargument is accepted: 66161d06d6bSBaptiste Daroussin.Bl -tag -width Ds 66261d06d6bSBaptiste Daroussin.It Cm noval 66361d06d6bSBaptiste DaroussinSkip validation and show the unvalidated syntax tree. 66461d06d6bSBaptiste DaroussinThis can help to find out whether a given behaviour is caused by 66561d06d6bSBaptiste Daroussinthe parser or by the validator. 66661d06d6bSBaptiste DaroussinMeta data is not available in this case. 66761d06d6bSBaptiste Daroussin.El 66861d06d6bSBaptiste Daroussin.Sh ENVIRONMENT 66961d06d6bSBaptiste Daroussin.Bl -tag -width MANPAGER 67061d06d6bSBaptiste Daroussin.It Ev LC_CTYPE 67161d06d6bSBaptiste DaroussinThe character encoding 67261d06d6bSBaptiste Daroussin.Xr locale 1 . 67361d06d6bSBaptiste DaroussinWhen 67461d06d6bSBaptiste Daroussin.Sx Locale Output 67561d06d6bSBaptiste Daroussinis selected, it decides whether to use ASCII or UTF-8 output format. 67661d06d6bSBaptiste DaroussinIt never affects the interpretation of input files. 67761d06d6bSBaptiste Daroussin.It Ev MANPAGER 67861d06d6bSBaptiste DaroussinAny non-empty value of the environment variable 67961d06d6bSBaptiste Daroussin.Ev MANPAGER 68061d06d6bSBaptiste Daroussinis used instead of the standard pagination program, 6816d38604fSBaptiste Daroussin.Xr less 1 ; 68261d06d6bSBaptiste Daroussinsee 68361d06d6bSBaptiste Daroussin.Xr man 1 68461d06d6bSBaptiste Daroussinfor details. 68561d06d6bSBaptiste DaroussinOnly used if 68661d06d6bSBaptiste Daroussin.Fl a 68761d06d6bSBaptiste Daroussinor 68861d06d6bSBaptiste Daroussin.Fl l 68961d06d6bSBaptiste Daroussinis specified. 69061d06d6bSBaptiste Daroussin.It Ev PAGER 69161d06d6bSBaptiste DaroussinSpecifies the pagination program to use when 69261d06d6bSBaptiste Daroussin.Ev MANPAGER 69361d06d6bSBaptiste Daroussinis not defined. 69461d06d6bSBaptiste DaroussinIf neither PAGER nor MANPAGER is defined, 6956d38604fSBaptiste Daroussin.Xr less 1 69661d06d6bSBaptiste Daroussinis used. 69761d06d6bSBaptiste DaroussinOnly used if 69861d06d6bSBaptiste Daroussin.Fl a 69961d06d6bSBaptiste Daroussinor 70061d06d6bSBaptiste Daroussin.Fl l 70161d06d6bSBaptiste Daroussinis specified. 70261d06d6bSBaptiste Daroussin.El 70361d06d6bSBaptiste Daroussin.Sh EXIT STATUS 70461d06d6bSBaptiste DaroussinThe 70561d06d6bSBaptiste Daroussin.Nm 70661d06d6bSBaptiste Daroussinutility exits with one of the following values, controlled by the message 70761d06d6bSBaptiste Daroussin.Ar level 70861d06d6bSBaptiste Daroussinassociated with the 70961d06d6bSBaptiste Daroussin.Fl W 71061d06d6bSBaptiste Daroussinoption: 71161d06d6bSBaptiste Daroussin.Pp 71261d06d6bSBaptiste Daroussin.Bl -tag -width Ds -compact 71361d06d6bSBaptiste Daroussin.It 0 71461d06d6bSBaptiste DaroussinNo base system convention violations, style suggestions, warnings, 71561d06d6bSBaptiste Daroussinor errors occurred, or those that did were ignored because they 71661d06d6bSBaptiste Daroussinwere lower than the requested 71761d06d6bSBaptiste Daroussin.Ar level . 71861d06d6bSBaptiste Daroussin.It 1 71961d06d6bSBaptiste DaroussinAt least one base system convention violation or style suggestion 72061d06d6bSBaptiste Daroussinoccurred, but no warning or error, and 72161d06d6bSBaptiste Daroussin.Fl W Cm base 72261d06d6bSBaptiste Daroussinor 72361d06d6bSBaptiste Daroussin.Fl W Cm style 72461d06d6bSBaptiste Daroussinwas specified. 72561d06d6bSBaptiste Daroussin.It 2 72661d06d6bSBaptiste DaroussinAt least one warning occurred, but no error, and 72761d06d6bSBaptiste Daroussin.Fl W Cm warning 72861d06d6bSBaptiste Daroussinor a lower 72961d06d6bSBaptiste Daroussin.Ar level 73061d06d6bSBaptiste Daroussinwas requested. 73161d06d6bSBaptiste Daroussin.It 3 73261d06d6bSBaptiste DaroussinAt least one parsing error occurred, 73361d06d6bSBaptiste Daroussinbut no unsupported feature was encountered, and 73461d06d6bSBaptiste Daroussin.Fl W Cm error 73561d06d6bSBaptiste Daroussinor a lower 73661d06d6bSBaptiste Daroussin.Ar level 73761d06d6bSBaptiste Daroussinwas requested. 73861d06d6bSBaptiste Daroussin.It 4 73961d06d6bSBaptiste DaroussinAt least one unsupported feature was encountered, and 74061d06d6bSBaptiste Daroussin.Fl W Cm unsupp 74161d06d6bSBaptiste Daroussinor a lower 74261d06d6bSBaptiste Daroussin.Ar level 74361d06d6bSBaptiste Daroussinwas requested. 74461d06d6bSBaptiste Daroussin.It 5 74561d06d6bSBaptiste DaroussinInvalid command line arguments were specified. 74661d06d6bSBaptiste DaroussinNo input files have been read. 74761d06d6bSBaptiste Daroussin.It 6 74861d06d6bSBaptiste DaroussinAn operating system error occurred, for example exhaustion 74961d06d6bSBaptiste Daroussinof memory, file descriptors, or process table entries. 75045a5aec3SBaptiste DaroussinSuch errors may cause 75161d06d6bSBaptiste Daroussin.Nm 75261d06d6bSBaptiste Daroussinto exit at once, possibly in the middle of parsing or formatting a file. 75361d06d6bSBaptiste Daroussin.El 75461d06d6bSBaptiste Daroussin.Pp 75561d06d6bSBaptiste DaroussinNote that selecting 75661d06d6bSBaptiste Daroussin.Fl T Cm lint 75761d06d6bSBaptiste Daroussinoutput mode implies 75861d06d6bSBaptiste Daroussin.Fl W Cm all . 75961d06d6bSBaptiste Daroussin.Sh EXAMPLES 76061d06d6bSBaptiste DaroussinTo page manuals to the terminal: 76161d06d6bSBaptiste Daroussin.Pp 762*c1c95addSBrooks Davis.Dl $ mandoc -a mandoc.1 man.1 apropos.1 makewhatis.8 76361d06d6bSBaptiste Daroussin.Pp 76461d06d6bSBaptiste DaroussinTo produce HTML manuals with 7657295610fSBaptiste Daroussin.Pa /usr/share/misc/mandoc.css 766*c1c95addSBrooks Davisas the stylesheet: 76761d06d6bSBaptiste Daroussin.Pp 7687295610fSBaptiste Daroussin.Dl $ mandoc \-T html -O style=/usr/share/misc/mandoc.css mdoc.7 > mdoc.7.html 76961d06d6bSBaptiste Daroussin.Pp 77061d06d6bSBaptiste DaroussinTo check over a large set of manuals: 77161d06d6bSBaptiste Daroussin.Pp 77261d06d6bSBaptiste Daroussin.Dl $ mandoc \-T lint \(gafind /usr/src -name \e*\e.[1-9]\(ga 77361d06d6bSBaptiste Daroussin.Pp 77461d06d6bSBaptiste DaroussinTo produce a series of PostScript manuals for A4 paper: 77561d06d6bSBaptiste Daroussin.Pp 7767295610fSBaptiste Daroussin.Dl $ mandoc \-T ps \-O paper=a4 mdoc.7 man.7 > manuals.ps 77761d06d6bSBaptiste Daroussin.Pp 77861d06d6bSBaptiste DaroussinConvert a modern 77961d06d6bSBaptiste Daroussin.Xr mdoc 7 78061d06d6bSBaptiste Daroussinmanual to the older 78161d06d6bSBaptiste Daroussin.Xr man 7 78261d06d6bSBaptiste Daroussinformat, for use on systems lacking an 78361d06d6bSBaptiste Daroussin.Xr mdoc 7 78461d06d6bSBaptiste Daroussinparser: 78561d06d6bSBaptiste Daroussin.Pp 7867295610fSBaptiste Daroussin.Dl $ mandoc \-T man foo.mdoc > foo.man 78761d06d6bSBaptiste Daroussin.Sh DIAGNOSTICS 78861d06d6bSBaptiste DaroussinMessages displayed by 78961d06d6bSBaptiste Daroussin.Nm 79061d06d6bSBaptiste Daroussinfollow this format: 79161d06d6bSBaptiste Daroussin.Bd -ragged -offset indent 79261d06d6bSBaptiste Daroussin.Nm : 793*c1c95addSBrooks Davis.Ar file : Ns Ar line : Ns Ar column : level : message : macro argument ... 79461d06d6bSBaptiste Daroussin.Pq Ar os 79561d06d6bSBaptiste Daroussin.Ed 79661d06d6bSBaptiste Daroussin.Pp 7977295610fSBaptiste DaroussinThe first three fields identify the 7987295610fSBaptiste Daroussin.Ar file 7997295610fSBaptiste Daroussinname, 8007295610fSBaptiste Daroussin.Ar line 8017295610fSBaptiste Daroussinnumber, and 8027295610fSBaptiste Daroussin.Ar column 8037295610fSBaptiste Daroussinnumber of the input file where the message was triggered. 8047295610fSBaptiste DaroussinThe line and column numbers start at 1. 80561d06d6bSBaptiste DaroussinBoth are omitted for messages referring to an input file as a whole. 8067295610fSBaptiste DaroussinAll 8077295610fSBaptiste Daroussin.Ar level 8087295610fSBaptiste Daroussinand 8097295610fSBaptiste Daroussin.Ar message 8107295610fSBaptiste Daroussinstrings are explained below. 8117295610fSBaptiste DaroussinThe name of the 8127295610fSBaptiste Daroussin.Ar macro 813*c1c95addSBrooks Davistriggering the message and its arguments are omitted where meaningless. 81461d06d6bSBaptiste DaroussinThe 81561d06d6bSBaptiste Daroussin.Ar os 81661d06d6bSBaptiste Daroussinoperating system specifier is omitted for messages that are relevant 81761d06d6bSBaptiste Daroussinfor all operating systems. 81861d06d6bSBaptiste DaroussinFatal messages about invalid command line arguments 81961d06d6bSBaptiste Daroussinor operating system errors, for example when memory is exhausted, 82061d06d6bSBaptiste Daroussinmay also omit the 82161d06d6bSBaptiste Daroussin.Ar file 82261d06d6bSBaptiste Daroussinand 82361d06d6bSBaptiste Daroussin.Ar level 82461d06d6bSBaptiste Daroussinfields. 82561d06d6bSBaptiste Daroussin.Pp 82661d06d6bSBaptiste DaroussinMessage levels have the following meanings: 82761d06d6bSBaptiste Daroussin.Bl -tag -width "warning" 82845a5aec3SBaptiste Daroussin.It Cm syserr 82945a5aec3SBaptiste DaroussinAn operating system error occurred. 83045a5aec3SBaptiste DaroussinThere isn't necessarily anything wrong with the input files. 83145a5aec3SBaptiste DaroussinOutput may all the same be missing or incomplete. 83245a5aec3SBaptiste Daroussin.It Cm badarg 83345a5aec3SBaptiste DaroussinInvalid command line arguments were specified. 83445a5aec3SBaptiste DaroussinNo input files have been read and no output is produced. 83561d06d6bSBaptiste Daroussin.It Cm unsupp 83661d06d6bSBaptiste DaroussinAn input file uses unsupported low-level 83761d06d6bSBaptiste Daroussin.Xr roff 7 83861d06d6bSBaptiste Daroussinfeatures. 83961d06d6bSBaptiste DaroussinThe output may be incomplete and/or misformatted, 84061d06d6bSBaptiste Daroussinso using GNU troff instead of 84161d06d6bSBaptiste Daroussin.Nm 84261d06d6bSBaptiste Daroussinto process the file may be preferable. 84361d06d6bSBaptiste Daroussin.It Cm error 84461d06d6bSBaptiste DaroussinIndicates a risk of information loss or severe misformatting, 84561d06d6bSBaptiste Daroussinin most cases caused by serious syntax errors. 84661d06d6bSBaptiste Daroussin.It Cm warning 84761d06d6bSBaptiste DaroussinIndicates a risk that the information shown or its formatting 84861d06d6bSBaptiste Daroussinmay mismatch the author's intent in minor ways. 84961d06d6bSBaptiste DaroussinAdditionally, syntax errors are classified at least as warnings, 85061d06d6bSBaptiste Daroussineven if they do not usually cause misformatting. 85161d06d6bSBaptiste Daroussin.It Cm style 85261d06d6bSBaptiste DaroussinAn input file uses dubious or discouraged style. 85361d06d6bSBaptiste DaroussinThis is not a complaint about the syntax, and probably neither 85461d06d6bSBaptiste Daroussinformatting nor portability are in danger. 85561d06d6bSBaptiste DaroussinWhile great care is taken to avoid false positives on the higher 85661d06d6bSBaptiste Daroussinmessage levels, the 85761d06d6bSBaptiste Daroussin.Cm style 85861d06d6bSBaptiste Daroussinlevel tries to reduce the probability that issues go unnoticed, 85961d06d6bSBaptiste Daroussinso it may occasionally issue bogus suggestions. 860*c1c95addSBrooks DavisUse your judgement to decide whether any particular 86161d06d6bSBaptiste Daroussin.Cm style 86261d06d6bSBaptiste Daroussinsuggestion really justifies a change to the input file. 86361d06d6bSBaptiste Daroussin.It Cm base 86461d06d6bSBaptiste DaroussinA convention used in the base system of a specific operating system 86561d06d6bSBaptiste Daroussinis not adhered to. 86661d06d6bSBaptiste DaroussinThese are not markup mistakes, and neither the quality of formatting 86761d06d6bSBaptiste Daroussinnor portability are in danger. 86861d06d6bSBaptiste DaroussinMessages of the 86961d06d6bSBaptiste Daroussin.Cm base 87061d06d6bSBaptiste Daroussinlevel are printed with the more intuitive 87161d06d6bSBaptiste Daroussin.Cm style 87261d06d6bSBaptiste Daroussin.Ar level 87361d06d6bSBaptiste Daroussintag. 87461d06d6bSBaptiste Daroussin.El 87561d06d6bSBaptiste Daroussin.Pp 87661d06d6bSBaptiste DaroussinMessages of the 87761d06d6bSBaptiste Daroussin.Cm base , 87861d06d6bSBaptiste Daroussin.Cm style , 87961d06d6bSBaptiste Daroussin.Cm warning , 88061d06d6bSBaptiste Daroussin.Cm error , 88161d06d6bSBaptiste Daroussinand 88261d06d6bSBaptiste Daroussin.Cm unsupp 88345a5aec3SBaptiste Daroussinlevels are hidden unless their level, or a lower level, is requested using a 88461d06d6bSBaptiste Daroussin.Fl W 88561d06d6bSBaptiste Daroussinoption or 88661d06d6bSBaptiste Daroussin.Fl T Cm lint 88761d06d6bSBaptiste Daroussinoutput mode. 88861d06d6bSBaptiste Daroussin.Pp 88961d06d6bSBaptiste DaroussinAs indicated below, all 89061d06d6bSBaptiste Daroussin.Cm base 89161d06d6bSBaptiste Daroussinand some 89261d06d6bSBaptiste Daroussin.Cm style 89361d06d6bSBaptiste Daroussinchecks are only performed if a specific operating system name occurs 89461d06d6bSBaptiste Daroussinin the arguments of the 89561d06d6bSBaptiste Daroussin.Fl W 89661d06d6bSBaptiste Daroussincommand line option, of the 89761d06d6bSBaptiste Daroussin.Ic \&Os 89861d06d6bSBaptiste Daroussinmacro, of the 89961d06d6bSBaptiste Daroussin.Fl Ios 90061d06d6bSBaptiste Daroussincommand line option, or, if neither are present, in the return value 90161d06d6bSBaptiste Daroussinof the 90261d06d6bSBaptiste Daroussin.Xr uname 3 90361d06d6bSBaptiste Daroussinfunction. 90461d06d6bSBaptiste Daroussin.Ss Conventions for base system manuals 90561d06d6bSBaptiste Daroussin.Bl -ohang 90661d06d6bSBaptiste Daroussin.It Sy "Mdocdate found" 90761d06d6bSBaptiste Daroussin.Pq mdoc , Nx 90861d06d6bSBaptiste DaroussinThe 90961d06d6bSBaptiste Daroussin.Ic \&Dd 91061d06d6bSBaptiste Daroussinmacro uses CVS 91161d06d6bSBaptiste Daroussin.Ic Mdocdate 91261d06d6bSBaptiste Daroussinkeyword substitution, which is not supported by the 91361d06d6bSBaptiste Daroussin.Nx 91461d06d6bSBaptiste Daroussinbase system. 91561d06d6bSBaptiste DaroussinConsider using the conventional 91661d06d6bSBaptiste Daroussin.Dq "Month dd, yyyy" 91761d06d6bSBaptiste Daroussinformat instead. 91861d06d6bSBaptiste Daroussin.It Sy "Mdocdate missing" 91961d06d6bSBaptiste Daroussin.Pq mdoc , Ox 92061d06d6bSBaptiste DaroussinThe 92161d06d6bSBaptiste Daroussin.Ic \&Dd 92261d06d6bSBaptiste Daroussinmacro does not use CVS 92361d06d6bSBaptiste Daroussin.Ic Mdocdate 92461d06d6bSBaptiste Daroussinkeyword substitution, but using it is conventionally expected in the 92561d06d6bSBaptiste Daroussin.Ox 92661d06d6bSBaptiste Daroussinbase system. 92761d06d6bSBaptiste Daroussin.It Sy "unknown architecture" 92861d06d6bSBaptiste Daroussin.Pq mdoc , Ox , Nx 92961d06d6bSBaptiste DaroussinThe third argument of the 93061d06d6bSBaptiste Daroussin.Ic \&Dt 93161d06d6bSBaptiste Daroussinmacro does not match any of the architectures this operating system 93261d06d6bSBaptiste Daroussinis running on. 93361d06d6bSBaptiste Daroussin.It Sy "operating system explicitly specified" 93461d06d6bSBaptiste Daroussin.Pq mdoc , Ox , Nx 93561d06d6bSBaptiste DaroussinThe 93661d06d6bSBaptiste Daroussin.Ic \&Os 93761d06d6bSBaptiste Daroussinmacro has an argument. 93861d06d6bSBaptiste DaroussinIn the base system, it is conventionally left blank. 93961d06d6bSBaptiste Daroussin.It Sy "RCS id missing" 94061d06d6bSBaptiste Daroussin.Pq Ox , Nx 94161d06d6bSBaptiste DaroussinThe manual page lacks the comment line with the RCS identifier 94261d06d6bSBaptiste Daroussingenerated by CVS 94361d06d6bSBaptiste Daroussin.Ic OpenBSD 94461d06d6bSBaptiste Daroussinor 94561d06d6bSBaptiste Daroussin.Ic NetBSD 94661d06d6bSBaptiste Daroussinkeyword substitution as conventionally used in these operating systems. 94761d06d6bSBaptiste Daroussin.El 94861d06d6bSBaptiste Daroussin.Ss Style suggestions 94961d06d6bSBaptiste Daroussin.Bl -ohang 95061d06d6bSBaptiste Daroussin.It Sy "legacy man(7) date format" 95161d06d6bSBaptiste Daroussin.Pq mdoc 95261d06d6bSBaptiste DaroussinThe 95361d06d6bSBaptiste Daroussin.Ic \&Dd 95461d06d6bSBaptiste Daroussinmacro uses the legacy 95561d06d6bSBaptiste Daroussin.Xr man 7 95661d06d6bSBaptiste Daroussindate format 95761d06d6bSBaptiste Daroussin.Dq yyyy-dd-mm . 95861d06d6bSBaptiste DaroussinConsider using the conventional 95961d06d6bSBaptiste Daroussin.Xr mdoc 7 96061d06d6bSBaptiste Daroussindate format 96161d06d6bSBaptiste Daroussin.Dq "Month dd, yyyy" 96261d06d6bSBaptiste Daroussininstead. 96361d06d6bSBaptiste Daroussin.It Sy "normalizing date format to" : No ... 96461d06d6bSBaptiste Daroussin.Pq mdoc , man 96561d06d6bSBaptiste DaroussinThe 96661d06d6bSBaptiste Daroussin.Ic \&Dd 96761d06d6bSBaptiste Daroussinor 96861d06d6bSBaptiste Daroussin.Ic \&TH 96961d06d6bSBaptiste Daroussinmacro provides an abbreviated month name or a day number with a 97061d06d6bSBaptiste Daroussinleading zero. 97161d06d6bSBaptiste DaroussinIn the formatted output, the month name is written out in full 97261d06d6bSBaptiste Daroussinand the leading zero is omitted. 97361d06d6bSBaptiste Daroussin.It Sy "lower case character in document title" 97461d06d6bSBaptiste Daroussin.Pq mdoc , man 97561d06d6bSBaptiste DaroussinThe title is still used as given in the 97661d06d6bSBaptiste Daroussin.Ic \&Dt 97761d06d6bSBaptiste Daroussinor 97861d06d6bSBaptiste Daroussin.Ic \&TH 97961d06d6bSBaptiste Daroussinmacro. 98061d06d6bSBaptiste Daroussin.It Sy "duplicate RCS id" 98161d06d6bSBaptiste DaroussinA single manual page contains two copies of the RCS identifier for 98261d06d6bSBaptiste Daroussinthe same operating system. 98361d06d6bSBaptiste DaroussinConsider deleting the later instance and moving the first one up 98461d06d6bSBaptiste Daroussinto the top of the page. 98561d06d6bSBaptiste Daroussin.It Sy "possible typo in section name" 98661d06d6bSBaptiste Daroussin.Pq mdoc 98761d06d6bSBaptiste DaroussinFuzzy string matching revealed that the argument of an 98861d06d6bSBaptiste Daroussin.Ic \&Sh 98961d06d6bSBaptiste Daroussinmacro is similar, but not identical to a standard section name. 99061d06d6bSBaptiste Daroussin.It Sy "unterminated quoted argument" 99161d06d6bSBaptiste Daroussin.Pq roff 99261d06d6bSBaptiste DaroussinMacro arguments can be enclosed in double quote characters 99361d06d6bSBaptiste Daroussinsuch that space characters and macro names contained in the quoted 99461d06d6bSBaptiste Daroussinargument need not be escaped. 99561d06d6bSBaptiste DaroussinThe closing quote of the last argument of a macro can be omitted. 99661d06d6bSBaptiste DaroussinHowever, omitting it is not recommended because it makes the code 99761d06d6bSBaptiste Daroussinharder to read. 99861d06d6bSBaptiste Daroussin.It Sy "useless macro" 99961d06d6bSBaptiste Daroussin.Pq mdoc 100061d06d6bSBaptiste DaroussinA 100161d06d6bSBaptiste Daroussin.Ic \&Bt , 100261d06d6bSBaptiste Daroussin.Ic \&Tn , 100361d06d6bSBaptiste Daroussinor 100461d06d6bSBaptiste Daroussin.Ic \&Ud 100561d06d6bSBaptiste Daroussinmacro was found. 100661d06d6bSBaptiste DaroussinSimply delete it: it serves no useful purpose. 100761d06d6bSBaptiste Daroussin.It Sy "consider using OS macro" 100861d06d6bSBaptiste Daroussin.Pq mdoc 100961d06d6bSBaptiste DaroussinA string was found in plain text or in a 101061d06d6bSBaptiste Daroussin.Ic \&Bx 101161d06d6bSBaptiste Daroussinmacro that could be represented using 101261d06d6bSBaptiste Daroussin.Ic \&Ox , 101361d06d6bSBaptiste Daroussin.Ic \&Nx , 101461d06d6bSBaptiste Daroussin.Ic \&Fx , 101561d06d6bSBaptiste Daroussinor 101661d06d6bSBaptiste Daroussin.Ic \&Dx . 101761d06d6bSBaptiste Daroussin.It Sy "errnos out of order" 101861d06d6bSBaptiste Daroussin.Pq mdoc, Nx 101961d06d6bSBaptiste DaroussinThe 102061d06d6bSBaptiste Daroussin.Ic \&Er 102161d06d6bSBaptiste Daroussinitems in a 102261d06d6bSBaptiste Daroussin.Ic \&Bl 102361d06d6bSBaptiste Daroussinlist are not in alphabetical order. 102461d06d6bSBaptiste Daroussin.It Sy "duplicate errno" 102561d06d6bSBaptiste Daroussin.Pq mdoc, Nx 102661d06d6bSBaptiste DaroussinA 102761d06d6bSBaptiste Daroussin.Ic \&Bl 102861d06d6bSBaptiste Daroussinlist contains two consecutive 102961d06d6bSBaptiste Daroussin.Ic \&It 103061d06d6bSBaptiste Daroussinentries describing the same 103161d06d6bSBaptiste Daroussin.Ic \&Er 103261d06d6bSBaptiste Daroussinnumber. 10336d38604fSBaptiste Daroussin.It Sy "referenced manual not found" 10346d38604fSBaptiste Daroussin.Pq mdoc 10356d38604fSBaptiste DaroussinAn 10366d38604fSBaptiste Daroussin.Ic \&Xr 10376d38604fSBaptiste Daroussinmacro references a manual page that was not found. 10386d38604fSBaptiste DaroussinWhen running with 10396d38604fSBaptiste Daroussin.Fl W Cm base , 10406d38604fSBaptiste Daroussinthe search is restricted to the base system, by default to 10416d38604fSBaptiste Daroussin.Pa /usr/share/man : Ns Pa /usr/X11R6/man . 10426d38604fSBaptiste DaroussinThis path can be configured at compile time using the 10436d38604fSBaptiste Daroussin.Dv MANPATH_BASE 10446d38604fSBaptiste Daroussinpreprocessor macro. 10456d38604fSBaptiste DaroussinWhen running with 10466d38604fSBaptiste Daroussin.Fl W Cm style , 10476d38604fSBaptiste Daroussinthe search is done along the full search path as described in the 10486d38604fSBaptiste Daroussin.Xr man 1 10496d38604fSBaptiste Daroussinmanual page, respecting the 10506d38604fSBaptiste Daroussin.Fl m 10516d38604fSBaptiste Daroussinand 10526d38604fSBaptiste Daroussin.Fl M 10536d38604fSBaptiste Daroussincommand line options, the 10546d38604fSBaptiste Daroussin.Ev MANPATH 10556d38604fSBaptiste Daroussinenvironment variable, the 10566d38604fSBaptiste Daroussin.Xr man.conf 5 10576d38604fSBaptiste Daroussinfile and falling back to the default of 10586d38604fSBaptiste Daroussin.Pa /usr/share/man : Ns Pa /usr/X11R6/man : Ns Pa /usr/local/man , 10596d38604fSBaptiste Daroussinalso configurable at compile time using the 10606d38604fSBaptiste Daroussin.Dv MANPATH_DEFAULT 10616d38604fSBaptiste Daroussinpreprocessor macro. 106261d06d6bSBaptiste Daroussin.It Sy "trailing delimiter" 106361d06d6bSBaptiste Daroussin.Pq mdoc 106461d06d6bSBaptiste DaroussinThe last argument of an 106561d06d6bSBaptiste Daroussin.Ic \&Ex , \&Fo , \&Nd , \&Nm , \&Os , \&Sh , \&Ss , \&St , 106661d06d6bSBaptiste Daroussinor 106761d06d6bSBaptiste Daroussin.Ic \&Sx 106861d06d6bSBaptiste Daroussinmacro ends with a trailing delimiter. 106961d06d6bSBaptiste DaroussinThis is usually bad style and often indicates typos. 107061d06d6bSBaptiste DaroussinMost likely, the delimiter can be removed. 107161d06d6bSBaptiste Daroussin.It Sy "no blank before trailing delimiter" 107261d06d6bSBaptiste Daroussin.Pq mdoc 107361d06d6bSBaptiste DaroussinThe last argument of a macro that supports trailing delimiter 107461d06d6bSBaptiste Daroussinarguments is longer than one byte and ends with a trailing delimiter. 107561d06d6bSBaptiste DaroussinConsider inserting a blank such that the delimiter becomes a separate 107661d06d6bSBaptiste Daroussinargument, thus moving it out of the scope of the macro. 107761d06d6bSBaptiste Daroussin.It Sy "fill mode already enabled, skipping" 107861d06d6bSBaptiste Daroussin.Pq man 107961d06d6bSBaptiste DaroussinA 108061d06d6bSBaptiste Daroussin.Ic \&fi 108161d06d6bSBaptiste Daroussinrequest occurs even though the document is still in fill mode, 108261d06d6bSBaptiste Daroussinor already switched back to fill mode. 108361d06d6bSBaptiste DaroussinIt has no effect. 108461d06d6bSBaptiste Daroussin.It Sy "fill mode already disabled, skipping" 108561d06d6bSBaptiste Daroussin.Pq man 108661d06d6bSBaptiste DaroussinAn 108761d06d6bSBaptiste Daroussin.Ic \&nf 108861d06d6bSBaptiste Daroussinrequest occurs even though the document already switched to no-fill mode 108961d06d6bSBaptiste Daroussinand did not switch back to fill mode yet. 109061d06d6bSBaptiste DaroussinIt has no effect. 10916d38604fSBaptiste Daroussin.It Sy "input text line longer than 80 bytes" 10926d38604fSBaptiste DaroussinConsider breaking the input text line 10936d38604fSBaptiste Daroussinat one of the blank characters before column 80. 109461d06d6bSBaptiste Daroussin.It Sy "verbatim \(dq--\(dq, maybe consider using \e(em" 109561d06d6bSBaptiste Daroussin.Pq mdoc 109661d06d6bSBaptiste DaroussinEven though the ASCII output device renders an em-dash as 109761d06d6bSBaptiste Daroussin.Qq \-\- , 109861d06d6bSBaptiste Daroussinthat is not a good way to write it in an input file 109961d06d6bSBaptiste Daroussinbecause it renders poorly on all other output devices. 110061d06d6bSBaptiste Daroussin.It Sy "function name without markup" 110161d06d6bSBaptiste Daroussin.Pq mdoc 110261d06d6bSBaptiste DaroussinA word followed by an empty pair of parentheses occurs on a text line. 110361d06d6bSBaptiste DaroussinConsider using an 110461d06d6bSBaptiste Daroussin.Ic \&Fn 110561d06d6bSBaptiste Daroussinor 110661d06d6bSBaptiste Daroussin.Ic \&Xr 110761d06d6bSBaptiste Daroussinmacro. 110861d06d6bSBaptiste Daroussin.It Sy "whitespace at end of input line" 110961d06d6bSBaptiste Daroussin.Pq mdoc , man , roff 111061d06d6bSBaptiste DaroussinWhitespace at the end of input lines is almost never semantically 111161d06d6bSBaptiste Daroussinsignificant \(em but in the odd case where it might be, it is 111261d06d6bSBaptiste Daroussinextremely confusing when reviewing and maintaining documents. 111361d06d6bSBaptiste Daroussin.It Sy "bad comment style" 111461d06d6bSBaptiste Daroussin.Pq roff 111561d06d6bSBaptiste DaroussinComment lines start with a dot, a backslash, and a double-quote character. 111661d06d6bSBaptiste DaroussinThe 111761d06d6bSBaptiste Daroussin.Nm 111861d06d6bSBaptiste Daroussinutility treats the line as a comment line even without the backslash, 111961d06d6bSBaptiste Daroussinbut leaving out the backslash might not be portable. 112061d06d6bSBaptiste Daroussin.El 112161d06d6bSBaptiste Daroussin.Ss Warnings related to the document prologue 112261d06d6bSBaptiste Daroussin.Bl -ohang 112361d06d6bSBaptiste Daroussin.It Sy "missing manual title, using UNTITLED" 112461d06d6bSBaptiste Daroussin.Pq mdoc 112561d06d6bSBaptiste DaroussinA 112661d06d6bSBaptiste Daroussin.Ic \&Dt 112761d06d6bSBaptiste Daroussinmacro has no arguments, or there is no 112861d06d6bSBaptiste Daroussin.Ic \&Dt 112961d06d6bSBaptiste Daroussinmacro before the first non-prologue macro. 113061d06d6bSBaptiste Daroussin.It Sy "missing manual title, using \(dq\(dq" 113161d06d6bSBaptiste Daroussin.Pq man 113261d06d6bSBaptiste DaroussinThere is no 113361d06d6bSBaptiste Daroussin.Ic \&TH 113461d06d6bSBaptiste Daroussinmacro, or it has no arguments. 113561d06d6bSBaptiste Daroussin.It Sy "missing manual section, using \(dq\(dq" 113661d06d6bSBaptiste Daroussin.Pq mdoc , man 113761d06d6bSBaptiste DaroussinA 113861d06d6bSBaptiste Daroussin.Ic \&Dt 113961d06d6bSBaptiste Daroussinor 114061d06d6bSBaptiste Daroussin.Ic \&TH 114161d06d6bSBaptiste Daroussinmacro lacks the mandatory section argument. 114261d06d6bSBaptiste Daroussin.It Sy "unknown manual section" 114361d06d6bSBaptiste Daroussin.Pq mdoc 114461d06d6bSBaptiste DaroussinThe section number in a 114561d06d6bSBaptiste Daroussin.Ic \&Dt 114661d06d6bSBaptiste Daroussinline is invalid, but still used. 11476d38604fSBaptiste Daroussin.It Sy "filename/section mismatch" 11486d38604fSBaptiste Daroussin.Pq mdoc , man 11496d38604fSBaptiste DaroussinThe name of the input file being processed is known and its file 11506d38604fSBaptiste Daroussinname extension starts with a non-zero digit, but the 11516d38604fSBaptiste Daroussin.Ic \&Dt 11526d38604fSBaptiste Daroussinor 11536d38604fSBaptiste Daroussin.Ic \&TH 11546d38604fSBaptiste Daroussinmacro contains a 11556d38604fSBaptiste Daroussin.Ar section 11566d38604fSBaptiste Daroussinargument that starts with a different non-zero digit. 11576d38604fSBaptiste DaroussinThe 11586d38604fSBaptiste Daroussin.Ar section 11596d38604fSBaptiste Daroussinargument is used as provided anyway. 11606d38604fSBaptiste DaroussinConsider checking whether the file name or the argument need a correction. 11616d38604fSBaptiste Daroussin.It Sy "missing date, using \(dq\(dq" 116261d06d6bSBaptiste Daroussin.Pq mdoc, man 116361d06d6bSBaptiste DaroussinThe document was parsed as 116461d06d6bSBaptiste Daroussin.Xr mdoc 7 116561d06d6bSBaptiste Daroussinand it has no 116661d06d6bSBaptiste Daroussin.Ic \&Dd 116761d06d6bSBaptiste Daroussinmacro, or the 116861d06d6bSBaptiste Daroussin.Ic \&Dd 116961d06d6bSBaptiste Daroussinmacro has no arguments or only empty arguments; 117061d06d6bSBaptiste Daroussinor the document was parsed as 117161d06d6bSBaptiste Daroussin.Xr man 7 117261d06d6bSBaptiste Daroussinand it has no 117361d06d6bSBaptiste Daroussin.Ic \&TH 117461d06d6bSBaptiste Daroussinmacro, or the 117561d06d6bSBaptiste Daroussin.Ic \&TH 117661d06d6bSBaptiste Daroussinmacro has less than three arguments or its third argument is empty. 117761d06d6bSBaptiste Daroussin.It Sy "cannot parse date, using it verbatim" 117861d06d6bSBaptiste Daroussin.Pq mdoc , man 117961d06d6bSBaptiste DaroussinThe date given in a 118061d06d6bSBaptiste Daroussin.Ic \&Dd 118161d06d6bSBaptiste Daroussinor 118261d06d6bSBaptiste Daroussin.Ic \&TH 118361d06d6bSBaptiste Daroussinmacro does not follow the conventional format. 118461d06d6bSBaptiste Daroussin.It Sy "date in the future, using it anyway" 118561d06d6bSBaptiste Daroussin.Pq mdoc , man 118661d06d6bSBaptiste DaroussinThe date given in a 118761d06d6bSBaptiste Daroussin.Ic \&Dd 118861d06d6bSBaptiste Daroussinor 118961d06d6bSBaptiste Daroussin.Ic \&TH 119061d06d6bSBaptiste Daroussinmacro is more than a day ahead of the current system 119161d06d6bSBaptiste Daroussin.Xr time 3 . 119261d06d6bSBaptiste Daroussin.It Sy "missing Os macro, using \(dq\(dq" 119361d06d6bSBaptiste Daroussin.Pq mdoc 119461d06d6bSBaptiste DaroussinThe default or current system is not shown in this case. 119561d06d6bSBaptiste Daroussin.It Sy "late prologue macro" 119661d06d6bSBaptiste Daroussin.Pq mdoc 119761d06d6bSBaptiste DaroussinA 119861d06d6bSBaptiste Daroussin.Ic \&Dd 119961d06d6bSBaptiste Daroussinor 120061d06d6bSBaptiste Daroussin.Ic \&Os 120161d06d6bSBaptiste Daroussinmacro occurs after some non-prologue macro, but still takes effect. 120261d06d6bSBaptiste Daroussin.It Sy "prologue macros out of order" 120361d06d6bSBaptiste Daroussin.Pq mdoc 120461d06d6bSBaptiste DaroussinThe prologue macros are not given in the conventional order 120561d06d6bSBaptiste Daroussin.Ic \&Dd , 120661d06d6bSBaptiste Daroussin.Ic \&Dt , 120761d06d6bSBaptiste Daroussin.Ic \&Os . 120861d06d6bSBaptiste DaroussinAll three macros are used even when given in another order. 120961d06d6bSBaptiste Daroussin.El 121061d06d6bSBaptiste Daroussin.Ss Warnings regarding document structure 121161d06d6bSBaptiste Daroussin.Bl -ohang 121261d06d6bSBaptiste Daroussin.It Sy ".so is fragile, better use ln(1)" 121361d06d6bSBaptiste Daroussin.Pq roff 121461d06d6bSBaptiste DaroussinIncluding files only works when the parser program runs with the correct 121561d06d6bSBaptiste Daroussincurrent working directory. 121661d06d6bSBaptiste Daroussin.It Sy "no document body" 121761d06d6bSBaptiste Daroussin.Pq mdoc , man 121861d06d6bSBaptiste DaroussinThe document body contains neither text nor macros. 121961d06d6bSBaptiste DaroussinAn empty document is shown, consisting only of a header and a footer line. 122061d06d6bSBaptiste Daroussin.It Sy "content before first section header" 122161d06d6bSBaptiste Daroussin.Pq mdoc , man 122261d06d6bSBaptiste DaroussinSome macros or text precede the first 122361d06d6bSBaptiste Daroussin.Ic \&Sh 122461d06d6bSBaptiste Daroussinor 122561d06d6bSBaptiste Daroussin.Ic \&SH 122661d06d6bSBaptiste Daroussinsection header. 122761d06d6bSBaptiste DaroussinThe offending macros and text are parsed and added to the top level 122861d06d6bSBaptiste Daroussinof the syntax tree, outside any section block. 122961d06d6bSBaptiste Daroussin.It Sy "first section is not NAME" 123061d06d6bSBaptiste Daroussin.Pq mdoc 123161d06d6bSBaptiste DaroussinThe argument of the first 123261d06d6bSBaptiste Daroussin.Ic \&Sh 123361d06d6bSBaptiste Daroussinmacro is not 123461d06d6bSBaptiste Daroussin.Sq NAME . 123561d06d6bSBaptiste DaroussinThis may confuse 123661d06d6bSBaptiste Daroussin.Xr makewhatis 8 123761d06d6bSBaptiste Daroussinand 123861d06d6bSBaptiste Daroussin.Xr apropos 1 . 123961d06d6bSBaptiste Daroussin.It Sy "NAME section without Nm before Nd" 124061d06d6bSBaptiste Daroussin.Pq mdoc 124161d06d6bSBaptiste DaroussinThe NAME section does not contain any 124261d06d6bSBaptiste Daroussin.Ic \&Nm 124361d06d6bSBaptiste Daroussinchild macro before the first 124461d06d6bSBaptiste Daroussin.Ic \&Nd 124561d06d6bSBaptiste Daroussinmacro. 124661d06d6bSBaptiste Daroussin.It Sy "NAME section without description" 124761d06d6bSBaptiste Daroussin.Pq mdoc 124861d06d6bSBaptiste DaroussinThe NAME section lacks the mandatory 124961d06d6bSBaptiste Daroussin.Ic \&Nd 125061d06d6bSBaptiste Daroussinchild macro. 125161d06d6bSBaptiste Daroussin.It Sy "description not at the end of NAME" 125261d06d6bSBaptiste Daroussin.Pq mdoc 125361d06d6bSBaptiste DaroussinThe NAME section does contain an 125461d06d6bSBaptiste Daroussin.Ic \&Nd 125561d06d6bSBaptiste Daroussinchild macro, but other content follows it. 125661d06d6bSBaptiste Daroussin.It Sy "bad NAME section content" 125761d06d6bSBaptiste Daroussin.Pq mdoc 125861d06d6bSBaptiste DaroussinThe NAME section contains plain text or macros other than 125961d06d6bSBaptiste Daroussin.Ic \&Nm 126061d06d6bSBaptiste Daroussinand 126161d06d6bSBaptiste Daroussin.Ic \&Nd . 126261d06d6bSBaptiste Daroussin.It Sy "missing comma before name" 126361d06d6bSBaptiste Daroussin.Pq mdoc 126461d06d6bSBaptiste DaroussinThe NAME section contains an 126561d06d6bSBaptiste Daroussin.Ic \&Nm 126661d06d6bSBaptiste Daroussinmacro that is neither the first one nor preceded by a comma. 126761d06d6bSBaptiste Daroussin.It Sy "missing description line, using \(dq\(dq" 126861d06d6bSBaptiste Daroussin.Pq mdoc 126961d06d6bSBaptiste DaroussinThe 127061d06d6bSBaptiste Daroussin.Ic \&Nd 127161d06d6bSBaptiste Daroussinmacro lacks the required argument. 127261d06d6bSBaptiste DaroussinThe title line of the manual will end after the dash. 127361d06d6bSBaptiste Daroussin.It Sy "description line outside NAME section" 127461d06d6bSBaptiste Daroussin.Pq mdoc 127561d06d6bSBaptiste DaroussinAn 127661d06d6bSBaptiste Daroussin.Ic \&Nd 127761d06d6bSBaptiste Daroussinmacro appears outside the NAME section. 127861d06d6bSBaptiste DaroussinThe arguments are printed anyway and the following text is used for 127961d06d6bSBaptiste Daroussin.Xr apropos 1 , 128061d06d6bSBaptiste Daroussinbut none of that behaviour is portable. 128161d06d6bSBaptiste Daroussin.It Sy "sections out of conventional order" 128261d06d6bSBaptiste Daroussin.Pq mdoc 128361d06d6bSBaptiste DaroussinA standard section occurs after another section it usually precedes. 128461d06d6bSBaptiste DaroussinAll section titles are used as given, 128561d06d6bSBaptiste Daroussinand the order of sections is not changed. 128661d06d6bSBaptiste Daroussin.It Sy "duplicate section title" 128761d06d6bSBaptiste Daroussin.Pq mdoc 128861d06d6bSBaptiste DaroussinThe same standard section title occurs more than once. 128961d06d6bSBaptiste Daroussin.It Sy "unexpected section" 129061d06d6bSBaptiste Daroussin.Pq mdoc 129161d06d6bSBaptiste DaroussinA standard section header occurs in a section of the manual 129261d06d6bSBaptiste Daroussinwhere it normally isn't useful. 129361d06d6bSBaptiste Daroussin.It Sy "cross reference to self" 1294*c1c95addSBrooks Davis.Pq mdoc , man 129561d06d6bSBaptiste DaroussinAn 129661d06d6bSBaptiste Daroussin.Ic \&Xr 1297*c1c95addSBrooks Davisor 1298*c1c95addSBrooks Davis.Ic \&MR 129961d06d6bSBaptiste Daroussinmacro refers to a name and section matching the section of the present 130061d06d6bSBaptiste Daroussinmanual page and a name mentioned in an 130161d06d6bSBaptiste Daroussin.Ic \&Nm 130261d06d6bSBaptiste Daroussinmacro in the NAME or SYNOPSIS section, or in an 130361d06d6bSBaptiste Daroussin.Ic \&Fn 130461d06d6bSBaptiste Daroussinor 130561d06d6bSBaptiste Daroussin.Ic \&Fo 130661d06d6bSBaptiste Daroussinmacro in the SYNOPSIS. 130761d06d6bSBaptiste DaroussinConsider using 130861d06d6bSBaptiste Daroussin.Ic \&Nm 130961d06d6bSBaptiste Daroussinor 131061d06d6bSBaptiste Daroussin.Ic \&Fn 131161d06d6bSBaptiste Daroussininstead of 131261d06d6bSBaptiste Daroussin.Ic \&Xr . 131361d06d6bSBaptiste Daroussin.It Sy "unusual Xr order" 131461d06d6bSBaptiste Daroussin.Pq mdoc 131561d06d6bSBaptiste DaroussinIn the SEE ALSO section, an 131661d06d6bSBaptiste Daroussin.Ic \&Xr 131761d06d6bSBaptiste Daroussinmacro with a lower section number follows one with a higher number, 131861d06d6bSBaptiste Daroussinor two 131961d06d6bSBaptiste Daroussin.Ic \&Xr 132061d06d6bSBaptiste Daroussinmacros referring to the same section are out of alphabetical order. 132161d06d6bSBaptiste Daroussin.It Sy "unusual Xr punctuation" 132261d06d6bSBaptiste Daroussin.Pq mdoc 132361d06d6bSBaptiste DaroussinIn the SEE ALSO section, punctuation between two 132461d06d6bSBaptiste Daroussin.Ic \&Xr 132561d06d6bSBaptiste Daroussinmacros differs from a single comma, or there is trailing punctuation 132661d06d6bSBaptiste Daroussinafter the last 132761d06d6bSBaptiste Daroussin.Ic \&Xr 132861d06d6bSBaptiste Daroussinmacro. 132961d06d6bSBaptiste Daroussin.It Sy "AUTHORS section without An macro" 133061d06d6bSBaptiste Daroussin.Pq mdoc 133161d06d6bSBaptiste DaroussinAn AUTHORS sections contains no 133261d06d6bSBaptiste Daroussin.Ic \&An 133361d06d6bSBaptiste Daroussinmacros, or only empty ones. 133461d06d6bSBaptiste DaroussinProbably, there are author names lacking markup. 133561d06d6bSBaptiste Daroussin.El 133661d06d6bSBaptiste Daroussin.Ss "Warnings related to macros and nesting" 133761d06d6bSBaptiste Daroussin.Bl -ohang 133861d06d6bSBaptiste Daroussin.It Sy "obsolete macro" 133961d06d6bSBaptiste Daroussin.Pq mdoc 134061d06d6bSBaptiste DaroussinSee the 134161d06d6bSBaptiste Daroussin.Xr mdoc 7 134261d06d6bSBaptiste Daroussinmanual for replacements. 134361d06d6bSBaptiste Daroussin.It Sy "macro neither callable nor escaped" 134461d06d6bSBaptiste Daroussin.Pq mdoc 134561d06d6bSBaptiste DaroussinThe name of a macro that is not callable appears on a macro line. 134661d06d6bSBaptiste DaroussinIt is printed verbatim. 134761d06d6bSBaptiste DaroussinIf the intention is to call it, move it to its own input line; 134861d06d6bSBaptiste Daroussinotherwise, escape it by prepending 134961d06d6bSBaptiste Daroussin.Sq \e& . 135061d06d6bSBaptiste Daroussin.It Sy "skipping paragraph macro" 135161d06d6bSBaptiste DaroussinIn 135261d06d6bSBaptiste Daroussin.Xr mdoc 7 135361d06d6bSBaptiste Daroussindocuments, this happens 135461d06d6bSBaptiste Daroussin.Bl -dash -compact 135561d06d6bSBaptiste Daroussin.It 135661d06d6bSBaptiste Daroussinat the beginning and end of sections and subsections 135761d06d6bSBaptiste Daroussin.It 135861d06d6bSBaptiste Daroussinright before non-compact lists and displays 135961d06d6bSBaptiste Daroussin.It 136061d06d6bSBaptiste Daroussinat the end of items in non-column, non-compact lists 136161d06d6bSBaptiste Daroussin.It 136261d06d6bSBaptiste Daroussinand for multiple consecutive paragraph macros. 136361d06d6bSBaptiste Daroussin.El 136461d06d6bSBaptiste DaroussinIn 136561d06d6bSBaptiste Daroussin.Xr man 7 136661d06d6bSBaptiste Daroussindocuments, it happens 136761d06d6bSBaptiste Daroussin.Bl -dash -compact 136861d06d6bSBaptiste Daroussin.It 136961d06d6bSBaptiste Daroussinfor empty 137061d06d6bSBaptiste Daroussin.Ic \&P , 137161d06d6bSBaptiste Daroussin.Ic \&PP , 137261d06d6bSBaptiste Daroussinand 137361d06d6bSBaptiste Daroussin.Ic \&LP 137461d06d6bSBaptiste Daroussinmacros 137561d06d6bSBaptiste Daroussin.It 137661d06d6bSBaptiste Daroussinfor 137761d06d6bSBaptiste Daroussin.Ic \&IP 137861d06d6bSBaptiste Daroussinmacros having neither head nor body arguments 137961d06d6bSBaptiste Daroussin.It 138061d06d6bSBaptiste Daroussinfor 138161d06d6bSBaptiste Daroussin.Ic \&br 138261d06d6bSBaptiste Daroussinor 138361d06d6bSBaptiste Daroussin.Ic \&sp 138461d06d6bSBaptiste Daroussinright after 138561d06d6bSBaptiste Daroussin.Ic \&SH 138661d06d6bSBaptiste Daroussinor 138761d06d6bSBaptiste Daroussin.Ic \&SS 138861d06d6bSBaptiste Daroussin.El 138961d06d6bSBaptiste Daroussin.It Sy "moving paragraph macro out of list" 139061d06d6bSBaptiste Daroussin.Pq mdoc 139161d06d6bSBaptiste DaroussinA list item in a 139261d06d6bSBaptiste Daroussin.Ic \&Bl 139361d06d6bSBaptiste Daroussinlist contains a trailing paragraph macro. 139461d06d6bSBaptiste DaroussinThe paragraph macro is moved after the end of the list. 139561d06d6bSBaptiste Daroussin.It Sy "skipping no-space macro" 139661d06d6bSBaptiste Daroussin.Pq mdoc 139761d06d6bSBaptiste DaroussinAn input line begins with an 139861d06d6bSBaptiste Daroussin.Ic \&Ns 139961d06d6bSBaptiste Daroussinmacro, or the next argument after an 140061d06d6bSBaptiste Daroussin.Ic \&Ns 140161d06d6bSBaptiste Daroussinmacro is an isolated closing delimiter. 140261d06d6bSBaptiste DaroussinThe macro is ignored. 140361d06d6bSBaptiste Daroussin.It Sy "blocks badly nested" 140461d06d6bSBaptiste Daroussin.Pq mdoc 140561d06d6bSBaptiste DaroussinIf two blocks intersect, one should completely contain the other. 140661d06d6bSBaptiste DaroussinOtherwise, rendered output is likely to look strange in any output 140761d06d6bSBaptiste Daroussinformat, and rendering in SGML-based output formats is likely to be 140861d06d6bSBaptiste Daroussinoutright wrong because such languages do not support badly nested 140961d06d6bSBaptiste Daroussinblocks at all. 141061d06d6bSBaptiste DaroussinTypical examples of badly nested blocks are 141161d06d6bSBaptiste Daroussin.Qq Ic \&Ao \&Bo \&Ac \&Bc 141261d06d6bSBaptiste Daroussinand 141361d06d6bSBaptiste Daroussin.Qq Ic \&Ao \&Bq \&Ac . 141461d06d6bSBaptiste DaroussinIn these examples, 141561d06d6bSBaptiste Daroussin.Ic \&Ac 141661d06d6bSBaptiste Daroussinbreaks 141761d06d6bSBaptiste Daroussin.Ic \&Bo 141861d06d6bSBaptiste Daroussinand 141961d06d6bSBaptiste Daroussin.Ic \&Bq , 142061d06d6bSBaptiste Daroussinrespectively. 142161d06d6bSBaptiste Daroussin.It Sy "nested displays are not portable" 142261d06d6bSBaptiste Daroussin.Pq mdoc 142361d06d6bSBaptiste DaroussinA 142461d06d6bSBaptiste Daroussin.Ic \&Bd , 142561d06d6bSBaptiste Daroussin.Ic \&D1 , 142661d06d6bSBaptiste Daroussinor 142761d06d6bSBaptiste Daroussin.Ic \&Dl 142861d06d6bSBaptiste Daroussindisplay occurs nested inside another 142961d06d6bSBaptiste Daroussin.Ic \&Bd 143061d06d6bSBaptiste Daroussindisplay. 143161d06d6bSBaptiste DaroussinThis works with 143261d06d6bSBaptiste Daroussin.Nm , 143361d06d6bSBaptiste Daroussinbut fails with most other implementations. 143461d06d6bSBaptiste Daroussin.It Sy "moving content out of list" 143561d06d6bSBaptiste Daroussin.Pq mdoc 143661d06d6bSBaptiste DaroussinA 143761d06d6bSBaptiste Daroussin.Ic \&Bl 143861d06d6bSBaptiste Daroussinlist block contains text or macros before the first 143961d06d6bSBaptiste Daroussin.Ic \&It 144061d06d6bSBaptiste Daroussinmacro. 144161d06d6bSBaptiste DaroussinThe offending children are moved before the beginning of the list. 144261d06d6bSBaptiste Daroussin.It Sy "first macro on line" 144361d06d6bSBaptiste DaroussinInside a 144461d06d6bSBaptiste Daroussin.Ic \&Bl Fl column 144561d06d6bSBaptiste Daroussinlist, a 144661d06d6bSBaptiste Daroussin.Ic \&Ta 144761d06d6bSBaptiste Daroussinmacro occurs as the first macro on a line, which is not portable. 144861d06d6bSBaptiste Daroussin.It Sy "line scope broken" 144961d06d6bSBaptiste Daroussin.Pq man 145061d06d6bSBaptiste DaroussinWhile parsing the next-line scope of the previous macro, 145161d06d6bSBaptiste Daroussinanother macro is found that prematurely terminates the previous one. 145261d06d6bSBaptiste DaroussinThe previous, interrupted macro is deleted from the parse tree. 145361d06d6bSBaptiste Daroussin.El 145461d06d6bSBaptiste Daroussin.Ss "Warnings related to missing arguments" 145561d06d6bSBaptiste Daroussin.Bl -ohang 145661d06d6bSBaptiste Daroussin.It Sy "skipping empty request" 145761d06d6bSBaptiste Daroussin.Pq roff , eqn 145861d06d6bSBaptiste DaroussinThe macro name is missing from a macro definition request, 145961d06d6bSBaptiste Daroussinor an 146061d06d6bSBaptiste Daroussin.Xr eqn 7 146161d06d6bSBaptiste Daroussincontrol statement or operation keyword lacks its required argument. 146261d06d6bSBaptiste Daroussin.It Sy "conditional request controls empty scope" 146361d06d6bSBaptiste Daroussin.Pq roff 146461d06d6bSBaptiste DaroussinA conditional request is only useful if any of the following 146561d06d6bSBaptiste Daroussinfollows it on the same logical input line: 146661d06d6bSBaptiste Daroussin.Bl -dash -compact 146761d06d6bSBaptiste Daroussin.It 146861d06d6bSBaptiste DaroussinThe 146961d06d6bSBaptiste Daroussin.Sq \e{ 147061d06d6bSBaptiste Daroussinkeyword to open a multi-line scope. 147161d06d6bSBaptiste Daroussin.It 147261d06d6bSBaptiste DaroussinA request or macro or some text, resulting in a single-line scope. 147361d06d6bSBaptiste Daroussin.It 147461d06d6bSBaptiste DaroussinThe immediate end of the logical line without any intervening whitespace, 147561d06d6bSBaptiste Daroussinresulting in next-line scope. 147661d06d6bSBaptiste Daroussin.El 147761d06d6bSBaptiste DaroussinHere, a conditional request is followed by trailing whitespace only, 147861d06d6bSBaptiste Daroussinand there is no other content on its logical input line. 147961d06d6bSBaptiste DaroussinNote that it doesn't matter whether the logical input line is split 148061d06d6bSBaptiste Daroussinacross multiple physical input lines using 148161d06d6bSBaptiste Daroussin.Sq \e 148261d06d6bSBaptiste Daroussinline continuation characters. 148361d06d6bSBaptiste DaroussinThis is one of the rare cases 148461d06d6bSBaptiste Daroussinwhere trailing whitespace is syntactically significant. 148561d06d6bSBaptiste DaroussinThe conditional request controls a scope containing whitespace only, 148661d06d6bSBaptiste Daroussinso it is unlikely to have a significant effect, 148761d06d6bSBaptiste Daroussinexcept that it may control a following 148861d06d6bSBaptiste Daroussin.Ic \&el 148961d06d6bSBaptiste Daroussinclause. 149061d06d6bSBaptiste Daroussin.It Sy "skipping empty macro" 149161d06d6bSBaptiste Daroussin.Pq mdoc 149261d06d6bSBaptiste DaroussinThe indicated macro has no arguments and hence no effect. 149361d06d6bSBaptiste Daroussin.It Sy "empty block" 149461d06d6bSBaptiste Daroussin.Pq mdoc , man 149561d06d6bSBaptiste DaroussinA 149661d06d6bSBaptiste Daroussin.Ic \&Bd , 149761d06d6bSBaptiste Daroussin.Ic \&Bk , 149861d06d6bSBaptiste Daroussin.Ic \&Bl , 149961d06d6bSBaptiste Daroussin.Ic \&D1 , 150061d06d6bSBaptiste Daroussin.Ic \&Dl , 150161d06d6bSBaptiste Daroussinor 1502*c1c95addSBrooks Davis.Ic \&RS 150361d06d6bSBaptiste Daroussinblock contains nothing in its body and will produce no output. 150461d06d6bSBaptiste Daroussin.It Sy "empty argument, using 0n" 150561d06d6bSBaptiste Daroussin.Pq mdoc 150661d06d6bSBaptiste DaroussinThe required width is missing after 150761d06d6bSBaptiste Daroussin.Ic \&Bd 150861d06d6bSBaptiste Daroussinor 150961d06d6bSBaptiste Daroussin.Ic \&Bl 151061d06d6bSBaptiste Daroussin.Fl offset 151161d06d6bSBaptiste Daroussinor 151261d06d6bSBaptiste Daroussin.Fl width . 151361d06d6bSBaptiste Daroussin.It Sy "missing display type, using -ragged" 151461d06d6bSBaptiste Daroussin.Pq mdoc 151561d06d6bSBaptiste DaroussinThe 151661d06d6bSBaptiste Daroussin.Ic \&Bd 151761d06d6bSBaptiste Daroussinmacro is invoked without the required display type. 151861d06d6bSBaptiste Daroussin.It Sy "list type is not the first argument" 151961d06d6bSBaptiste Daroussin.Pq mdoc 152061d06d6bSBaptiste DaroussinIn a 152161d06d6bSBaptiste Daroussin.Ic \&Bl 152261d06d6bSBaptiste Daroussinmacro, at least one other argument precedes the type argument. 152361d06d6bSBaptiste DaroussinThe 152461d06d6bSBaptiste Daroussin.Nm 152561d06d6bSBaptiste Daroussinutility copes with any argument order, but some other 152661d06d6bSBaptiste Daroussin.Xr mdoc 7 152761d06d6bSBaptiste Daroussinimplementations do not. 152861d06d6bSBaptiste Daroussin.It Sy "missing -width in -tag list, using 8n" 152961d06d6bSBaptiste Daroussin.Pq mdoc 153061d06d6bSBaptiste DaroussinEvery 153161d06d6bSBaptiste Daroussin.Ic \&Bl 153261d06d6bSBaptiste Daroussinmacro having the 153361d06d6bSBaptiste Daroussin.Fl tag 153461d06d6bSBaptiste Daroussinargument requires 153561d06d6bSBaptiste Daroussin.Fl width , 153661d06d6bSBaptiste Daroussintoo. 153761d06d6bSBaptiste Daroussin.It Sy "missing utility name, using \(dq\(dq" 153861d06d6bSBaptiste Daroussin.Pq mdoc 153961d06d6bSBaptiste DaroussinThe 154061d06d6bSBaptiste Daroussin.Ic \&Ex Fl std 154161d06d6bSBaptiste Daroussinmacro is called without an argument before 154261d06d6bSBaptiste Daroussin.Ic \&Nm 154361d06d6bSBaptiste Daroussinhas first been called with an argument. 154461d06d6bSBaptiste Daroussin.It Sy "missing function name, using \(dq\(dq" 154561d06d6bSBaptiste Daroussin.Pq mdoc 154661d06d6bSBaptiste DaroussinThe 154761d06d6bSBaptiste Daroussin.Ic \&Fo 154861d06d6bSBaptiste Daroussinmacro is called without an argument. 154961d06d6bSBaptiste DaroussinNo function name is printed. 155061d06d6bSBaptiste Daroussin.It Sy "empty head in list item" 155161d06d6bSBaptiste Daroussin.Pq mdoc 155261d06d6bSBaptiste DaroussinIn a 155361d06d6bSBaptiste Daroussin.Ic \&Bl 155461d06d6bSBaptiste Daroussin.Fl diag , 155561d06d6bSBaptiste Daroussin.Fl hang , 155661d06d6bSBaptiste Daroussin.Fl inset , 155761d06d6bSBaptiste Daroussin.Fl ohang , 155861d06d6bSBaptiste Daroussinor 155961d06d6bSBaptiste Daroussin.Fl tag 156061d06d6bSBaptiste Daroussinlist, an 156161d06d6bSBaptiste Daroussin.Ic \&It 156261d06d6bSBaptiste Daroussinmacro lacks the required argument. 156361d06d6bSBaptiste DaroussinThe item head is left empty. 156461d06d6bSBaptiste Daroussin.It Sy "empty list item" 156561d06d6bSBaptiste Daroussin.Pq mdoc 156661d06d6bSBaptiste DaroussinIn a 156761d06d6bSBaptiste Daroussin.Ic \&Bl 156861d06d6bSBaptiste Daroussin.Fl bullet , 156961d06d6bSBaptiste Daroussin.Fl dash , 157061d06d6bSBaptiste Daroussin.Fl enum , 157161d06d6bSBaptiste Daroussinor 157261d06d6bSBaptiste Daroussin.Fl hyphen 157361d06d6bSBaptiste Daroussinlist, an 157461d06d6bSBaptiste Daroussin.Ic \&It 157561d06d6bSBaptiste Daroussinblock is empty. 157661d06d6bSBaptiste DaroussinAn empty list item is shown. 157761d06d6bSBaptiste Daroussin.It Sy "missing argument, using next line" 157861d06d6bSBaptiste Daroussin.Pq mdoc 157961d06d6bSBaptiste DaroussinAn 158061d06d6bSBaptiste Daroussin.Ic \&It 158161d06d6bSBaptiste Daroussinmacro in a 158261d06d6bSBaptiste Daroussin.Ic \&Bd Fl column 158361d06d6bSBaptiste Daroussinlist has no arguments. 158461d06d6bSBaptiste DaroussinWhile 158561d06d6bSBaptiste Daroussin.Nm 158661d06d6bSBaptiste Daroussinuses the text or macros of the following line, if any, for the cell, 158761d06d6bSBaptiste Daroussinother formatters may misformat the list. 158861d06d6bSBaptiste Daroussin.It Sy "missing font type, using \efR" 158961d06d6bSBaptiste Daroussin.Pq mdoc 159061d06d6bSBaptiste DaroussinA 159161d06d6bSBaptiste Daroussin.Ic \&Bf 159261d06d6bSBaptiste Daroussinmacro has no argument. 159361d06d6bSBaptiste DaroussinIt switches to the default font. 159461d06d6bSBaptiste Daroussin.It Sy "unknown font type, using \efR" 159561d06d6bSBaptiste Daroussin.Pq mdoc 159661d06d6bSBaptiste DaroussinThe 159761d06d6bSBaptiste Daroussin.Ic \&Bf 159861d06d6bSBaptiste Daroussinargument is invalid. 159961d06d6bSBaptiste DaroussinThe default font is used instead. 160061d06d6bSBaptiste Daroussin.It Sy "nothing follows prefix" 160161d06d6bSBaptiste Daroussin.Pq mdoc 160261d06d6bSBaptiste DaroussinA 160361d06d6bSBaptiste Daroussin.Ic \&Pf 160461d06d6bSBaptiste Daroussinmacro has no argument, or only one argument and no macro follows 160561d06d6bSBaptiste Daroussinon the same input line. 160661d06d6bSBaptiste DaroussinThis defeats its purpose; in particular, spacing is not suppressed 160761d06d6bSBaptiste Daroussinbefore the text or macros following on the next input line. 160861d06d6bSBaptiste Daroussin.It Sy "empty reference block" 160961d06d6bSBaptiste Daroussin.Pq mdoc 161061d06d6bSBaptiste DaroussinAn 161161d06d6bSBaptiste Daroussin.Ic \&Rs 161261d06d6bSBaptiste Daroussinmacro is immediately followed by an 161361d06d6bSBaptiste Daroussin.Ic \&Re 161461d06d6bSBaptiste Daroussinmacro on the next input line. 161561d06d6bSBaptiste DaroussinSuch an empty block does not produce any output. 161661d06d6bSBaptiste Daroussin.It Sy "missing section argument" 1617*c1c95addSBrooks Davis.Pq mdoc , man 161861d06d6bSBaptiste DaroussinAn 161961d06d6bSBaptiste Daroussin.Ic \&Xr 1620*c1c95addSBrooks Davisor 1621*c1c95addSBrooks Davis.Ic \&MR 162261d06d6bSBaptiste Daroussinmacro lacks its second, section number argument. 1623*c1c95addSBrooks DavisThe first argument, i.e. the name, is printed, but without a section number. 1624*c1c95addSBrooks DavisIn the case of 1625*c1c95addSBrooks Davis.Ic \&Xr , 1626*c1c95addSBrooks Davisthe parentheses are also omitted. 162761d06d6bSBaptiste Daroussin.It Sy "missing -std argument, adding it" 162861d06d6bSBaptiste Daroussin.Pq mdoc 162961d06d6bSBaptiste DaroussinAn 163061d06d6bSBaptiste Daroussin.Ic \&Ex 163161d06d6bSBaptiste Daroussinor 163261d06d6bSBaptiste Daroussin.Ic \&Rv 163361d06d6bSBaptiste Daroussinmacro lacks the required 163461d06d6bSBaptiste Daroussin.Fl std 163561d06d6bSBaptiste Daroussinargument. 163661d06d6bSBaptiste DaroussinThe 163761d06d6bSBaptiste Daroussin.Nm 163861d06d6bSBaptiste Daroussinutility assumes 163961d06d6bSBaptiste Daroussin.Fl std 164061d06d6bSBaptiste Daroussineven when it is not specified, but other implementations may not. 164161d06d6bSBaptiste Daroussin.It Sy "missing option string, using \(dq\(dq" 164261d06d6bSBaptiste Daroussin.Pq man 164361d06d6bSBaptiste DaroussinThe 164461d06d6bSBaptiste Daroussin.Ic \&OP 164561d06d6bSBaptiste Daroussinmacro is invoked without any argument. 164661d06d6bSBaptiste DaroussinAn empty pair of square brackets is shown. 164761d06d6bSBaptiste Daroussin.It Sy "missing resource identifier, using \(dq\(dq" 164861d06d6bSBaptiste Daroussin.Pq man 164961d06d6bSBaptiste DaroussinThe 165061d06d6bSBaptiste Daroussin.Ic \&MT 165161d06d6bSBaptiste Daroussinor 165261d06d6bSBaptiste Daroussin.Ic \&UR 165361d06d6bSBaptiste Daroussinmacro is invoked without any argument. 165461d06d6bSBaptiste DaroussinAn empty pair of angle brackets is shown. 165561d06d6bSBaptiste Daroussin.It Sy "missing eqn box, using \(dq\(dq" 165661d06d6bSBaptiste Daroussin.Pq eqn 165761d06d6bSBaptiste DaroussinA diacritic mark or a binary operator is found, 165861d06d6bSBaptiste Daroussinbut there is nothing to the left of it. 165961d06d6bSBaptiste DaroussinAn empty box is inserted. 166061d06d6bSBaptiste Daroussin.El 166161d06d6bSBaptiste Daroussin.Ss "Warnings related to bad macro arguments" 166261d06d6bSBaptiste Daroussin.Bl -ohang 166361d06d6bSBaptiste Daroussin.It Sy "duplicate argument" 166461d06d6bSBaptiste Daroussin.Pq mdoc 166561d06d6bSBaptiste DaroussinA 166661d06d6bSBaptiste Daroussin.Ic \&Bd 166761d06d6bSBaptiste Daroussinor 166861d06d6bSBaptiste Daroussin.Ic \&Bl 166961d06d6bSBaptiste Daroussinmacro has more than one 167061d06d6bSBaptiste Daroussin.Fl compact , 167161d06d6bSBaptiste Daroussinmore than one 167261d06d6bSBaptiste Daroussin.Fl offset , 167361d06d6bSBaptiste Daroussinor more than one 167461d06d6bSBaptiste Daroussin.Fl width 167561d06d6bSBaptiste Daroussinargument. 167661d06d6bSBaptiste DaroussinAll but the last instances of these arguments are ignored. 167761d06d6bSBaptiste Daroussin.It Sy "skipping duplicate argument" 167861d06d6bSBaptiste Daroussin.Pq mdoc 167961d06d6bSBaptiste DaroussinAn 168061d06d6bSBaptiste Daroussin.Ic \&An 168161d06d6bSBaptiste Daroussinmacro has more than one 168261d06d6bSBaptiste Daroussin.Fl split 168361d06d6bSBaptiste Daroussinor 168461d06d6bSBaptiste Daroussin.Fl nosplit 168561d06d6bSBaptiste Daroussinargument. 168661d06d6bSBaptiste DaroussinAll but the first of these arguments are ignored. 168761d06d6bSBaptiste Daroussin.It Sy "skipping duplicate display type" 168861d06d6bSBaptiste Daroussin.Pq mdoc 168961d06d6bSBaptiste DaroussinA 169061d06d6bSBaptiste Daroussin.Ic \&Bd 169161d06d6bSBaptiste Daroussinmacro has more than one type argument; the first one is used. 169261d06d6bSBaptiste Daroussin.It Sy "skipping duplicate list type" 169361d06d6bSBaptiste Daroussin.Pq mdoc 169461d06d6bSBaptiste DaroussinA 169561d06d6bSBaptiste Daroussin.Ic \&Bl 169661d06d6bSBaptiste Daroussinmacro has more than one type argument; the first one is used. 169761d06d6bSBaptiste Daroussin.It Sy "skipping -width argument" 169861d06d6bSBaptiste Daroussin.Pq mdoc 169961d06d6bSBaptiste DaroussinA 170061d06d6bSBaptiste Daroussin.Ic \&Bl 170161d06d6bSBaptiste Daroussin.Fl column , 170261d06d6bSBaptiste Daroussin.Fl diag , 170361d06d6bSBaptiste Daroussin.Fl ohang , 170461d06d6bSBaptiste Daroussin.Fl inset , 170561d06d6bSBaptiste Daroussinor 170661d06d6bSBaptiste Daroussin.Fl item 170761d06d6bSBaptiste Daroussinlist has a 170861d06d6bSBaptiste Daroussin.Fl width 170961d06d6bSBaptiste Daroussinargument. 171061d06d6bSBaptiste DaroussinThat has no effect. 171161d06d6bSBaptiste Daroussin.It Sy "wrong number of cells" 171261d06d6bSBaptiste DaroussinIn a line of a 171361d06d6bSBaptiste Daroussin.Ic \&Bl Fl column 171461d06d6bSBaptiste Daroussinlist, the number of tabs or 171561d06d6bSBaptiste Daroussin.Ic \&Ta 171661d06d6bSBaptiste Daroussinmacros is less than the number expected from the list header line 171761d06d6bSBaptiste Daroussinor exceeds the expected number by more than one. 171861d06d6bSBaptiste DaroussinMissing cells remain empty, and all cells exceeding the number of 171961d06d6bSBaptiste Daroussincolumns are joined into one single cell. 172061d06d6bSBaptiste Daroussin.It Sy "unknown AT&T UNIX version" 172161d06d6bSBaptiste Daroussin.Pq mdoc 172261d06d6bSBaptiste DaroussinAn 172361d06d6bSBaptiste Daroussin.Ic \&At 172461d06d6bSBaptiste Daroussinmacro has an invalid argument. 172561d06d6bSBaptiste DaroussinIt is used verbatim, with 172661d06d6bSBaptiste Daroussin.Qq "AT&T UNIX " 172761d06d6bSBaptiste Daroussinprefixed to it. 172861d06d6bSBaptiste Daroussin.It Sy "comma in function argument" 172961d06d6bSBaptiste Daroussin.Pq mdoc 173061d06d6bSBaptiste DaroussinAn argument of an 173161d06d6bSBaptiste Daroussin.Ic \&Fa 173261d06d6bSBaptiste Daroussinor 173361d06d6bSBaptiste Daroussin.Ic \&Fn 173461d06d6bSBaptiste Daroussinmacro contains a comma; it should probably be split into two arguments. 173561d06d6bSBaptiste Daroussin.It Sy "parenthesis in function name" 173661d06d6bSBaptiste Daroussin.Pq mdoc 173761d06d6bSBaptiste DaroussinThe first argument of an 173861d06d6bSBaptiste Daroussin.Ic \&Fc 173961d06d6bSBaptiste Daroussinor 174061d06d6bSBaptiste Daroussin.Ic \&Fn 174161d06d6bSBaptiste Daroussinmacro contains an opening or closing parenthesis; that's probably wrong, 174261d06d6bSBaptiste Daroussinparentheses are added automatically. 174361d06d6bSBaptiste Daroussin.It Sy "unknown library name" 174461d06d6bSBaptiste Daroussin.Pq mdoc, not on Ox 174561d06d6bSBaptiste DaroussinAn 174661d06d6bSBaptiste Daroussin.Ic \&Lb 174761d06d6bSBaptiste Daroussinmacro has an unknown name argument and will be rendered as 174861d06d6bSBaptiste Daroussin.Qq library Dq Ar name . 174961d06d6bSBaptiste Daroussin.It Sy "invalid content in Rs block" 175061d06d6bSBaptiste Daroussin.Pq mdoc 175161d06d6bSBaptiste DaroussinAn 175261d06d6bSBaptiste Daroussin.Ic \&Rs 175361d06d6bSBaptiste Daroussinblock contains plain text or non-% macros. 175461d06d6bSBaptiste DaroussinThe bogus content is left in the syntax tree. 175561d06d6bSBaptiste DaroussinFormatting may be poor. 175661d06d6bSBaptiste Daroussin.It Sy "invalid Boolean argument" 175761d06d6bSBaptiste Daroussin.Pq mdoc 175861d06d6bSBaptiste DaroussinAn 175961d06d6bSBaptiste Daroussin.Ic \&Sm 176061d06d6bSBaptiste Daroussinmacro has an argument other than 176161d06d6bSBaptiste Daroussin.Cm on 176261d06d6bSBaptiste Daroussinor 176361d06d6bSBaptiste Daroussin.Cm off . 176461d06d6bSBaptiste DaroussinThe invalid argument is moved out of the macro, which leaves the macro 176561d06d6bSBaptiste Daroussinempty, causing it to toggle the spacing mode. 17667295610fSBaptiste Daroussin.It Sy "argument contains two font escapes" 17677295610fSBaptiste Daroussin.Pq roff 17687295610fSBaptiste DaroussinThe second argument of a 17697295610fSBaptiste Daroussin.Ic char 17707295610fSBaptiste Daroussinrequest contains more than one font escape sequence. 17717295610fSBaptiste DaroussinA wrong font may remain active after using the character. 177261d06d6bSBaptiste Daroussin.It Sy "unknown font, skipping request" 177361d06d6bSBaptiste Daroussin.Pq man , tbl 177461d06d6bSBaptiste DaroussinA 177561d06d6bSBaptiste Daroussin.Xr roff 7 177661d06d6bSBaptiste Daroussin.Ic \&ft 177761d06d6bSBaptiste Daroussinrequest or a 177861d06d6bSBaptiste Daroussin.Xr tbl 7 177961d06d6bSBaptiste Daroussin.Ic \&f 178061d06d6bSBaptiste Daroussinlayout modifier has an unknown 178161d06d6bSBaptiste Daroussin.Ar font 178261d06d6bSBaptiste Daroussinargument. 1783*c1c95addSBrooks Davis.It Sy "ignoring distance argument" 1784*c1c95addSBrooks Davis.Pq roff 1785*c1c95addSBrooks DavisIn addition to the margin character, an 1786*c1c95addSBrooks Davis.Ic \&mc 1787*c1c95addSBrooks Davisrequest has a second argument supposed to represent a distance, but the 1788*c1c95addSBrooks Davis.Nm 1789*c1c95addSBrooks Davisimplementation of 1790*c1c95addSBrooks Davis.Ic \&mc 1791*c1c95addSBrooks Davisalways ignores the second argument. 179261d06d6bSBaptiste Daroussin.It Sy "odd number of characters in request" 179361d06d6bSBaptiste Daroussin.Pq roff 179461d06d6bSBaptiste DaroussinA 179561d06d6bSBaptiste Daroussin.Ic \&tr 179661d06d6bSBaptiste Daroussinrequest contains an odd number of characters. 179761d06d6bSBaptiste DaroussinThe last character is mapped to the blank character. 179861d06d6bSBaptiste Daroussin.El 179961d06d6bSBaptiste Daroussin.Ss "Warnings related to plain text" 180061d06d6bSBaptiste Daroussin.Bl -ohang 180161d06d6bSBaptiste Daroussin.It Sy "blank line in fill mode, using .sp" 180261d06d6bSBaptiste Daroussin.Pq mdoc 180361d06d6bSBaptiste DaroussinThe meaning of blank input lines is only well-defined in non-fill mode: 180461d06d6bSBaptiste DaroussinIn fill mode, line breaks of text input lines are not supposed to be 180561d06d6bSBaptiste Daroussinsignificant. 180661d06d6bSBaptiste DaroussinHowever, for compatibility with groff, blank lines in fill mode 180745a5aec3SBaptiste Daroussinare formatted like 180861d06d6bSBaptiste Daroussin.Ic \&sp 180961d06d6bSBaptiste Daroussinrequests. 181045a5aec3SBaptiste DaroussinTo request a paragraph break, use 181145a5aec3SBaptiste Daroussin.Ic \&Pp 181245a5aec3SBaptiste Daroussininstead of a blank line. 181361d06d6bSBaptiste Daroussin.It Sy "tab in filled text" 181461d06d6bSBaptiste Daroussin.Pq mdoc , man 181561d06d6bSBaptiste DaroussinThe meaning of tab characters is only well-defined in non-fill mode: 181661d06d6bSBaptiste DaroussinIn fill mode, whitespace is not supposed to be significant 181761d06d6bSBaptiste Daroussinon text input lines. 181861d06d6bSBaptiste DaroussinAs an implementation dependent choice, tab characters on text lines 181961d06d6bSBaptiste Daroussinare passed through to the formatters in any case. 182061d06d6bSBaptiste DaroussinGiven that the text before the tab character will be filled, 182161d06d6bSBaptiste Daroussinit is hard to predict which tab stop position the tab will advance to. 182261d06d6bSBaptiste Daroussin.It Sy "new sentence, new line" 182361d06d6bSBaptiste Daroussin.Pq mdoc 182461d06d6bSBaptiste DaroussinA new sentence starts in the middle of a text line. 182561d06d6bSBaptiste DaroussinStart it on a new input line to help formatters produce correct spacing. 1826*c1c95addSBrooks Davis.It Sy "invalid escape sequence argument" 182761d06d6bSBaptiste Daroussin.Pq roff 1828*c1c95addSBrooks DavisThe argument of an escape sequence is of an invalid form. 1829*c1c95addSBrooks DavisInvalid escape sequences are ignored. 18307295610fSBaptiste Daroussin.It Sy "undefined escape, printing literally" 18317295610fSBaptiste Daroussin.Pq roff 18327295610fSBaptiste DaroussinIn an escape sequence, the first character 18337295610fSBaptiste Daroussinright after the leading backslash is invalid. 18347295610fSBaptiste DaroussinThat character is printed literally, 18357295610fSBaptiste Daroussinwhich is equivalent to ignoring the backslash. 183661d06d6bSBaptiste Daroussin.It Sy "undefined string, using \(dq\(dq" 183761d06d6bSBaptiste Daroussin.Pq roff 183861d06d6bSBaptiste DaroussinIf a string is used without being defined before, 183961d06d6bSBaptiste Daroussinits value is implicitly set to the empty string. 184061d06d6bSBaptiste DaroussinHowever, defining strings explicitly before use 184161d06d6bSBaptiste Daroussinkeeps the code more readable. 184261d06d6bSBaptiste Daroussin.El 184361d06d6bSBaptiste Daroussin.Ss "Warnings related to tables" 184461d06d6bSBaptiste Daroussin.Bl -ohang 184561d06d6bSBaptiste Daroussin.It Sy "tbl line starts with span" 184661d06d6bSBaptiste Daroussin.Pq tbl 184761d06d6bSBaptiste DaroussinThe first cell in a table layout line is a horizontal span 184861d06d6bSBaptiste Daroussin.Pq Sq Cm s . 184961d06d6bSBaptiste DaroussinData provided for this cell is ignored, and nothing is printed in the cell. 185061d06d6bSBaptiste Daroussin.It Sy "tbl column starts with span" 185161d06d6bSBaptiste Daroussin.Pq tbl 185261d06d6bSBaptiste DaroussinThe first line of a table layout specification 185361d06d6bSBaptiste Daroussinrequests a vertical span 185461d06d6bSBaptiste Daroussin.Pq Sq Cm ^ . 185561d06d6bSBaptiste DaroussinData provided for this cell is ignored, and nothing is printed in the cell. 185661d06d6bSBaptiste Daroussin.It Sy "skipping vertical bar in tbl layout" 185761d06d6bSBaptiste Daroussin.Pq tbl 185861d06d6bSBaptiste DaroussinA table layout specification contains more than two consecutive vertical bars. 185961d06d6bSBaptiste DaroussinA double bar is printed, all additional bars are discarded. 186061d06d6bSBaptiste Daroussin.El 186161d06d6bSBaptiste Daroussin.Ss "Errors related to tables" 186261d06d6bSBaptiste Daroussin.Bl -ohang 186361d06d6bSBaptiste Daroussin.It Sy "non-alphabetic character in tbl options" 186461d06d6bSBaptiste Daroussin.Pq tbl 186561d06d6bSBaptiste DaroussinThe table options line contains a character other than a letter, 186661d06d6bSBaptiste Daroussinblank, or comma where the beginning of an option name is expected. 186761d06d6bSBaptiste DaroussinThe character is ignored. 186861d06d6bSBaptiste Daroussin.It Sy "skipping unknown tbl option" 186961d06d6bSBaptiste Daroussin.Pq tbl 187061d06d6bSBaptiste DaroussinThe table options line contains a string of letters that does not 187161d06d6bSBaptiste Daroussinmatch any known option name. 187261d06d6bSBaptiste DaroussinThe word is ignored. 187361d06d6bSBaptiste Daroussin.It Sy "missing tbl option argument" 187461d06d6bSBaptiste Daroussin.Pq tbl 187561d06d6bSBaptiste DaroussinA table option that requires an argument is not followed by an 187661d06d6bSBaptiste Daroussinopening parenthesis, or the opening parenthesis is immediately 187761d06d6bSBaptiste Daroussinfollowed by a closing parenthesis. 187861d06d6bSBaptiste DaroussinThe option is ignored. 187961d06d6bSBaptiste Daroussin.It Sy "wrong tbl option argument size" 188061d06d6bSBaptiste Daroussin.Pq tbl 188161d06d6bSBaptiste DaroussinA table option argument contains an invalid number of characters. 188261d06d6bSBaptiste DaroussinBoth the option and the argument are ignored. 188361d06d6bSBaptiste Daroussin.It Sy "empty tbl layout" 188461d06d6bSBaptiste Daroussin.Pq tbl 188561d06d6bSBaptiste DaroussinA table layout specification is completely empty, 188661d06d6bSBaptiste Daroussinspecifying zero lines and zero columns. 188761d06d6bSBaptiste DaroussinAs a fallback, a single left-justified column is used. 188861d06d6bSBaptiste Daroussin.It Sy "invalid character in tbl layout" 188961d06d6bSBaptiste Daroussin.Pq tbl 189061d06d6bSBaptiste DaroussinA table layout specification contains a character that can neither 189161d06d6bSBaptiste Daroussinbe interpreted as a layout key character nor as a layout modifier, 189261d06d6bSBaptiste Daroussinor a modifier precedes the first key. 189361d06d6bSBaptiste DaroussinThe invalid character is discarded. 189461d06d6bSBaptiste Daroussin.It Sy "unmatched parenthesis in tbl layout" 189561d06d6bSBaptiste Daroussin.Pq tbl 189661d06d6bSBaptiste DaroussinA table layout specification contains an opening parenthesis, 189761d06d6bSBaptiste Daroussinbut no matching closing parenthesis. 189861d06d6bSBaptiste DaroussinThe rest of the input line, starting from the parenthesis, has no effect. 18996d38604fSBaptiste Daroussin.It Sy "ignoring excessive spacing in tbl layout" 19006d38604fSBaptiste Daroussin.Pq tbl 19016d38604fSBaptiste DaroussinA spacing modifier in a table layout is unreasonably large. 19026d38604fSBaptiste DaroussinThe default spacing of 3n is used instead. 190361d06d6bSBaptiste Daroussin.It Sy "tbl without any data cells" 190461d06d6bSBaptiste Daroussin.Pq tbl 190561d06d6bSBaptiste DaroussinA table does not contain any data cells. 190661d06d6bSBaptiste DaroussinIt will probably produce no output. 190761d06d6bSBaptiste Daroussin.It Sy "ignoring data in spanned tbl cell" 190861d06d6bSBaptiste Daroussin.Pq tbl 190961d06d6bSBaptiste DaroussinA table cell is marked as a horizontal span 191061d06d6bSBaptiste Daroussin.Pq Sq Cm s 191161d06d6bSBaptiste Daroussinor vertical span 191261d06d6bSBaptiste Daroussin.Pq Sq Cm ^ 191361d06d6bSBaptiste Daroussinin the table layout, but it contains data. 191461d06d6bSBaptiste DaroussinThe data is ignored. 191561d06d6bSBaptiste Daroussin.It Sy "ignoring extra tbl data cells" 191661d06d6bSBaptiste Daroussin.Pq tbl 191761d06d6bSBaptiste DaroussinA data line contains more cells than the corresponding layout line. 191861d06d6bSBaptiste DaroussinThe data in the extra cells is ignored. 191961d06d6bSBaptiste Daroussin.It Sy "data block open at end of tbl" 192061d06d6bSBaptiste Daroussin.Pq tbl 192161d06d6bSBaptiste DaroussinA data block is opened with 192261d06d6bSBaptiste Daroussin.Cm T{ , 192361d06d6bSBaptiste Daroussinbut never closed with a matching 192461d06d6bSBaptiste Daroussin.Cm T} . 192561d06d6bSBaptiste DaroussinThe remaining data lines of the table are all put into one cell, 192661d06d6bSBaptiste Daroussinand any remaining cells stay empty. 192761d06d6bSBaptiste Daroussin.El 192861d06d6bSBaptiste Daroussin.Ss "Errors related to roff, mdoc, and man code" 192961d06d6bSBaptiste Daroussin.Bl -ohang 193061d06d6bSBaptiste Daroussin.It Sy "duplicate prologue macro" 193161d06d6bSBaptiste Daroussin.Pq mdoc 193261d06d6bSBaptiste DaroussinOne of the prologue macros occurs more than once. 193361d06d6bSBaptiste DaroussinThe last instance overrides all previous ones. 193461d06d6bSBaptiste Daroussin.It Sy "skipping late title macro" 193561d06d6bSBaptiste Daroussin.Pq mdoc 193661d06d6bSBaptiste DaroussinThe 193761d06d6bSBaptiste Daroussin.Ic \&Dt 193861d06d6bSBaptiste Daroussinmacro appears after the first non-prologue macro. 193961d06d6bSBaptiste DaroussinTraditional formatters cannot handle this because 194061d06d6bSBaptiste Daroussinthey write the page header before parsing the document body. 194161d06d6bSBaptiste DaroussinEven though this technical restriction does not apply to 194261d06d6bSBaptiste Daroussin.Nm , 194361d06d6bSBaptiste Daroussintraditional semantics is preserved. 194461d06d6bSBaptiste DaroussinThe late macro is discarded including its arguments. 194561d06d6bSBaptiste Daroussin.It Sy "input stack limit exceeded, infinite loop?" 194661d06d6bSBaptiste Daroussin.Pq roff 194761d06d6bSBaptiste DaroussinExplicit recursion limits are implemented for the following features, 194861d06d6bSBaptiste Daroussinin order to prevent infinite loops: 194961d06d6bSBaptiste Daroussin.Bl -dash -compact 195061d06d6bSBaptiste Daroussin.It 195161d06d6bSBaptiste Daroussinexpansion of nested escape sequences 195261d06d6bSBaptiste Daroussinincluding expansion of strings and number registers, 195361d06d6bSBaptiste Daroussin.It 195461d06d6bSBaptiste Daroussinexpansion of nested user-defined macros, 195561d06d6bSBaptiste Daroussin.It 195661d06d6bSBaptiste Daroussinand 195761d06d6bSBaptiste Daroussin.Ic \&so 195861d06d6bSBaptiste Daroussinfile inclusion. 195961d06d6bSBaptiste Daroussin.El 196061d06d6bSBaptiste DaroussinWhen a limit is hit, the output is incorrect, typically losing 196161d06d6bSBaptiste Daroussinsome content, but the parser can continue. 196261d06d6bSBaptiste Daroussin.It Sy "skipping bad character" 196361d06d6bSBaptiste Daroussin.Pq mdoc , man , roff 196461d06d6bSBaptiste DaroussinThe input file contains a byte that is not a printable 196561d06d6bSBaptiste Daroussin.Xr ascii 7 196661d06d6bSBaptiste Daroussincharacter. 196761d06d6bSBaptiste DaroussinThe message mentions the character number. 196861d06d6bSBaptiste DaroussinThe offending byte is replaced with a question mark 196961d06d6bSBaptiste Daroussin.Pq Sq \&? . 197061d06d6bSBaptiste DaroussinConsider editing the input file to replace the byte with an ASCII 197161d06d6bSBaptiste Daroussintransliteration of the intended character. 197261d06d6bSBaptiste Daroussin.It Sy "skipping unknown macro" 197361d06d6bSBaptiste Daroussin.Pq mdoc , man , roff 197461d06d6bSBaptiste DaroussinThe first identifier on a request or macro line is neither recognized as a 197561d06d6bSBaptiste Daroussin.Xr roff 7 197661d06d6bSBaptiste Daroussinrequest, nor as a user-defined macro, nor, respectively, as an 197761d06d6bSBaptiste Daroussin.Xr mdoc 7 197861d06d6bSBaptiste Daroussinor 197961d06d6bSBaptiste Daroussin.Xr man 7 198061d06d6bSBaptiste Daroussinmacro. 198161d06d6bSBaptiste DaroussinIt may be mistyped or unsupported. 198261d06d6bSBaptiste DaroussinThe request or macro is discarded including its arguments. 19837295610fSBaptiste Daroussin.It Sy "skipping request outside macro" 19847295610fSBaptiste Daroussin.Pq roff 19857295610fSBaptiste DaroussinA 19867295610fSBaptiste Daroussin.Ic shift 19877295610fSBaptiste Daroussinor 19887295610fSBaptiste Daroussin.Ic return 19897295610fSBaptiste Daroussinrequest occurs outside any macro definition and has no effect. 199061d06d6bSBaptiste Daroussin.It Sy "skipping insecure request" 199161d06d6bSBaptiste Daroussin.Pq roff 199261d06d6bSBaptiste DaroussinAn input file attempted to run a shell command 199361d06d6bSBaptiste Daroussinor to read or write an external file. 199461d06d6bSBaptiste DaroussinSuch attempts are denied for security reasons. 199561d06d6bSBaptiste Daroussin.It Sy "skipping item outside list" 199661d06d6bSBaptiste Daroussin.Pq mdoc , eqn 199761d06d6bSBaptiste DaroussinAn 199861d06d6bSBaptiste Daroussin.Ic \&It 199961d06d6bSBaptiste Daroussinmacro occurs outside any 200061d06d6bSBaptiste Daroussin.Ic \&Bl 200161d06d6bSBaptiste Daroussinlist, or an 200261d06d6bSBaptiste Daroussin.Xr eqn 7 200361d06d6bSBaptiste Daroussin.Ic above 200461d06d6bSBaptiste Daroussindelimiter occurs outside any pile. 200561d06d6bSBaptiste DaroussinIt is discarded including its arguments. 200661d06d6bSBaptiste Daroussin.It Sy "skipping column outside column list" 200761d06d6bSBaptiste Daroussin.Pq mdoc 200861d06d6bSBaptiste DaroussinA 200961d06d6bSBaptiste Daroussin.Ic \&Ta 201061d06d6bSBaptiste Daroussinmacro occurs outside any 201161d06d6bSBaptiste Daroussin.Ic \&Bl Fl column 201261d06d6bSBaptiste Daroussinblock. 201361d06d6bSBaptiste DaroussinIt is discarded including its arguments. 201461d06d6bSBaptiste Daroussin.It Sy "skipping end of block that is not open" 201561d06d6bSBaptiste Daroussin.Pq mdoc , man , eqn , tbl , roff 201661d06d6bSBaptiste DaroussinVarious syntax elements can only be used to explicitly close blocks 201761d06d6bSBaptiste Daroussinthat have previously been opened. 201861d06d6bSBaptiste DaroussinAn 201961d06d6bSBaptiste Daroussin.Xr mdoc 7 202061d06d6bSBaptiste Daroussinblock closing macro, a 202161d06d6bSBaptiste Daroussin.Xr man 7 202261d06d6bSBaptiste Daroussin.Ic \&ME , \&RE 202361d06d6bSBaptiste Daroussinor 202461d06d6bSBaptiste Daroussin.Ic \&UE 202561d06d6bSBaptiste Daroussinmacro, an 202661d06d6bSBaptiste Daroussin.Xr eqn 7 202761d06d6bSBaptiste Daroussinright delimiter or closing brace, or the end of an equation, table, or 202861d06d6bSBaptiste Daroussin.Xr roff 7 202961d06d6bSBaptiste Daroussinconditional request is encountered but no matching block is open. 203061d06d6bSBaptiste DaroussinThe offending request or macro is discarded. 203161d06d6bSBaptiste Daroussin.It Sy "fewer RS blocks open, skipping" 203261d06d6bSBaptiste Daroussin.Pq man 203361d06d6bSBaptiste DaroussinThe 203461d06d6bSBaptiste Daroussin.Ic \&RE 203561d06d6bSBaptiste Daroussinmacro is invoked with an argument, but less than the specified number of 203661d06d6bSBaptiste Daroussin.Ic \&RS 203761d06d6bSBaptiste Daroussinblocks is open. 203861d06d6bSBaptiste DaroussinThe 203961d06d6bSBaptiste Daroussin.Ic \&RE 204061d06d6bSBaptiste Daroussinmacro is discarded. 204161d06d6bSBaptiste Daroussin.It Sy "inserting missing end of block" 204261d06d6bSBaptiste Daroussin.Pq mdoc , tbl 204361d06d6bSBaptiste DaroussinVarious 204461d06d6bSBaptiste Daroussin.Xr mdoc 7 204561d06d6bSBaptiste Daroussinmacros as well as tables require explicit closing by dedicated macros. 204661d06d6bSBaptiste DaroussinA block that doesn't support bad nesting 204761d06d6bSBaptiste Daroussinends before all of its children are properly closed. 204861d06d6bSBaptiste DaroussinThe open child nodes are closed implicitly. 204961d06d6bSBaptiste Daroussin.It Sy "appending missing end of block" 205061d06d6bSBaptiste Daroussin.Pq mdoc , man , eqn , tbl , roff 205161d06d6bSBaptiste DaroussinAt the end of the document, an explicit 205261d06d6bSBaptiste Daroussin.Xr mdoc 7 205361d06d6bSBaptiste Daroussinblock, a 205461d06d6bSBaptiste Daroussin.Xr man 7 205561d06d6bSBaptiste Daroussinnext-line scope or 205661d06d6bSBaptiste Daroussin.Ic \&MT , \&RS 205761d06d6bSBaptiste Daroussinor 205861d06d6bSBaptiste Daroussin.Ic \&UR 205961d06d6bSBaptiste Daroussinblock, an equation, table, or 206061d06d6bSBaptiste Daroussin.Xr roff 7 206161d06d6bSBaptiste Daroussinconditional or ignore block is still open. 206261d06d6bSBaptiste DaroussinThe open block is closed implicitly. 206361d06d6bSBaptiste Daroussin.It Sy "escaped character not allowed in a name" 206461d06d6bSBaptiste Daroussin.Pq roff 206561d06d6bSBaptiste DaroussinMacro, string and register identifiers consist of printable, 206661d06d6bSBaptiste Daroussinnon-whitespace ASCII characters. 206761d06d6bSBaptiste DaroussinEscape sequences and characters and strings expressed in terms of them 206861d06d6bSBaptiste Daroussincannot form part of a name. 206961d06d6bSBaptiste DaroussinThe first argument of an 207061d06d6bSBaptiste Daroussin.Ic \&am , 207161d06d6bSBaptiste Daroussin.Ic \&as , 207261d06d6bSBaptiste Daroussin.Ic \&de , 207361d06d6bSBaptiste Daroussin.Ic \&ds , 207461d06d6bSBaptiste Daroussin.Ic \&nr , 207561d06d6bSBaptiste Daroussinor 207661d06d6bSBaptiste Daroussin.Ic \&rr 207761d06d6bSBaptiste Daroussinrequest, or any argument of an 207861d06d6bSBaptiste Daroussin.Ic \&rm 207961d06d6bSBaptiste Daroussinrequest, or the name of a request or user defined macro being called, 208061d06d6bSBaptiste Daroussinis terminated by an escape sequence. 208161d06d6bSBaptiste DaroussinIn the cases of 208261d06d6bSBaptiste Daroussin.Ic \&as , 208361d06d6bSBaptiste Daroussin.Ic \&ds , 208461d06d6bSBaptiste Daroussinand 208561d06d6bSBaptiste Daroussin.Ic \&nr , 208661d06d6bSBaptiste Daroussinthe request has no effect at all. 208761d06d6bSBaptiste DaroussinIn the cases of 208861d06d6bSBaptiste Daroussin.Ic \&am , 208961d06d6bSBaptiste Daroussin.Ic \&de , 209061d06d6bSBaptiste Daroussin.Ic \&rr , 209161d06d6bSBaptiste Daroussinand 209261d06d6bSBaptiste Daroussin.Ic \&rm , 209361d06d6bSBaptiste Daroussinwhat was parsed up to this point is used as the arguments to the request, 209461d06d6bSBaptiste Daroussinand the rest of the input line is discarded including the escape sequence. 209561d06d6bSBaptiste DaroussinWhen parsing for a request or a user-defined macro name to be called, 209661d06d6bSBaptiste Daroussinonly the escape sequence is discarded. 209761d06d6bSBaptiste DaroussinThe characters preceding it are used as the request or macro name, 209861d06d6bSBaptiste Daroussinthe characters following it are used as the arguments to the request or macro. 20997295610fSBaptiste Daroussin.It Sy "using macro argument outside macro" 21007295610fSBaptiste Daroussin.Pq roff 21017295610fSBaptiste DaroussinThe escape sequence \e$ occurs outside any macro definition 21027295610fSBaptiste Daroussinand expands to the empty string. 21037295610fSBaptiste Daroussin.It Sy "argument number is not numeric" 21047295610fSBaptiste Daroussin.Pq roff 21057295610fSBaptiste DaroussinThe argument of the escape sequence \e$ is not a digit; 21067295610fSBaptiste Daroussinthe escape sequence expands to the empty string. 2107*c1c95addSBrooks Davis.It Sy "negative argument, using 0" 2108*c1c95addSBrooks Davis.Pq roff 2109*c1c95addSBrooks DavisA 2110*c1c95addSBrooks Davis.Ic \&shift 2111*c1c95addSBrooks Davisrequest has a negative argument 2112*c1c95addSBrooks Davisor an argument that is negative due to integer overflow. 2113*c1c95addSBrooks DavisMacro argument numbering remains unchanged. 211461d06d6bSBaptiste Daroussin.It Sy "NOT IMPLEMENTED: Bd -file" 211561d06d6bSBaptiste Daroussin.Pq mdoc 211661d06d6bSBaptiste DaroussinFor security reasons, the 211761d06d6bSBaptiste Daroussin.Ic \&Bd 211861d06d6bSBaptiste Daroussinmacro does not support the 211961d06d6bSBaptiste Daroussin.Fl file 212061d06d6bSBaptiste Daroussinargument. 212161d06d6bSBaptiste DaroussinBy requesting the inclusion of a sensitive file, a malicious document 212261d06d6bSBaptiste Daroussinmight otherwise trick a privileged user into inadvertently displaying 212361d06d6bSBaptiste Daroussinthe file on the screen, revealing the file content to bystanders. 212461d06d6bSBaptiste DaroussinThe argument is ignored including the file name following it. 212561d06d6bSBaptiste Daroussin.It Sy "skipping display without arguments" 212661d06d6bSBaptiste Daroussin.Pq mdoc 212761d06d6bSBaptiste DaroussinA 212861d06d6bSBaptiste Daroussin.Ic \&Bd 212961d06d6bSBaptiste Daroussinblock macro does not have any arguments. 213061d06d6bSBaptiste DaroussinThe block is discarded, and the block content is displayed in 213161d06d6bSBaptiste Daroussinwhatever mode was active before the block. 213261d06d6bSBaptiste Daroussin.It Sy "missing list type, using -item" 213361d06d6bSBaptiste Daroussin.Pq mdoc 213461d06d6bSBaptiste DaroussinA 213561d06d6bSBaptiste Daroussin.Ic \&Bl 213661d06d6bSBaptiste Daroussinmacro fails to specify the list type. 213761d06d6bSBaptiste Daroussin.It Sy "argument is not numeric, using 1" 213861d06d6bSBaptiste Daroussin.Pq roff 213961d06d6bSBaptiste DaroussinThe argument of a 214061d06d6bSBaptiste Daroussin.Ic \&ce 214161d06d6bSBaptiste Daroussinrequest is not a number. 21427295610fSBaptiste Daroussin.It Sy "argument is not a character" 21437295610fSBaptiste Daroussin.Pq roff 21447295610fSBaptiste DaroussinThe first argument of a 21457295610fSBaptiste Daroussin.Ic char 21467295610fSBaptiste Daroussinrequest is neither a single ASCII character 21477295610fSBaptiste Daroussinnor a single character escape sequence. 21487295610fSBaptiste DaroussinThe request is ignored including all its arguments. 2149*c1c95addSBrooks Davis.It Sy "skipping unusable escape sequence" 2150*c1c95addSBrooks Davis.Pq roff 2151*c1c95addSBrooks DavisThe first argument of an 2152*c1c95addSBrooks Davis.Ic mc 2153*c1c95addSBrooks Davisrequest is neither a single ASCII character 2154*c1c95addSBrooks Davisnor a single character escape sequence. 2155*c1c95addSBrooks DavisAll arguments are ignored and printing of a margin character is disabled. 215661d06d6bSBaptiste Daroussin.It Sy "missing manual name, using \(dq\(dq" 2157*c1c95addSBrooks Davis.Pq mdoc , man 215861d06d6bSBaptiste DaroussinThe first call to 215961d06d6bSBaptiste Daroussin.Ic \&Nm , 2160*c1c95addSBrooks Davisor any call in the NAME section, lacks the required argument, or 2161*c1c95addSBrooks Davis.Ic \&MR 2162*c1c95addSBrooks Davisis called without any argument. 216361d06d6bSBaptiste Daroussin.It Sy "uname(3) system call failed, using UNKNOWN" 216461d06d6bSBaptiste Daroussin.Pq mdoc 216561d06d6bSBaptiste DaroussinThe 216661d06d6bSBaptiste Daroussin.Ic \&Os 216761d06d6bSBaptiste Daroussinmacro is called without arguments, and the 216861d06d6bSBaptiste Daroussin.Xr uname 3 216961d06d6bSBaptiste Daroussinsystem call failed. 217061d06d6bSBaptiste DaroussinAs a workaround, 217161d06d6bSBaptiste Daroussin.Nm 217261d06d6bSBaptiste Daroussincan be compiled with 217361d06d6bSBaptiste Daroussin.Sm off 217461d06d6bSBaptiste Daroussin.Fl D Cm OSNAME=\(dq\e\(dq Ar string Cm \e\(dq\(dq . 217561d06d6bSBaptiste Daroussin.Sm on 217661d06d6bSBaptiste Daroussin.It Sy "unknown standard specifier" 217761d06d6bSBaptiste Daroussin.Pq mdoc 217861d06d6bSBaptiste DaroussinAn 217961d06d6bSBaptiste Daroussin.Ic \&St 218061d06d6bSBaptiste Daroussinmacro has an unknown argument and is discarded. 218161d06d6bSBaptiste Daroussin.It Sy "skipping request without numeric argument" 218261d06d6bSBaptiste Daroussin.Pq roff , eqn 218361d06d6bSBaptiste DaroussinAn 218461d06d6bSBaptiste Daroussin.Ic \&it 218561d06d6bSBaptiste Daroussinrequest or an 218661d06d6bSBaptiste Daroussin.Xr eqn 7 218761d06d6bSBaptiste Daroussin.Ic \&size 218861d06d6bSBaptiste Daroussinor 218961d06d6bSBaptiste Daroussin.Ic \&gsize 219061d06d6bSBaptiste Daroussinstatement has a non-numeric or negative argument or no argument at all. 219161d06d6bSBaptiste DaroussinThe invalid request or statement is ignored. 21927295610fSBaptiste Daroussin.It Sy "excessive shift" 21937295610fSBaptiste Daroussin.Pq roff 21947295610fSBaptiste DaroussinThe argument of a 21957295610fSBaptiste Daroussin.Ic shift 21967295610fSBaptiste Daroussinrequest is larger than the number of arguments of the macro that is 21977295610fSBaptiste Daroussincurrently being executed. 21987295610fSBaptiste DaroussinAll macro arguments are deleted and \en(.$ is set to zero. 219961d06d6bSBaptiste Daroussin.It Sy "NOT IMPLEMENTED: .so with absolute path or \(dq..\(dq" 220061d06d6bSBaptiste Daroussin.Pq roff 220161d06d6bSBaptiste DaroussinFor security reasons, 220261d06d6bSBaptiste Daroussin.Nm 220361d06d6bSBaptiste Daroussinallows 220461d06d6bSBaptiste Daroussin.Ic \&so 220561d06d6bSBaptiste Daroussinfile inclusion requests only with relative paths 220661d06d6bSBaptiste Daroussinand only without ascending to any parent directory. 220761d06d6bSBaptiste DaroussinBy requesting the inclusion of a sensitive file, a malicious document 220861d06d6bSBaptiste Daroussinmight otherwise trick a privileged user into inadvertently displaying 220961d06d6bSBaptiste Daroussinthe file on the screen, revealing the file content to bystanders. 221061d06d6bSBaptiste Daroussin.Nm 221161d06d6bSBaptiste Daroussinonly shows the path as it appears behind 221261d06d6bSBaptiste Daroussin.Ic \&so . 221361d06d6bSBaptiste Daroussin.It Sy ".so request failed" 221461d06d6bSBaptiste Daroussin.Pq roff 221561d06d6bSBaptiste DaroussinServicing a 221661d06d6bSBaptiste Daroussin.Ic \&so 221761d06d6bSBaptiste Daroussinrequest requires reading an external file, but the file could not be 221861d06d6bSBaptiste Daroussinopened. 221961d06d6bSBaptiste Daroussin.Nm 222061d06d6bSBaptiste Daroussinonly shows the path as it appears behind 222161d06d6bSBaptiste Daroussin.Ic \&so . 222261d06d6bSBaptiste Daroussin.It Sy "skipping all arguments" 222361d06d6bSBaptiste Daroussin.Pq mdoc , man , eqn , roff 222461d06d6bSBaptiste DaroussinAn 222561d06d6bSBaptiste Daroussin.Xr mdoc 7 222661d06d6bSBaptiste Daroussin.Ic \&Bt , 222761d06d6bSBaptiste Daroussin.Ic \&Ed , 222861d06d6bSBaptiste Daroussin.Ic \&Ef , 222961d06d6bSBaptiste Daroussin.Ic \&Ek , 223061d06d6bSBaptiste Daroussin.Ic \&El , 223161d06d6bSBaptiste Daroussin.Ic \&Lp , 223261d06d6bSBaptiste Daroussin.Ic \&Pp , 223361d06d6bSBaptiste Daroussin.Ic \&Re , 223461d06d6bSBaptiste Daroussin.Ic \&Rs , 223561d06d6bSBaptiste Daroussinor 223661d06d6bSBaptiste Daroussin.Ic \&Ud 223761d06d6bSBaptiste Daroussinmacro, an 223861d06d6bSBaptiste Daroussin.Ic \&It 223961d06d6bSBaptiste Daroussinmacro in a list that don't support item heads, a 224061d06d6bSBaptiste Daroussin.Xr man 7 224161d06d6bSBaptiste Daroussin.Ic \&LP , 224261d06d6bSBaptiste Daroussin.Ic \&P , 224361d06d6bSBaptiste Daroussinor 224461d06d6bSBaptiste Daroussin.Ic \&PP 224561d06d6bSBaptiste Daroussinmacro, an 224661d06d6bSBaptiste Daroussin.Xr eqn 7 224761d06d6bSBaptiste Daroussin.Ic \&EQ 224861d06d6bSBaptiste Daroussinor 224961d06d6bSBaptiste Daroussin.Ic \&EN 225061d06d6bSBaptiste Daroussinmacro, or a 225161d06d6bSBaptiste Daroussin.Xr roff 7 225261d06d6bSBaptiste Daroussin.Ic \&br , 225361d06d6bSBaptiste Daroussin.Ic \&fi , 225461d06d6bSBaptiste Daroussinor 225561d06d6bSBaptiste Daroussin.Ic \&nf 225661d06d6bSBaptiste Daroussinrequest or 225761d06d6bSBaptiste Daroussin.Sq \&.. 225861d06d6bSBaptiste Daroussinblock closing request is invoked with at least one argument. 225961d06d6bSBaptiste DaroussinAll arguments are ignored. 226061d06d6bSBaptiste Daroussin.It Sy "skipping excess arguments" 226161d06d6bSBaptiste Daroussin.Pq mdoc , man , roff 226261d06d6bSBaptiste DaroussinA macro or request is invoked with too many arguments: 226361d06d6bSBaptiste Daroussin.Bl -dash -offset 2n -width 2n -compact 226461d06d6bSBaptiste Daroussin.It 226561d06d6bSBaptiste Daroussin.Ic \&Fo , 226661d06d6bSBaptiste Daroussin.Ic \&MT , 226761d06d6bSBaptiste Daroussin.Ic \&PD , 226861d06d6bSBaptiste Daroussin.Ic \&RS , 226961d06d6bSBaptiste Daroussin.Ic \&UR , 227061d06d6bSBaptiste Daroussin.Ic \&ft , 227161d06d6bSBaptiste Daroussinor 227261d06d6bSBaptiste Daroussin.Ic \&sp 227361d06d6bSBaptiste Daroussinwith more than one argument 227461d06d6bSBaptiste Daroussin.It 227561d06d6bSBaptiste Daroussin.Ic \&An 227661d06d6bSBaptiste Daroussinwith another argument after 227761d06d6bSBaptiste Daroussin.Fl split 227861d06d6bSBaptiste Daroussinor 227961d06d6bSBaptiste Daroussin.Fl nosplit 228061d06d6bSBaptiste Daroussin.It 228161d06d6bSBaptiste Daroussin.Ic \&RE 228261d06d6bSBaptiste Daroussinwith more than one argument or with a non-integer argument 228361d06d6bSBaptiste Daroussin.It 228461d06d6bSBaptiste Daroussin.Ic \&OP 228561d06d6bSBaptiste Daroussinor a request of the 228661d06d6bSBaptiste Daroussin.Ic \&de 228761d06d6bSBaptiste Daroussinfamily with more than two arguments 228861d06d6bSBaptiste Daroussin.It 228961d06d6bSBaptiste Daroussin.Ic \&Dt 2290*c1c95addSBrooks Davisor 2291*c1c95addSBrooks Davis.Ic \&MR 229261d06d6bSBaptiste Daroussinwith more than three arguments 229361d06d6bSBaptiste Daroussin.It 229461d06d6bSBaptiste Daroussin.Ic \&TH 229561d06d6bSBaptiste Daroussinwith more than five arguments 229661d06d6bSBaptiste Daroussin.It 229761d06d6bSBaptiste Daroussin.Ic \&Bd , 229861d06d6bSBaptiste Daroussin.Ic \&Bk , 229961d06d6bSBaptiste Daroussinor 230061d06d6bSBaptiste Daroussin.Ic \&Bl 230161d06d6bSBaptiste Daroussinwith invalid arguments 230261d06d6bSBaptiste Daroussin.El 230361d06d6bSBaptiste DaroussinThe excess arguments are ignored. 230461d06d6bSBaptiste Daroussin.El 2305*c1c95addSBrooks Davis.Ss "Errors related to escape sequences" 2306*c1c95addSBrooks Davis.Bl -ohang 2307*c1c95addSBrooks Davis.It Sy "incomplete escape sequence" 2308*c1c95addSBrooks Davis.Pq roff 2309*c1c95addSBrooks DavisThe end of the input line is encountered 2310*c1c95addSBrooks Daviswhile parsing the argument of an escape sequence. 2311*c1c95addSBrooks DavisIn this case, 2312*c1c95addSBrooks Davis.Ic \e* 2313*c1c95addSBrooks Davisand 2314*c1c95addSBrooks Davis.Ic \en 2315*c1c95addSBrooks Davisexpand to an empty string, 2316*c1c95addSBrooks Davis.Ic \eB 2317*c1c95addSBrooks Davisto the digit 2318*c1c95addSBrooks Davis.Sq 0 , 2319*c1c95addSBrooks Davisand 2320*c1c95addSBrooks Davis.Ic \ew 2321*c1c95addSBrooks Davisto the length of the incomplete argument. 2322*c1c95addSBrooks DavisAll other incomplete escape sequences are ignored. 2323*c1c95addSBrooks Davis.It Sy "invalid special character" 2324*c1c95addSBrooks Davis.Pq roff 2325*c1c95addSBrooks DavisA special character escape sequence is invalid, 2326*c1c95addSBrooks Davisfor example a Unicode sequence pointing to a surrogate 2327*c1c95addSBrooks Davisor beyond the Unicode range, a \e[char...] escape sequence 2328*c1c95addSBrooks Davisrepresenting a control character or pointing beyond the 2329*c1c95addSBrooks Davis.Vt unsigned char 2330*c1c95addSBrooks Davisrange, or an invalid variable-length form 2331*c1c95addSBrooks Davisof a single-byte character escape sequence, for example writing 2332*c1c95addSBrooks Davis.Qq \e[e] 2333*c1c95addSBrooks Davisor 2334*c1c95addSBrooks Davis.Qq \e[~] 2335*c1c95addSBrooks Davisinstead of 2336*c1c95addSBrooks Davis.Qq \ee 2337*c1c95addSBrooks Davisor 2338*c1c95addSBrooks Davis.Qq \e~ , 2339*c1c95addSBrooks Davisrespectively. 2340*c1c95addSBrooks DavisThe escape sequence is ignored. 2341*c1c95addSBrooks Davis.It Sy "unknown special character" 2342*c1c95addSBrooks Davis.Pq roff 2343*c1c95addSBrooks DavisThe name given in a special character escape sequence is not known to 2344*c1c95addSBrooks Davis.Nm . 2345*c1c95addSBrooks DavisThe escape sequence is ignored. 2346*c1c95addSBrooks Davis.It Sy "invalid escape argument delimiter" 2347*c1c95addSBrooks Davis.Pq roff 2348*c1c95addSBrooks DavisAn escape sequence that expects a numerical argument 2349*c1c95addSBrooks Davisattempts to employ one of the characters 2350*c1c95addSBrooks Davis.Qq " %&()*+-./0123456789:<=>" 2351*c1c95addSBrooks Davisas an argument delimiter. 2352*c1c95addSBrooks DavisThe escape sequence is ignored including the invalid opening delimiter 2353*c1c95addSBrooks Davisand the rest of the argument may appear as output text. 2354*c1c95addSBrooks DavisWhile various characters can be used as argument delimiters, 2355*c1c95addSBrooks Davisusing the apostrophe-quote character 2356*c1c95addSBrooks Davis.Pq Sq \(aq 2357*c1c95addSBrooks Davisis recommended for readability and robustness. 2358*c1c95addSBrooks Davis.El 235961d06d6bSBaptiste Daroussin.Ss Unsupported features 236061d06d6bSBaptiste Daroussin.Bl -ohang 236161d06d6bSBaptiste Daroussin.It Sy "input too large" 236261d06d6bSBaptiste Daroussin.Pq mdoc , man 236361d06d6bSBaptiste DaroussinCurrently, 236461d06d6bSBaptiste Daroussin.Nm 236561d06d6bSBaptiste Daroussincannot handle input files larger than its arbitrary size limit 236661d06d6bSBaptiste Daroussinof 2^31 bytes (2 Gigabytes). 236761d06d6bSBaptiste DaroussinSince useful manuals are always small, this is not a problem in practice. 236861d06d6bSBaptiste DaroussinParsing is aborted as soon as the condition is detected. 236961d06d6bSBaptiste Daroussin.It Sy "unsupported control character" 237061d06d6bSBaptiste Daroussin.Pq roff 237161d06d6bSBaptiste DaroussinAn ASCII control character supported by other 237261d06d6bSBaptiste Daroussin.Xr roff 7 237361d06d6bSBaptiste Daroussinimplementations but not by 237461d06d6bSBaptiste Daroussin.Nm 237561d06d6bSBaptiste Daroussinwas found in an input file. 237661d06d6bSBaptiste DaroussinIt is replaced by a question mark. 23777295610fSBaptiste Daroussin.It Sy "unsupported escape sequence" 23787295610fSBaptiste Daroussin.Pq roff 23797295610fSBaptiste DaroussinAn input file contains an escape sequence supported by GNU troff 23807295610fSBaptiste Daroussinor Heirloom troff but not by 23817295610fSBaptiste Daroussin.Nm , 23827295610fSBaptiste Daroussinand it is likely that this will cause information loss 23837295610fSBaptiste Daroussinor considerable misformatting. 238461d06d6bSBaptiste Daroussin.It Sy "unsupported roff request" 238561d06d6bSBaptiste Daroussin.Pq roff 238661d06d6bSBaptiste DaroussinAn input file contains a 238761d06d6bSBaptiste Daroussin.Xr roff 7 238861d06d6bSBaptiste Daroussinrequest supported by GNU troff or Heirloom troff but not by 238961d06d6bSBaptiste Daroussin.Nm , 239061d06d6bSBaptiste Daroussinand it is likely that this will cause information loss 239161d06d6bSBaptiste Daroussinor considerable misformatting. 239261d06d6bSBaptiste Daroussin.It Sy "eqn delim option in tbl" 239361d06d6bSBaptiste Daroussin.Pq eqn , tbl 239461d06d6bSBaptiste DaroussinThe options line of a table defines equation delimiters. 239561d06d6bSBaptiste DaroussinAny equation source code contained in the table will be printed unformatted. 239661d06d6bSBaptiste Daroussin.It Sy "unsupported table layout modifier" 239761d06d6bSBaptiste Daroussin.Pq tbl 239861d06d6bSBaptiste DaroussinA table layout specification contains an 239961d06d6bSBaptiste Daroussin.Sq Cm m 240061d06d6bSBaptiste Daroussinmodifier. 240161d06d6bSBaptiste DaroussinThe modifier is discarded. 240261d06d6bSBaptiste Daroussin.It Sy "ignoring macro in table" 240361d06d6bSBaptiste Daroussin.Pq tbl , mdoc , man 240461d06d6bSBaptiste DaroussinA table contains an invocation of an 240561d06d6bSBaptiste Daroussin.Xr mdoc 7 240661d06d6bSBaptiste Daroussinor 240761d06d6bSBaptiste Daroussin.Xr man 7 240861d06d6bSBaptiste Daroussinmacro or of an undefined macro. 240961d06d6bSBaptiste DaroussinThe macro is ignored, and its arguments are handled 241061d06d6bSBaptiste Daroussinas if they were a text line. 24116d38604fSBaptiste Daroussin.It Sy "skipping tbl in -Tman mode" 24126d38604fSBaptiste Daroussin.Pq mdoc , tbl 24136d38604fSBaptiste DaroussinAn input file contains the 24146d38604fSBaptiste Daroussin.Ic \&TS 24156d38604fSBaptiste Daroussinmacro. 24166d38604fSBaptiste DaroussinThis message is only generated in 24176d38604fSBaptiste Daroussin.Fl T Cm man 24186d38604fSBaptiste Daroussinoutput mode, where 24196d38604fSBaptiste Daroussin.Xr tbl 7 24206d38604fSBaptiste Daroussininput is not supported. 24216d38604fSBaptiste Daroussin.It Sy "skipping eqn in -Tman mode" 24226d38604fSBaptiste Daroussin.Pq mdoc , eqn 24236d38604fSBaptiste DaroussinAn input file contains the 24246d38604fSBaptiste Daroussin.Ic \&EQ 24256d38604fSBaptiste Daroussinmacro. 24266d38604fSBaptiste DaroussinThis message is only generated in 24276d38604fSBaptiste Daroussin.Fl T Cm man 24286d38604fSBaptiste Daroussinoutput mode, where 24296d38604fSBaptiste Daroussin.Xr eqn 7 24306d38604fSBaptiste Daroussininput is not supported. 243161d06d6bSBaptiste Daroussin.El 243245a5aec3SBaptiste Daroussin.Ss Bad command line arguments 243345a5aec3SBaptiste Daroussin.Bl -ohang 243445a5aec3SBaptiste Daroussin.It Sy "bad command line argument" 243545a5aec3SBaptiste DaroussinThe argument following one of the 243645a5aec3SBaptiste Daroussin.Fl IKMmOTW 243745a5aec3SBaptiste Daroussincommand line options is invalid, or a 243845a5aec3SBaptiste Daroussin.Ar file 243945a5aec3SBaptiste Daroussingiven as a command line argument cannot be opened. 244045a5aec3SBaptiste Daroussin.It Sy "duplicate command line argument" 244145a5aec3SBaptiste DaroussinThe 244245a5aec3SBaptiste Daroussin.Fl I 244345a5aec3SBaptiste Daroussincommand line option was specified twice. 244445a5aec3SBaptiste Daroussin.It Sy "option has a superfluous value" 244545a5aec3SBaptiste DaroussinAn argument to the 244645a5aec3SBaptiste Daroussin.Fl O 244745a5aec3SBaptiste Daroussinoption has a value but does not accept one. 244845a5aec3SBaptiste Daroussin.It Sy "missing option value" 244945a5aec3SBaptiste DaroussinAn argument to the 245045a5aec3SBaptiste Daroussin.Fl O 245145a5aec3SBaptiste Daroussinoption has no argument but requires one. 245245a5aec3SBaptiste Daroussin.It Sy "bad option value" 245345a5aec3SBaptiste DaroussinAn argument to the 245445a5aec3SBaptiste Daroussin.Fl O 245545a5aec3SBaptiste Daroussin.Cm indent 245645a5aec3SBaptiste Daroussinor 245745a5aec3SBaptiste Daroussin.Cm width 245845a5aec3SBaptiste Daroussinoption has an invalid value. 245945a5aec3SBaptiste Daroussin.It Sy "duplicate option value" 246045a5aec3SBaptiste DaroussinThe same 246145a5aec3SBaptiste Daroussin.Fl O 246245a5aec3SBaptiste Daroussinoption is specified more than once. 246345a5aec3SBaptiste Daroussin.It Sy "no such tag" 246445a5aec3SBaptiste DaroussinThe 246545a5aec3SBaptiste Daroussin.Fl O Cm tag 246645a5aec3SBaptiste Daroussinoption was specified but the tag was not found in any of the displayed 246745a5aec3SBaptiste Daroussinmanual pages. 24686d38604fSBaptiste Daroussin.It Sy "\-Tmarkdown unsupported for man(7) input" 24696d38604fSBaptiste Daroussin.Pq man 24706d38604fSBaptiste DaroussinThe 24716d38604fSBaptiste Daroussin.Fl T Cm markdown 24726d38604fSBaptiste Daroussinoption was specified but an input file uses the 24736d38604fSBaptiste Daroussin.Xr man 7 24746d38604fSBaptiste Daroussinlanguage. 24756d38604fSBaptiste DaroussinNo output is produced for that input file. 247645a5aec3SBaptiste Daroussin.El 247761d06d6bSBaptiste Daroussin.Sh SEE ALSO 247861d06d6bSBaptiste Daroussin.Xr apropos 1 , 247961d06d6bSBaptiste Daroussin.Xr man 1 , 248061d06d6bSBaptiste Daroussin.Xr eqn 7 , 248161d06d6bSBaptiste Daroussin.Xr man 7 , 248261d06d6bSBaptiste Daroussin.Xr mandoc_char 7 , 248361d06d6bSBaptiste Daroussin.Xr mdoc 7 , 248461d06d6bSBaptiste Daroussin.Xr roff 7 , 248561d06d6bSBaptiste Daroussin.Xr tbl 7 248661d06d6bSBaptiste Daroussin.Sh HISTORY 248761d06d6bSBaptiste DaroussinThe 248861d06d6bSBaptiste Daroussin.Nm 248961d06d6bSBaptiste Daroussinutility first appeared in 249061d06d6bSBaptiste Daroussin.Ox 4.8 . 249161d06d6bSBaptiste DaroussinThe option 249261d06d6bSBaptiste Daroussin.Fl I 249361d06d6bSBaptiste Daroussinappeared in 249461d06d6bSBaptiste Daroussin.Ox 5.2 , 249561d06d6bSBaptiste Daroussinand 249661d06d6bSBaptiste Daroussin.Fl aCcfhKklMSsw 249761d06d6bSBaptiste Daroussinin 249861d06d6bSBaptiste Daroussin.Ox 5.7 . 249961d06d6bSBaptiste Daroussin.Sh AUTHORS 250061d06d6bSBaptiste Daroussin.An -nosplit 250161d06d6bSBaptiste DaroussinThe 250261d06d6bSBaptiste Daroussin.Nm 250361d06d6bSBaptiste Daroussinutility was written by 250461d06d6bSBaptiste Daroussin.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 250561d06d6bSBaptiste Daroussinand is maintained by 250661d06d6bSBaptiste Daroussin.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 2507