version 1.113, 2014/09/12 00:54:10 |
version 1.149, 2015/02/06 09:38:43 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2012, 2014 Ingo Schwarze <schwarze@openbsd.org> |
.\" Copyright (c) 2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org> |
.\" |
.\" |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" purpose with or without fee is hereby granted, provided that the above |
.\" purpose with or without fee is hereby granted, provided that the above |
|
|
.Sm off |
.Sm off |
.Op Fl I Cm os Li = Ar name |
.Op Fl I Cm os Li = Ar name |
.Sm on |
.Sm on |
|
.Op Fl K Ns Ar encoding |
.Op Fl m Ns Ar format |
.Op Fl m Ns Ar format |
.Op Fl O Ns Ar option |
.Op Fl O Ns Ar option |
.Op Fl T Ns Ar output |
.Op Fl T Ns Ar output |
|
|
text from stdin, implying |
text from stdin, implying |
.Fl m Ns Cm andoc , |
.Fl m Ns Cm andoc , |
and produces |
and produces |
.Fl T Ns Cm ascii |
.Fl T Ns Cm locale |
output. |
output. |
.Pp |
.Pp |
The options are as follows: |
The options are as follows: |
Line 84 Override the default operating system |
|
Line 85 Override the default operating system |
|
for the |
for the |
.Xr mdoc 7 |
.Xr mdoc 7 |
.Sq \&Os |
.Sq \&Os |
|
and for the |
|
.Xr man 7 |
|
.Sq \&TH |
macro. |
macro. |
.It Fl h |
.It Fl h |
Display only the SYNOPSIS lines. |
Display only the SYNOPSIS lines. |
Implies |
Implies |
.Fl a . |
.Fl c . |
|
.It Fl K Ns Ar encoding |
|
Specify the input encoding. |
|
The supported |
|
.Ar encoding |
|
arguments are |
|
.Cm us-ascii , |
|
.Cm iso-8859-1 , |
|
and |
|
.Cm utf-8 . |
|
If not specified, autodetection uses the first match: |
|
.Bl -tag -width iso-8859-1 |
|
.It Cm utf-8 |
|
if the first three bytes of the input file |
|
are the UTF-8 byte order mark (BOM, 0xefbbbf) |
|
.It Ar encoding |
|
if the first or second line of the input file matches the |
|
.Sy emacs |
|
mode line format |
|
.Pp |
|
.D1 .\e" -*- Oo ...; Oc coding: Ar encoding ; No -*- |
|
.It Cm utf-8 |
|
if the first non-ASCII byte in the file introduces a valid UTF-8 sequence |
|
.It Cm iso-8859-1 |
|
otherwise |
|
.El |
.It Fl k |
.It Fl k |
A synonym for |
A synonym for |
.Xr apropos 1 . |
.Xr apropos 1 . |
|
|
.Sx Output Formats |
.Sx Output Formats |
for available formats. |
for available formats. |
Defaults to |
Defaults to |
.Fl T Ns Cm ascii . |
.Fl T Ns Cm locale . |
.It Fl V |
.It Fl V |
Print version and exit. |
Print version and exit. |
.It Fl W Ns Ar level |
.It Fl W Ns Ar level |
|
|
.Cm warning , |
.Cm warning , |
.Cm error , |
.Cm error , |
or |
or |
.Cm fatal . |
.Cm unsupp ; |
The default is |
.Cm all |
.Fl W Ns Cm fatal ; |
|
.Fl W Ns Cm all |
|
is an alias for |
is an alias for |
.Fl W Ns Cm warning . |
.Cm warning . |
|
By default, |
|
.Nm |
|
is silent. |
See |
See |
.Sx EXIT STATUS |
.Sx EXIT STATUS |
and |
and |
Line 229 arguments, which correspond to output modes: |
|
Line 259 arguments, which correspond to output modes: |
|
.Bl -tag -width "-Tlocale" |
.Bl -tag -width "-Tlocale" |
.It Fl T Ns Cm ascii |
.It Fl T Ns Cm ascii |
Produce 7-bit ASCII output. |
Produce 7-bit ASCII output. |
This is the default. |
|
See |
See |
.Sx ASCII Output . |
.Sx ASCII Output . |
.It Fl T Ns Cm html |
.It Fl T Ns Cm html |
Produce strict CSS1/HTML-4.01 output. |
Produce HTML5, CSS1, and MathML output. |
See |
See |
.Sx HTML Output . |
.Sx HTML Output . |
.It Fl T Ns Cm lint |
.It Fl T Ns Cm lint |
|
|
.Fl W Ns Cm warning . |
.Fl W Ns Cm warning . |
.It Fl T Ns Cm locale |
.It Fl T Ns Cm locale |
Encode output using the current locale. |
Encode output using the current locale. |
|
This is the default. |
See |
See |
.Sx Locale Output . |
.Sx Locale Output . |
.It Fl T Ns Cm man |
.It Fl T Ns Cm man |
Line 265 Encode output in the UTF\-8 multi-byte format. |
|
Line 295 Encode output in the UTF\-8 multi-byte format. |
|
See |
See |
.Sx UTF\-8 Output . |
.Sx UTF\-8 Output . |
.It Fl T Ns Cm xhtml |
.It Fl T Ns Cm xhtml |
Produce strict CSS1/XHTML-1.0 output. |
This is a synonym for |
See |
.Fl T Ns Cm html . |
.Sx XHTML Output . |
|
.El |
.El |
.Pp |
.Pp |
If multiple input files are specified, these will be processed by the |
If multiple input files are specified, these will be processed by the |
corresponding filter in-order. |
corresponding filter in-order. |
.Ss ASCII Output |
.Ss ASCII Output |
Output produced by |
Output produced by |
.Fl T Ns Cm ascii , |
.Fl T Ns Cm ascii |
which is the default, is rendered in standard 7-bit ASCII documented in |
is rendered in standard 7-bit ASCII documented in |
.Xr ascii 7 . |
.Xr ascii 7 . |
.Pp |
.Pp |
Font styles are applied by using back-spaced encoding such that an |
Font styles are applied by using back-spaced encoding such that an |
Line 292 Emboldened characters are rendered as |
|
Line 321 Emboldened characters are rendered as |
|
The special characters documented in |
The special characters documented in |
.Xr mandoc_char 7 |
.Xr mandoc_char 7 |
are rendered best-effort in an ASCII equivalent. |
are rendered best-effort in an ASCII equivalent. |
If no equivalent is found, |
|
.Sq \&? |
|
is used instead. |
|
.Pp |
.Pp |
Output width is limited to 78 visible columns unless literal input lines |
Output width is limited to 78 visible columns unless literal input lines |
exceed this limit. |
exceed this limit. |
Line 315 for example overfull lines or ugly line breaks. |
|
Line 341 for example overfull lines or ugly line breaks. |
|
.It Cm width Ns = Ns Ar width |
.It Cm width Ns = Ns Ar width |
The output width is set to |
The output width is set to |
.Ar width , |
.Ar width , |
which will normalise to \(>=60. |
which will normalise to \(>=58. |
.El |
.El |
.Ss HTML Output |
.Ss HTML Output |
Output produced by |
Output produced by |
.Fl T Ns Cm html |
.Fl T Ns Cm html |
conforms to HTML-4.01 strict. |
conforms to HTML5 using optional self-closing tags. |
|
Default styles use only CSS1. |
|
Equations rendered from |
|
.Xr eqn 7 |
|
blocks use MathML. |
.Pp |
.Pp |
The |
The |
.Pa example.style.css |
.Pa example.style.css |
Line 328 file documents style-sheet classes available for custo |
|
Line 358 file documents style-sheet classes available for custo |
|
If a style-sheet is not specified with |
If a style-sheet is not specified with |
.Fl O Ns Ar style , |
.Fl O Ns Ar style , |
.Fl T Ns Cm html |
.Fl T Ns Cm html |
defaults to simple output readable in any graphical or text-based web |
defaults to simple output (via an embedded style-sheet) |
|
readable in any graphical or text-based web |
browser. |
browser. |
.Pp |
.Pp |
Special characters are rendered in decimal-encoded UTF\-8. |
Special characters are rendered in decimal-encoded UTF\-8. |
|
|
arguments are accepted: |
arguments are accepted: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Cm fragment |
.It Cm fragment |
Omit the |
Omit the <!DOCTYPE> declaration and the <html>, <head>, and <body> |
.Aq !DOCTYPE |
elements and only emit the subtree below the <body> element. |
declaration and the |
|
.Aq html , |
|
.Aq head , |
|
and |
|
.Aq body |
|
elements and only emit the subtree below the |
|
.Aq body |
|
element. |
|
The |
The |
.Cm style |
.Cm style |
argument will be ignored. |
argument will be ignored. |
|
|
.Ss Locale Output |
.Ss Locale Output |
Locale-depending output encoding is triggered with |
Locale-depending output encoding is triggered with |
.Fl T Ns Cm locale . |
.Fl T Ns Cm locale . |
|
This is the default. |
|
.Pp |
This option is not available on all systems: systems without locale |
This option is not available on all systems: systems without locale |
support, or those whose internal representation is not natively UCS-4, |
support, or those whose internal representation is not natively UCS-4, |
will fall back to |
will fall back to |
Line 471 to force a UTF\-8 locale. |
|
Line 496 to force a UTF\-8 locale. |
|
See |
See |
.Sx Locale Output |
.Sx Locale Output |
for details and options. |
for details and options. |
.Ss XHTML Output |
|
Output produced by |
|
.Fl T Ns Cm xhtml |
|
conforms to XHTML-1.0 strict. |
|
.Pp |
|
See |
|
.Sx HTML Output |
|
for details; beyond generating XHTML tags instead of HTML tags, these |
|
output modes are identical. |
|
.Sh ENVIRONMENT |
.Sh ENVIRONMENT |
.Bl -tag -width MANPAGER |
.Bl -tag -width MANPAGER |
.It Ev MANPAGER |
.It Ev MANPAGER |
Line 514 At least one warning occurred, but no error, and |
|
Line 530 At least one warning occurred, but no error, and |
|
.Fl W Ns Cm warning |
.Fl W Ns Cm warning |
was specified. |
was specified. |
.It 3 |
.It 3 |
At least one parsing error occurred, but no fatal error, and |
At least one parsing error occurred, |
|
but no unsupported feature was encountered, and |
.Fl W Ns Cm error |
.Fl W Ns Cm error |
or |
or |
.Fl W Ns Cm warning |
.Fl W Ns Cm warning |
was specified. |
was specified. |
.It 4 |
.It 4 |
A fatal parsing error occurred. |
At least one unsupported feature was encountered, and |
|
.Fl W Ns Cm unsupp , |
|
.Fl W Ns Cm error |
|
or |
|
.Fl W Ns Cm warning |
|
was specified. |
.It 5 |
.It 5 |
Invalid command line arguments were specified. |
Invalid command line arguments were specified. |
No input files have been read. |
No input files have been read. |
.It 6 |
.It 6 |
An operating system error occurred, for example memory exhaustion or an |
An operating system error occurred, for example exhaustion |
error accessing input files. |
of memory, file descriptors, or process table entries. |
Such errors cause |
Such errors cause |
.Nm |
.Nm |
to exit at once, possibly in the middle of parsing or formatting a file. |
to exit at once, possibly in the middle of parsing or formatting a file. |
|
|
.Pp |
.Pp |
Message levels have the following meanings: |
Message levels have the following meanings: |
.Bl -tag -width "warning" |
.Bl -tag -width "warning" |
.It Cm syserr |
.It Cm unsupp |
Opening or reading an input file failed, so the parser cannot |
An input file uses unsupported low-level |
even be started and no output is produced from that input file. |
.Xr roff 7 |
.It Cm fatal |
features. |
The parser is unable to parse a given input file at all. |
The output may be incomplete and/or misformatted, |
No formatted output is produced from that input file. |
so using GNU troff instead of |
.It Cm error |
|
An input file contains syntax that cannot be safely interpreted, |
|
either because it is invalid or because |
|
.Nm |
.Nm |
does not implement it yet. |
to process the file may be preferable. |
|
.It Cm error |
|
An input file contains invalid syntax that cannot be safely interpreted. |
By discarding part of the input or inserting missing tokens, |
By discarding part of the input or inserting missing tokens, |
the parser is able to continue, and the error does not prevent |
the parser is able to continue, and the error does not prevent |
generation of formatted output, but typically, preparing that |
generation of formatted output, but typically, preparing that |
output involves information loss, broken document structure |
output involves information loss, broken document structure |
or unintended formatting. |
or unintended formatting, no matter whether |
|
.Nm |
|
or GNU troff is used. |
|
In many cases, the output of |
|
.Nm |
|
and GNU troff is identical, but in some, |
|
.Nm |
|
is more resilient than GNU troff with respect to malformed input. |
|
.Pp |
|
Non-existent or unreadable input files are also reported on the |
|
.Cm error |
|
level. |
|
In that case, the parser cannot even be started and no output |
|
is produced from those input files. |
.It Cm warning |
.It Cm warning |
An input file uses obsolete, discouraged or non-portable syntax. |
An input file uses obsolete, discouraged or non-portable syntax. |
All the same, the meaning of the input is unambiguous and a correct |
All the same, the meaning of the input is unambiguous and a correct |
Line 611 formatting tools instead of |
|
Line 645 formatting tools instead of |
|
.El |
.El |
.Pp |
.Pp |
Messages of the |
Messages of the |
.Cm warning |
.Cm warning , |
|
.Cm error , |
and |
and |
.Cm error |
.Cm unsupp |
levels are hidden unless their level, or a lower level, is requested using a |
levels except those about non-existent or unreadable input files |
|
are hidden unless their level, or a lower level, is requested using a |
.Fl W |
.Fl W |
option or |
option or |
.Fl T Ns Cm lint |
.Fl T Ns Cm lint |
Line 652 macro lacks the mandatory section argument. |
|
Line 688 macro lacks the mandatory section argument. |
|
The section number in a |
The section number in a |
.Ic \&Dt |
.Ic \&Dt |
line is invalid, but still used. |
line is invalid, but still used. |
.It Sy "unknown manual volume or arch" |
|
.Pq mdoc |
|
The volume name in a |
|
.Ic \&Dt |
|
line is invalid, but still used. |
|
The manual is assumed to be architecture-independent. |
|
.It Sy "missing date, using today's date" |
.It Sy "missing date, using today's date" |
.Pq mdoc, man |
.Pq mdoc, man |
The document was parsed as |
The document was parsed as |
Line 754 This may confuse |
|
Line 784 This may confuse |
|
.Xr makewhatis 8 |
.Xr makewhatis 8 |
and |
and |
.Xr apropos 1 . |
.Xr apropos 1 . |
|
.It Sy "missing description line, using \(dq\(dq" |
|
.Pq mdoc |
|
The |
|
.Ic \&Nd |
|
macro lacks the required argument. |
|
The title line of the manual will end after the dash. |
.It Sy "sections out of conventional order" |
.It Sy "sections out of conventional order" |
.Pq mdoc |
.Pq mdoc |
A standard section occurs after another section it usually precedes. |
A standard section occurs after another section it usually precedes. |
Line 796 Probably, there are author names lacking markup. |
|
Line 832 Probably, there are author names lacking markup. |
|
See the |
See the |
.Xr mdoc 7 |
.Xr mdoc 7 |
manual for replacements. |
manual for replacements. |
|
.It Sy "macro neither callable nor escaped" |
|
.Pq mdoc |
|
The name of a macro that is not callable appears on a macro line. |
|
It is printed verbatim. |
|
If the intention is to call it, move it to its own line; |
|
otherwise, escape it by prepending |
|
.Sq \e& . |
.It Sy "skipping paragraph macro" |
.It Sy "skipping paragraph macro" |
In |
In |
.Xr mdoc 7 |
.Xr mdoc 7 |
Line 916 The previous, interrupted macro is deleted from the pa |
|
Line 959 The previous, interrupted macro is deleted from the pa |
|
.Ss "Warnings related to missing arguments" |
.Ss "Warnings related to missing arguments" |
.Bl -ohang |
.Bl -ohang |
.It Sy "skipping empty request" |
.It Sy "skipping empty request" |
.Pq roff |
.Pq roff , eqn |
The macro name is missing from a macro definition request. |
The macro name is missing from a macro definition request, |
|
or an |
|
.Xr eqn 7 |
|
control statement or operation keyword lacks its required argument. |
.It Sy "conditional request controls empty scope" |
.It Sy "conditional request controls empty scope" |
.Pq roff |
.Pq roff |
A conditional request is only useful if any of the following |
A conditional request is only useful if any of the following |
|
|
.It Sy "skipping empty macro" |
.It Sy "skipping empty macro" |
.Pq mdoc |
.Pq mdoc |
The indicated macro has no arguments and hence no effect. |
The indicated macro has no arguments and hence no effect. |
|
.It Sy "empty block" |
|
.Pq mdoc , man |
|
A |
|
.Ic \&Bd , |
|
.Ic \&Bk , |
|
.Ic \&Bl , |
|
.Ic \&D1 , |
|
.Ic \&Dl , |
|
.Ic \&RS , |
|
or |
|
.Ic \&UR |
|
block contains nothing in its body and will produce no output. |
.It Sy "empty argument, using 0n" |
.It Sy "empty argument, using 0n" |
.Pq mdoc |
.Pq mdoc |
The required width is missing after |
The required width is missing after |
|
|
.Fl offset |
.Fl offset |
or |
or |
.Fl width. |
.Fl width. |
.It Sy "argument count wrong" |
|
.Pq mdoc , man |
|
The indicated macro has too few or too many arguments. |
|
The syntax tree will contain the wrong number of arguments as given. |
|
Formatting behaviour depends on the specific macro in question. |
|
Note that the same message may also occur as an ERROR, see below. |
|
.It Sy "missing display type, using -ragged" |
.It Sy "missing display type, using -ragged" |
.Pq mdoc |
.Pq mdoc |
The |
The |
|
|
macro is called without an argument before |
macro is called without an argument before |
.Ic \&Nm |
.Ic \&Nm |
has first been called with an argument. |
has first been called with an argument. |
|
.It Sy "missing function name, using \(dq\(dq" |
|
.Pq mdoc |
|
The |
|
.Ic \&Fo |
|
macro is called without an argument. |
|
No function name is printed. |
.It Sy "empty head in list item" |
.It Sy "empty head in list item" |
.Pq mdoc |
.Pq mdoc |
In a |
In a |
Line 1037 argument is invalid. |
|
Line 1095 argument is invalid. |
|
The default font |
The default font |
.Cm \efR |
.Cm \efR |
is used instead. |
is used instead. |
|
.It Sy "nothing follows prefix" |
|
.Pq mdoc |
|
A |
|
.Ic \&Pf |
|
macro has no argument, or only one argument and no macro follows |
|
on the same input line. |
|
This defeats its purpose; in particular, spacing is not suppressed |
|
before the text or macros following on the next input line. |
|
.It Sy "empty reference block" |
|
.Pq mdoc |
|
An |
|
.Ic \&Rs |
|
macro is immediately followed by an |
|
.Ic \&Re |
|
macro on the next input line. |
|
Such an empty block does not produce any output. |
.It Sy "missing -std argument, adding it" |
.It Sy "missing -std argument, adding it" |
.Pq mdoc |
.Pq mdoc |
An |
An |
|
|
utility assumes |
utility assumes |
.Fl std |
.Fl std |
even when it is not specified, but other implementations may not. |
even when it is not specified, but other implementations may not. |
|
.It Sy "missing eqn box, using \(dq\(dq" |
|
.Pq eqn |
|
A diacritic mark or a binary operator is found, |
|
but there is nothing to the left of it. |
|
An empty box is inserted. |
.El |
.El |
.Ss "Warnings related to bad macro arguments" |
.Ss "Warnings related to bad macro arguments" |
.Bl -ohang |
.Bl -ohang |
Line 1125 An argument of an |
|
Line 1204 An argument of an |
|
or |
or |
.Ic \&Fn |
.Ic \&Fn |
macro contains a comma; it should probably be split into two arguments. |
macro contains a comma; it should probably be split into two arguments. |
|
.It Sy "parenthesis in function name" |
|
.Pq mdoc |
|
The first argument of an |
|
.Ic \&Fc |
|
or |
|
.Ic \&Fn |
|
macro contains an opening or closing parenthesis; that's probably wrong, |
|
parentheses are added automatically. |
.It Sy "invalid content in Rs block" |
.It Sy "invalid content in Rs block" |
.Pq mdoc |
.Pq mdoc |
An |
An |
|
|
The invalid argument is moved out of the macro, which leaves the macro |
The invalid argument is moved out of the macro, which leaves the macro |
empty, causing it to toggle the spacing mode. |
empty, causing it to toggle the spacing mode. |
.It Sy "unknown font, skipping request" |
.It Sy "unknown font, skipping request" |
.Pq man |
.Pq man , tbl |
A |
A |
.Xr roff 7 |
.Xr roff 7 |
.Ic \&ft |
.Ic \&ft |
request has an invalid argument. |
request or a |
|
.Xr tbl 7 |
|
.Ic \&f |
|
layout modifier has an unknown |
|
.Ar font |
|
argument. |
.El |
.El |
.Ss "Warnings related to plain text" |
.Ss "Warnings related to plain text" |
.Bl -ohang |
.Bl -ohang |
Line 1204 its value is implicitly set to the empty string. |
|
Line 1296 its value is implicitly set to the empty string. |
|
However, defining strings explicitly before use |
However, defining strings explicitly before use |
keeps the code more readable. |
keeps the code more readable. |
.El |
.El |
.Ss "Errors related to equations" |
.Ss "Warnings related to tables" |
.Bl -inset -compact |
.Bl -ohang |
.It "unexpected equation scope closure" |
.It Sy "tbl line starts with span" |
.It "equation scope open on exit" |
.Pq tbl |
.It "overlapping equation scopes" |
The first cell in a table layout line is a horizontal span |
.It "unexpected end of equation" |
.Pq Sq Cm s . |
.It "equation syntax error" |
Data provided for this cell is ignored, and nothing is printed in the cell. |
|
.It Sy "tbl column starts with span" |
|
.Pq tbl |
|
The first line of a table layout specification |
|
requests a vertical span |
|
.Pq Sq Cm ^ . |
|
Data provided for this cell is ignored, and nothing is printed in the cell. |
|
.It Sy "skipping vertical bar in tbl layout" |
|
.Pq tbl |
|
A table layout specification contains more than two consecutive vertical bars. |
|
A double bar is printed, all additional bars are discarded. |
.El |
.El |
.Ss "Errors related to tables" |
.Ss "Errors related to tables" |
.Bl -inset -compact |
.Bl -ohang |
.It "bad table syntax" |
.It Sy "non-alphabetic character in tbl options" |
.It "bad table option" |
.Pq tbl |
.It "bad table layout" |
The table options line contains a character other than a letter, |
.It "no table layout cells specified" |
blank, or comma where the beginning of an option name is expected. |
.It "no table data cells specified" |
The character is ignored. |
.It "ignore data in cell" |
.It Sy "skipping unknown tbl option" |
.It "data block still open" |
.Pq tbl |
.It "ignoring extra data cells" |
The table options line contains a string of letters that does not |
|
match any known option name. |
|
The word is ignored. |
|
.It Sy "missing tbl option argument" |
|
.Pq tbl |
|
A table option that requires an argument is not followed by an |
|
opening parenthesis, or the opening parenthesis is immediately |
|
followed by a closing parenthesis. |
|
The option is ignored. |
|
.It Sy "wrong tbl option argument size" |
|
.Pq tbl |
|
A table option argument contains an invalid number of characters. |
|
Both the option and the argument are ignored. |
|
.It Sy "empty tbl layout" |
|
.Pq tbl |
|
A table layout specification is completely empty, |
|
specifying zero lines and zero columns. |
|
As a fallback, a single left-justified column is used. |
|
.It Sy "invalid character in tbl layout" |
|
.Pq tbl |
|
A table layout specification contains a character that can neither |
|
be interpreted as a layout key character nor as a layout modifier, |
|
or a modifier precedes the first key. |
|
The invalid character is discarded. |
|
.It Sy "unmatched parenthesis in tbl layout" |
|
.Pq tbl |
|
A table layout specification contains an opening parenthesis, |
|
but no matching closing parenthesis. |
|
The rest of the input line, starting from the parenthesis, has no effect. |
|
.It Sy "tbl without any data cells" |
|
.Pq tbl |
|
A table does not contain any data cells. |
|
It will probably produce no output. |
|
.It Sy "ignoring data in spanned tbl cell" |
|
.Pq tbl |
|
A table cell is marked as a horizontal span |
|
.Pq Sq Cm s |
|
or vertical span |
|
.Pq Sq Cm ^ |
|
in the table layout, but it contains data. |
|
The data is ignored. |
|
.It Sy "ignoring extra tbl data cells" |
|
.Pq tbl |
|
A data line contains more cells than the corresponding layout line. |
|
The data in the extra cells is ignored. |
|
.It Sy "data block open at end of tbl" |
|
.Pq tbl |
|
A data block is opened with |
|
.Cm T{ , |
|
but never closed with a matching |
|
.Cm T} . |
|
The remaining data lines of the table are all put into one cell, |
|
and any remaining cells stay empty. |
.El |
.El |
.Ss "Errors related to roff, mdoc, and man code" |
.Ss "Errors related to roff, mdoc, and man code" |
.Bl -ohang |
.Bl -ohang |
|
|
macro. |
macro. |
It may be mistyped or unsupported. |
It may be mistyped or unsupported. |
The request or macro is discarded including its arguments. |
The request or macro is discarded including its arguments. |
|
.It Sy "skipping insecure request" |
|
.Pq roff |
|
An input file attempted to run a shell command |
|
or to read or write an external file. |
|
Such attempts are denied for security reasons. |
.It Sy "skipping item outside list" |
.It Sy "skipping item outside list" |
.Pq mdoc |
.Pq mdoc , eqn |
An |
An |
.Ic \&It |
.Ic \&It |
macro occurs outside any |
macro occurs outside any |
.Ic \&Bl |
.Ic \&Bl |
list. |
list, or an |
|
.Xr eqn 7 |
|
.Ic above |
|
delimiter occurs outside any pile. |
It is discarded including its arguments. |
It is discarded including its arguments. |
.It Sy "skipping column outside column list" |
.It Sy "skipping column outside column list" |
.Pq mdoc |
.Pq mdoc |
Line 1290 block closing macro, a |
|
Line 1452 block closing macro, a |
|
.Ic \&RE |
.Ic \&RE |
or |
or |
.Ic \&UE |
.Ic \&UE |
macro, or the end of an equation, table, or |
macro, an |
|
.Xr eqn 7 |
|
right delimiter or closing brace, or the end of an equation, table, or |
.Xr roff 7 |
.Xr roff 7 |
conditional request is encountered but no matching block is open. |
conditional request is encountered but no matching block is open. |
The offending request or macro is discarded. |
The offending request or macro is discarded. |
|
.It Sy "fewer RS blocks open, skipping" |
|
.Pq man |
|
The |
|
.Ic \&RE |
|
macro is invoked with an argument, but less than the specified number of |
|
.Ic \&RS |
|
blocks is open. |
|
The |
|
.Ic \&RE |
|
macro is discarded. |
.It Sy "inserting missing end of block" |
.It Sy "inserting missing end of block" |
.Pq mdoc , tbl |
.Pq mdoc , tbl |
Various |
Various |
Line 1358 The indicated request or macro has too few or too many |
|
Line 1532 The indicated request or macro has too few or too many |
|
The syntax tree will contain the wrong number of arguments as given. |
The syntax tree will contain the wrong number of arguments as given. |
Formatting behaviour depends on the specific request or macro in question. |
Formatting behaviour depends on the specific request or macro in question. |
Note that the same message may also occur as a WARNING, see above. |
Note that the same message may also occur as a WARNING, see above. |
|
.It Sy "NOT IMPLEMENTED: Bd -file" |
|
.Pq mdoc |
|
For security reasons, the |
|
.Ic \&Bd |
|
macro does not support the |
|
.Fl file |
|
argument. |
|
By requesting the inclusion of a sensitive file, a malicious document |
|
might otherwise trick a privileged user into inadvertently displaying |
|
the file on the screen, revealing the file content to bystanders. |
|
The argument is ignored including the file name following it. |
.It Sy "missing list type, using -item" |
.It Sy "missing list type, using -item" |
.Pq mdoc |
.Pq mdoc |
A |
A |
|
|
.Ic \&St |
.Ic \&St |
macro has an unknown argument and is discarded. |
macro has an unknown argument and is discarded. |
.It Sy "skipping request without numeric argument" |
.It Sy "skipping request without numeric argument" |
.Pq roff |
.Pq roff , eqn |
An |
An |
.Ic \&it |
.Ic \&it |
request has a non-numeric or negative argument or no argument at all. |
request or an |
The invalid request is ignored. |
.Xr eqn 7 |
|
.Ic \&size |
|
or |
|
.Ic \&gsize |
|
statement has a non-numeric or negative argument or no argument at all. |
|
The invalid request or statement is ignored. |
|
.It Sy "NOT IMPLEMENTED: .so with absolute path or \(dq..\(dq" |
|
.Pq roff |
|
For security reasons, |
|
.Nm |
|
allows |
|
.Ic \&so |
|
file inclusion requests only with relative paths |
|
and only without ascending to any parent directory. |
|
By requesting the inclusion of a sensitive file, a malicious document |
|
might otherwise trick a privileged user into inadvertently displaying |
|
the file on the screen, revealing the file content to bystanders. |
|
.Nm |
|
only shows the path as it appears behind |
|
.Ic \&so . |
|
.It Sy ".so request failed" |
|
.Pq roff |
|
Servicing a |
|
.Ic \&so |
|
request requires reading an external file, but the file could not be |
|
opened. |
|
.Nm |
|
only shows the path as it appears behind |
|
.Ic \&so . |
.It Sy "skipping all arguments" |
.It Sy "skipping all arguments" |
.Pq mdoc , man , eqn , roff |
.Pq mdoc , man , eqn , roff |
An |
An |
|
|
.Ic \&Ef , |
.Ic \&Ef , |
.Ic \&Ek , |
.Ic \&Ek , |
.Ic \&El , |
.Ic \&El , |
|
.Ic \&Lp , |
|
.Ic \&Pp , |
.Ic \&Re , |
.Ic \&Re , |
|
.Ic \&Rs , |
or |
or |
.Ic \&Ud |
.Ic \&Ud |
macro, an |
macro, an |
|
|
.Ic \&PP |
.Ic \&PP |
macro, an |
macro, an |
.Xr eqn 7 |
.Xr eqn 7 |
|
.Ic \&EQ |
|
or |
.Ic \&EN |
.Ic \&EN |
macro, or a |
macro, or a |
.Xr roff 7 |
.Xr roff 7 |
|
.Ic \&br , |
|
.Ic \&fi , |
|
or |
|
.Ic \&nf |
|
request or |
.Sq \&.. |
.Sq \&.. |
block closing request is invoked with at least one argument. |
block closing request is invoked with at least one argument. |
All arguments are ignored. |
All arguments are ignored. |
.It Sy "skipping excess arguments" |
.It Sy "skipping excess arguments" |
.Pq mdoc , roff |
.Pq mdoc , man , roff |
The |
The |
.Ic \&Bf |
.Ic \&An |
macro is invoked with more than one argument, or a request of the |
macro is invoked with another argument after |
|
.Fl split |
|
or |
|
.Fl nosplit , |
|
.Ic \&Fo |
|
is invoked with more than one argument, |
|
.Ic \&Bd , |
|
.Ic \&Bk , |
|
or |
|
.Ic \&Bl |
|
are invoked with invalid arguments, the |
|
.Ic \&RE |
|
macro is invoked with more than one argument |
|
or with a non-integer argument, the |
|
.Ic \&PD |
|
macro or the |
|
.Ic \&ft |
|
or |
|
.Ic \&sp |
|
request is invoked with more than one argument, or a request of the |
.Ic \&de |
.Ic \&de |
family is invoked with more than two arguments. |
family is invoked with more than two arguments. |
The excess arguments are ignored. |
The excess arguments are ignored. |
.El |
.El |
.Ss FATAL errors |
.Ss Unsupported features |
.Bl -ohang |
.Bl -ohang |
.It Sy "input too large" |
.It Sy "input too large" |
.Pq mdoc , man |
.Pq mdoc , man |
Line 1439 cannot handle input files larger than its arbitrary si |
|
Line 1681 cannot handle input files larger than its arbitrary si |
|
of 2^31 bytes (2 Gigabytes). |
of 2^31 bytes (2 Gigabytes). |
Since useful manuals are always small, this is not a problem in practice. |
Since useful manuals are always small, this is not a problem in practice. |
Parsing is aborted as soon as the condition is detected. |
Parsing is aborted as soon as the condition is detected. |
.It Sy "NOT IMPLEMENTED: Bd -file" |
.It Sy "unsupported control character" |
.Pq mdoc |
|
For security reasons, the |
|
.Ic \&Bd |
|
macro does not support the |
|
.Fl file |
|
argument. |
|
By requesting the inclusion of a sensitive file, a malicious document |
|
might otherwise trick a privileged user into inadvertently displaying |
|
the file on the screen, revealing the file content to bystanders. |
|
The parser exits immediately. |
|
.It Sy "NOT IMPLEMENTED: .so with absolute path or \(dq..\(dq" |
|
.Pq roff |
.Pq roff |
For security reasons, |
An ASCII control character supported by other |
|
.Xr roff 7 |
|
implementations but not by |
.Nm |
.Nm |
allows |
was found in an input file. |
.Ic \&so |
It is replaced by a question mark. |
file inclusion requests only with relative paths |
.It Sy "unsupported roff request" |
and only without ascending to any parent directory. |
|
By requesting the inclusion of a sensitive file, a malicious document |
|
might otherwise trick a privileged user into inadvertently displaying |
|
the file on the screen, revealing the file content to bystanders. |
|
The parser exits immediately. |
|
.It Sy ".so request failed" |
|
.Pq roff |
.Pq roff |
Servicing a |
An input file contains a |
.Ic \&so |
.Xr roff 7 |
request requires reading an external file. |
request supported by GNU troff or Heirloom troff but not by |
While trying to do so, an |
.Nm , |
.Xr open 2 , |
and it is likely that this will cause information loss |
.Xr stat 2 , |
or considerable misformatting. |
or |
.It Sy "eqn delim option in tbl" |
.Xr read 2 |
.Pq eqn , tbl |
system call failed. |
The options line of a table defines equation delimiters. |
The parser exits immediately. |
Any equation source code contained in the table will be printed unformatted. |
Before showing this message, |
.It Sy "unsupported table layout modifier" |
.Nm |
.Pq tbl |
always shows another message explaining why the system call failed. |
A table layout specification contains an |
.El |
.Sq Cm m |
.Sh COMPATIBILITY |
modifier. |
This section summarises |
The modifier is discarded. |
.Nm |
.It Sy "ignoring macro in table" |
compatibility with GNU troff. |
.Pq tbl , mdoc , man |
Each input and output format is separately noted. |
A table contains an invocation of an |
.Ss ASCII Compatibility |
|
.Bl -bullet -compact |
|
.It |
|
Unrenderable unicode codepoints specified with |
|
.Sq \e[uNNNN] |
|
escapes are printed as |
|
.Sq \&? |
|
in mandoc. |
|
In GNU troff, these raise an error. |
|
.It |
|
The |
|
.Sq \&Bd \-literal |
|
and |
|
.Sq \&Bd \-unfilled |
|
macros of |
|
.Xr mdoc 7 |
.Xr mdoc 7 |
in |
or |
.Fl T Ns Cm ascii |
|
are synonyms, as are \-filled and \-ragged. |
|
.It |
|
In historic GNU troff, the |
|
.Sq \&Pa |
|
.Xr mdoc 7 |
|
macro does not underline when scoped under an |
|
.Sq \&It |
|
in the FILES section. |
|
This behaves correctly in |
|
.Nm . |
|
.It |
|
A list or display following the |
|
.Sq \&Ss |
|
.Xr mdoc 7 |
|
macro in |
|
.Fl T Ns Cm ascii |
|
does not assert a prior vertical break, just as it doesn't with |
|
.Sq \&Sh . |
|
.It |
|
The |
|
.Sq \&na |
|
.Xr man 7 |
.Xr man 7 |
macro in |
macro or of an undefined macro. |
.Fl T Ns Cm ascii |
The macro is ignored, and its arguments are handled |
has no effect. |
as if they were a text line. |
.It |
|
Words aren't hyphenated. |
|
.El |
.El |
.Ss HTML/XHTML Compatibility |
|
.Bl -bullet -compact |
|
.It |
|
The |
|
.Sq \efP |
|
escape will revert the font to the previous |
|
.Sq \ef |
|
escape, not to the last rendered decoration, which is now dictated by |
|
CSS instead of hard-coded. |
|
It also will not span past the current scope, |
|
for the same reason. |
|
Note that in |
|
.Sx ASCII Output |
|
mode, this will work fine. |
|
.It |
|
The |
|
.Xr mdoc 7 |
|
.Sq \&Bl \-hang |
|
and |
|
.Sq \&Bl \-tag |
|
list types render similarly (no break following overreached left-hand |
|
side) due to the expressive constraints of HTML. |
|
.It |
|
The |
|
.Xr man 7 |
|
.Sq IP |
|
and |
|
.Sq TP |
|
lists render similarly. |
|
.El |
|
.Sh SEE ALSO |
.Sh SEE ALSO |
|
.Xr apropos 1 , |
|
.Xr man 1 , |
.Xr eqn 7 , |
.Xr eqn 7 , |
.Xr man 7 , |
.Xr man 7 , |
.Xr mandoc_char 7 , |
.Xr mandoc_char 7 , |
Line 1570 lists render similarly. |
|
Line 1730 lists render similarly. |
|
The |
The |
.Nm |
.Nm |
utility was written by |
utility was written by |
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv . |
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv |
.Sh CAVEATS |
and is maintained by |
|
.An Ingo Schwarze Aq Mt schwarze@openbsd.org . |
|
.Sh BUGS |
In |
In |
.Fl T Ns Cm html |
.Fl T Ns Cm html , |
and |
|
.Fl T Ns Cm xhtml , |
|
the maximum size of an element attribute is determined by |
the maximum size of an element attribute is determined by |
.Dv BUFSIZ , |
.Dv BUFSIZ , |
which is usually 1024 bytes. |
which is usually 1024 bytes. |
Be aware of this when setting long link |
Be aware of this when setting long link |
formats such as |
formats such as |
.Fl O Ns Cm style Ns = Ns Ar really/long/link . |
.Fl O Ns Cm style Ns = Ns Ar really/long/link . |
.Pp |
|
Nesting elements within next-line element scopes of |
|
.Fl m Ns Cm an , |
|
such as |
|
.Sq br |
|
within an empty |
|
.Sq B , |
|
will confuse |
|
.Fl T Ns Cm html |
|
and |
|
.Fl T Ns Cm xhtml |
|
and cause them to forget the formatting of the prior next-line scope. |
|
.Pp |
|
The |
|
.Sq \(aq |
|
control character is an alias for the standard macro control character |
|
and does not emit a line-break as stipulated in GNU troff. |
|