version 1.188, 2017/05/17 23:39:31 |
version 1.257, 2022/04/24 13:38:46 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
|
.\" Copyright (c) 2012, 2014-2022 Ingo Schwarze <schwarze@openbsd.org> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2012, 2014-2017 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 |
|
|
.Sh DESCRIPTION |
.Sh DESCRIPTION |
The |
The |
.Nm |
.Nm |
utility formats |
utility formats manual pages for display. |
.Ux |
|
manual pages for display. |
|
.Pp |
.Pp |
By default, |
By default, |
.Nm |
.Nm |
Line 54 The options are as follows: |
|
Line 52 The options are as follows: |
|
If the standard output is a terminal device and |
If the standard output is a terminal device and |
.Fl c |
.Fl c |
is not specified, use |
is not specified, use |
.Xr more 1 |
.Xr less 1 |
to paginate the output, just like |
to paginate the output, just like |
.Xr man 1 |
.Xr man 1 |
would. |
would. |
.It Fl c |
.It Fl c |
Copy the formatted manual pages to the standard output without using |
Copy the formatted manual pages to the standard output without using |
.Xr more 1 |
.Xr less 1 |
to paginate them. |
to paginate them. |
This is the default. |
This is the default. |
It can be specified to override |
It can be specified to override |
|
|
all input files are interpreted as |
all input files are interpreted as |
.Xr man 7 . |
.Xr man 7 . |
By default, the input language is automatically detected for each file: |
By default, the input language is automatically detected for each file: |
if the the first macro is |
if the first macro is |
.Ic \&Dd |
.Ic \&Dd |
or |
or |
.Ic \&Dt , |
.Ic \&Dt , |
Line 132 With other arguments, |
|
Line 130 With other arguments, |
|
is silently ignored. |
is silently ignored. |
.It Fl O Ar options |
.It Fl O Ar options |
Comma-separated output options. |
Comma-separated output options. |
|
See the descriptions of the individual output formats for supported |
|
.Ar options . |
.It Fl T Ar output |
.It Fl T Ar output |
Output format. |
Select the output format. |
See |
Supported values for the |
.Sx Output Formats |
.Ar output |
for available formats. |
argument are |
Defaults to |
.Cm ascii , |
.Fl T Cm locale . |
.Cm html , |
|
the default of |
|
.Cm locale , |
|
.Cm man , |
|
.Cm markdown , |
|
.Cm pdf , |
|
.Cm ps , |
|
.Cm tree , |
|
and |
|
.Cm utf8 . |
|
.Pp |
|
The special |
|
.Fl T Cm lint |
|
mode only parses the input and produces no output. |
|
It implies |
|
.Fl W Cm all |
|
and redirects parser messages, which usually appear on standard |
|
error output, to standard output. |
.It Fl W Ar level |
.It Fl W Ar level |
Specify the minimum message |
Specify the minimum message |
.Ar level |
.Ar level |
Line 146 to be reported on the standard error output and to aff |
|
Line 163 to be reported on the standard error output and to aff |
|
The |
The |
.Ar level |
.Ar level |
can be |
can be |
|
.Cm base , |
.Cm style , |
.Cm style , |
.Cm warning , |
.Cm warning , |
.Cm error , |
.Cm error , |
or |
or |
.Cm unsupp ; |
.Cm unsupp . |
|
The |
|
.Cm base |
|
level automatically derives the operating system from the contents of the |
|
.Ic \&Os |
|
macro, from the |
|
.Fl Ios |
|
command line option, or from the |
|
.Xr uname 3 |
|
return value. |
|
The levels |
|
.Cm openbsd |
|
and |
|
.Cm netbsd |
|
are variants of |
|
.Cm base |
|
that bypass autodetection and request validation of base system |
|
conventions for a particular operating system. |
|
The level |
.Cm all |
.Cm all |
is an alias for |
is an alias for |
.Cm style . |
.Cm base . |
By default, |
By default, |
.Nm |
.Nm |
is silent. |
is silent. |
|
|
are requested, they can be joined with a comma, for example |
are requested, they can be joined with a comma, for example |
.Fl W Cm error , Ns Cm stop . |
.Fl W Cm error , Ns Cm stop . |
.It Ar file |
.It Ar file |
Read input from zero or more files. |
Read from the given input file. |
If unspecified, reads from stdin. |
If multiple files are specified, they are processed in the given order. |
If multiple files are specified, |
If unspecified, |
.Nm |
.Nm |
will halt with the first failed parse. |
reads from standard input. |
.El |
.El |
.Pp |
.Pp |
The options |
The options |
.Fl fhklw |
.Fl fhklw |
are also supported and are documented in man(1). |
are also supported and are documented in |
|
.Xr man 1 . |
In |
In |
.Fl f |
.Fl f |
and |
and |
|
|
The options |
The options |
.Fl fkl |
.Fl fkl |
are mutually exclusive and override each other. |
are mutually exclusive and override each other. |
.Ss Output Formats |
|
The |
|
.Nm |
|
utility accepts the following |
|
.Fl T |
|
arguments, which correspond to output modes: |
|
.Bl -tag -width "-T markdown" |
|
.It Fl T Cm ascii |
|
Produce 7-bit ASCII output. |
|
See |
|
.Sx ASCII Output . |
|
.It Fl T Cm html |
|
Produce HTML5, CSS1, and MathML output. |
|
See |
|
.Sx HTML Output . |
|
.It Fl T Cm lint |
|
Parse only: produce no output. |
|
Implies |
|
.Fl W Cm warning . |
|
.It Fl T Cm locale |
|
Encode output using the current locale. |
|
This is the default. |
|
See |
|
.Sx Locale Output . |
|
.It Fl T Cm man |
|
Produce |
|
.Xr man 7 |
|
format output. |
|
See |
|
.Sx Man Output . |
|
.It Fl T Cm markdown |
|
Produce output in |
|
.Sy markdown |
|
format. |
|
See |
|
.Sx Markdown Output . |
|
.It Fl T Cm pdf |
|
Produce PDF output. |
|
See |
|
.Sx PDF Output . |
|
.It Fl T Cm ps |
|
Produce PostScript output. |
|
See |
|
.Sx PostScript Output . |
|
.It Fl T Cm tree |
|
Produce an indented parse tree. |
|
See |
|
.Sx Syntax tree output . |
|
.It Fl T Cm utf8 |
|
Encode output in the UTF\-8 multi-byte format. |
|
See |
|
.Sx UTF\-8 Output . |
|
.El |
|
.Pp |
|
If multiple input files are specified, these will be processed by the |
|
corresponding filter in-order. |
|
.Ss ASCII Output |
.Ss ASCII Output |
Output produced by |
Use |
.Fl T Cm ascii |
.Fl T Cm ascii |
is rendered in standard 7-bit ASCII documented in |
to force text output in 7-bit ASCII character encoding documented in the |
.Xr ascii 7 . |
.Xr ascii 7 |
|
manual page, ignoring the |
|
.Xr locale 1 |
|
set in the environment. |
.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 |
underlined character |
underlined character |
|
|
is the back-space character number 8. |
is the back-space character number 8. |
Emboldened characters are rendered as |
Emboldened characters are rendered as |
.Sq c Ns \e[bs] Ns c . |
.Sq c Ns \e[bs] Ns c . |
|
This markup is typically converted to appropriate terminal sequences by |
|
the pager or |
|
.Xr ul 1 . |
|
To remove the markup, pipe the output to |
|
.Xr col 1 |
|
.Fl b |
|
instead. |
.Pp |
.Pp |
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. |
|
In particular, opening and closing |
|
.Sq single quotes |
|
are represented as characters number 0x60 and 0x27, respectively, |
|
which agrees with all ASCII standards from 1965 to the latest |
|
revision (2012) and which matches the traditional way in which |
|
.Xr roff 7 |
|
formatters represent single quotes in ASCII output. |
|
This correct ASCII rendering may look strange with modern |
|
Unicode-compatible fonts because contrary to ASCII, Unicode uses |
|
the code point U+0060 for the grave accent only, never for an opening |
|
quote. |
.Pp |
.Pp |
Output width is limited to 78 visible columns unless literal input lines |
|
exceed this limit. |
|
.Pp |
|
The following |
The following |
.Fl O |
.Fl O |
arguments are accepted: |
arguments are accepted: |
|
|
.Xr man 7 . |
.Xr man 7 . |
Increasing this is not recommended; it may result in degraded formatting, |
Increasing this is not recommended; it may result in degraded formatting, |
for example overfull lines or ugly line breaks. |
for example overfull lines or ugly line breaks. |
|
When output is to a pager on a terminal that is less than 66 columns |
|
wide, the default is reduced to three columns. |
|
.It Cm mdoc |
|
Format |
|
.Xr man 7 |
|
input files in |
|
.Xr mdoc 7 |
|
output style. |
|
This prints the operating system name rather than the page title |
|
on the right side of the footer line, and it implies |
|
.Fl O Cm indent Ns =5 . |
|
One useful application is for checking that |
|
.Fl T Cm man |
|
output formats in the same way as the |
|
.Xr mdoc 7 |
|
source it was generated from. |
|
.It Cm tag Ns Op = Ns Ar term |
|
If the formatted manual page is opened in a pager, |
|
go to the definition of the |
|
.Ar term |
|
rather than showing the manual page from the beginning. |
|
If no |
|
.Ar term |
|
is specified, reuse the first command line argument that is not a |
|
.Ar section |
|
number. |
|
If that argument is in |
|
.Xr apropos 1 |
|
.Ar key Ns = Ns Ar val |
|
format, only the |
|
.Ar val |
|
is used rather than the argument as a whole. |
|
This is useful for commands like |
|
.Ql man -akO tag Ic=ulimit |
|
to search for a keyword and jump right to its definition |
|
in the matching manual pages. |
.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 \(>=58. |
instead of the default of 78. |
|
When output is to a pager on a terminal that is less than 79 columns |
|
wide, the default is reduced to one less than the terminal width. |
|
In any case, lines that are output in literal mode are never wrapped |
|
and may exceed the output width. |
.El |
.El |
.Ss HTML Output |
.Ss HTML Output |
Output produced by |
Output produced by |
Line 308 Equations rendered from |
|
Line 347 Equations rendered from |
|
.Xr eqn 7 |
.Xr eqn 7 |
blocks use MathML. |
blocks use MathML. |
.Pp |
.Pp |
The |
The file |
.Pa mandoc.css |
.Pa /usr/share/misc/mandoc.css |
file documents style-sheet classes available for customising output. |
documents style-sheet classes available for customising output. |
If a style-sheet is not specified with |
If a style-sheet is not specified with |
.Fl O Cm style , |
.Fl O Cm style , |
.Fl T Cm html |
.Fl T Cm html |
Line 318 defaults to simple output (via an embedded style-sheet |
|
Line 357 defaults to simple output (via an embedded style-sheet |
|
readable in any graphical or text-based web |
readable in any graphical or text-based web |
browser. |
browser. |
.Pp |
.Pp |
Special characters are rendered in decimal-encoded UTF\-8. |
Non-ASCII characters are rendered |
|
as hexadecimal Unicode character references. |
.Pp |
.Pp |
The following |
The following |
.Fl O |
.Fl O |
|
|
are replaced with the include filename. |
are replaced with the include filename. |
The default is not to present a |
The default is not to present a |
hyperlink. |
hyperlink. |
.It Cm man Ns = Ns Ar fmt |
.It Cm man Ns = Ns Ar fmt Ns Op ; Ns Ar fmt |
The string |
The string |
.Ar fmt , |
.Ar fmt , |
for example, |
for example, |
Line 360 are replaced with the linked manual's name and section |
|
Line 400 are replaced with the linked manual's name and section |
|
If no section is included, section 1 is assumed. |
If no section is included, section 1 is assumed. |
The default is not to |
The default is not to |
present a hyperlink. |
present a hyperlink. |
|
If two formats are given and a file |
|
.Ar %N.%S |
|
exists in the current directory, the first format is used; |
|
otherwise, the second format is used. |
.It Cm style Ns = Ns Ar style.css |
.It Cm style Ns = Ns Ar style.css |
The file |
The file |
.Ar style.css |
.Ar style.css |
is used for an external style-sheet. |
is used for an external style-sheet. |
This must be a valid absolute or |
This must be a valid absolute or |
relative URI. |
relative URI. |
|
.It Cm tag Ns Op = Ns Ar term |
|
Same syntax and semantics as for |
|
.Sx ASCII Output . |
|
This is implemented by passing a |
|
.Ic file:// |
|
URI ending in a fragment identifier to the pager |
|
rather than passing merely a file name. |
|
When using this argument, use a pager supporting such URIs, for example |
|
.Bd -literal -offset 3n |
|
MANPAGER='lynx -force_html' man -T html -O tag=MANPAGER man |
|
MANPAGER='w3m -T text/html' man -T html -O tag=toc mandoc |
|
.Ed |
|
.Pp |
|
Consequently, for HTML output, this argument does not work with |
|
.Xr more 1 |
|
or |
|
.Xr less 1 . |
|
For example, |
|
.Ql MANPAGER=less man -T html -O tag=toc mandoc |
|
does not work because |
|
.Xr less 1 |
|
does not support |
|
.Ic file:// |
|
URIs. |
|
.It Cm toc |
|
If an input file contains at least two non-standard sections, |
|
print a table of contents near the beginning of the output. |
.El |
.El |
.Ss Locale Output |
.Ss Locale Output |
Locale-depending output encoding is triggered with |
By default, |
|
.Nm |
|
automatically selects UTF-8 or ASCII output according to the current |
|
.Xr locale 1 . |
|
If any of the environment variables |
|
.Ev LC_ALL , |
|
.Ev LC_CTYPE , |
|
or |
|
.Ev LANG |
|
are set and the first one that is set |
|
selects the UTF-8 character encoding, it produces |
|
.Sx UTF-8 Output ; |
|
otherwise, it falls back to |
|
.Sx ASCII Output . |
|
This output mode can also be selected explicitly with |
.Fl T Cm locale . |
.Fl T Cm locale . |
This is the default. |
|
.Pp |
|
This option is not available on all systems: systems without locale |
|
support, or those whose internal representation is not natively UCS-4, |
|
will fall back to |
|
.Fl T Cm ascii . |
|
See |
|
.Sx ASCII Output |
|
for font style specification and available command-line arguments. |
|
.Ss Man Output |
.Ss Man Output |
Translate input format into |
Use |
|
.Fl T Cm man |
|
to translate |
|
.Xr mdoc 7 |
|
input into |
.Xr man 7 |
.Xr man 7 |
output format. |
output format. |
This is useful for distributing manual sources to legacy systems |
This is useful for distributing manual sources to legacy systems |
lacking |
lacking |
.Xr mdoc 7 |
.Xr mdoc 7 |
formatters. |
formatters. |
|
Embedded |
|
.Xr eqn 7 |
|
and |
|
.Xr tbl 7 |
|
code is not supported. |
.Pp |
.Pp |
If |
If the input format of a file is |
.Xr mdoc 7 |
|
is passed as input, it is translated into |
|
.Xr man 7 . |
|
If the input format is |
|
.Xr man 7 , |
.Xr man 7 , |
the input is copied to the output, expanding any |
the input is copied to the output. |
.Xr roff 7 |
|
.Ic so |
|
requests. |
|
The parser is also run, and as usual, the |
The parser is also run, and as usual, the |
.Fl W |
.Fl W |
level controls which |
level controls which |
.Sx DIAGNOSTICS |
.Sx DIAGNOSTICS |
are displayed before copying the input to the output. |
are displayed before copying the input to the output. |
.Ss Markdown Output |
.Ss Markdown Output |
Translate |
Use |
|
.Fl T Cm markdown |
|
to translate |
.Xr mdoc 7 |
.Xr mdoc 7 |
input to the |
input to the markdown format conforming to |
.Sy markdown |
.Lk https://daringfireball.net/projects/markdown/syntax.text\ |
format conforming to |
|
.Lk http://daringfireball.net/projects/markdown/syntax.text\ |
|
"John Gruber's 2004 specification" . |
"John Gruber's 2004 specification" . |
The output also almost conforms to the |
The output also almost conforms to the |
.Lk http://commonmark.org/ CommonMark |
.Lk https://commonmark.org/ CommonMark |
specification. |
specification. |
.Pp |
.Pp |
The character set used for the markdown output is ASCII. |
The character set used for the markdown output is ASCII. |
Line 479 If an unknown value is encountered, |
|
Line 557 If an unknown value is encountered, |
|
.Ar letter |
.Ar letter |
is used. |
is used. |
.El |
.El |
.Ss UTF\-8 Output |
.Ss UTF-8 Output |
Use |
Use |
.Fl T Cm utf8 |
.Fl T Cm utf8 |
to force a UTF\-8 locale. |
to force text output in UTF-8 multi-byte character encoding, |
|
ignoring the |
|
.Xr locale 1 |
|
settings in the environment. |
See |
See |
.Sx Locale Output |
.Sx ASCII Output |
for details and options. |
regarding font styles and |
|
.Fl O |
|
arguments. |
|
.Pp |
|
On operating systems lacking locale or wide character support, and |
|
on those where the internal character representation is not UCS-4, |
|
.Nm |
|
always falls back to |
|
.Sx ASCII Output . |
.Ss Syntax tree output |
.Ss Syntax tree output |
Use |
Use |
.Fl T Cm tree |
.Fl T Cm tree |
Line 554 Meta data is not available in this case. |
|
Line 643 Meta data is not available in this case. |
|
.El |
.El |
.Sh ENVIRONMENT |
.Sh ENVIRONMENT |
.Bl -tag -width MANPAGER |
.Bl -tag -width MANPAGER |
|
.It Ev LC_CTYPE |
|
The character encoding |
|
.Xr locale 1 . |
|
When |
|
.Sx Locale Output |
|
is selected, it decides whether to use ASCII or UTF-8 output format. |
|
It never affects the interpretation of input files. |
.It Ev MANPAGER |
.It Ev MANPAGER |
Any non-empty value of the environment variable |
Any non-empty value of the environment variable |
.Ev MANPAGER |
.Ev MANPAGER |
is used instead of the standard pagination program, |
is used instead of the standard pagination program, |
.Xr more 1 ; |
.Xr less 1 ; |
see |
see |
.Xr man 1 |
.Xr man 1 |
for details. |
for details. |
Line 572 Specifies the pagination program to use when |
|
Line 668 Specifies the pagination program to use when |
|
.Ev MANPAGER |
.Ev MANPAGER |
is not defined. |
is not defined. |
If neither PAGER nor MANPAGER is defined, |
If neither PAGER nor MANPAGER is defined, |
.Xr more 1 |
.Xr less 1 |
.Fl s |
|
is used. |
is used. |
Only used if |
Only used if |
.Fl a |
.Fl a |
|
|
.Pp |
.Pp |
.Bl -tag -width Ds -compact |
.Bl -tag -width Ds -compact |
.It 0 |
.It 0 |
No style suggestions, warnings or errors occurred, or those that |
No base system convention violations, style suggestions, warnings, |
did were ignored because they were lower than the requested |
or errors occurred, or those that did were ignored because they |
|
were lower than the requested |
.Ar level . |
.Ar level . |
.It 1 |
.It 1 |
At least one style suggestion occurred, but no warning or error, and |
At least one base system convention violation or style suggestion |
|
occurred, but no warning or error, and |
|
.Fl W Cm base |
|
or |
.Fl W Cm style |
.Fl W Cm style |
was specified. |
was specified. |
.It 2 |
.It 2 |
At least one warning occurred, but no error, and |
At least one warning occurred, but no error, and |
.Fl W Cm warning |
.Fl W Cm warning |
or |
or a lower |
.Fl W Cm style |
.Ar level |
was specified. |
was requested. |
.It 3 |
.It 3 |
At least one parsing error occurred, |
At least one parsing error occurred, |
but no unsupported feature was encountered, and |
but no unsupported feature was encountered, and |
Line 624 No input files have been read. |
|
Line 723 No input files have been read. |
|
.It 6 |
.It 6 |
An operating system error occurred, for example exhaustion |
An operating system error occurred, for example exhaustion |
of memory, file descriptors, or process table entries. |
of memory, file descriptors, or process table entries. |
Such errors cause |
Such errors may 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. |
.El |
.El |
Line 632 to exit at once, possibly in the middle of parsing or |
|
Line 731 to exit at once, possibly in the middle of parsing or |
|
Note that selecting |
Note that selecting |
.Fl T Cm lint |
.Fl T Cm lint |
output mode implies |
output mode implies |
.Fl W Cm warning . |
.Fl W Cm all . |
.Sh EXAMPLES |
.Sh EXAMPLES |
To page manuals to the terminal: |
To page manuals to the terminal: |
.Pp |
.Pp |
.Dl $ mandoc -l mandoc.1 man.1 apropos.1 makewhatis.8 |
.Dl $ mandoc -a mandoc.1 man.1 apropos.1 makewhatis.8 |
.Pp |
.Pp |
To produce HTML manuals with |
To produce HTML manuals with |
.Pa mandoc.css |
.Pa /usr/share/misc/mandoc.css |
as the style-sheet: |
as the style-sheet: |
.Pp |
.Pp |
.Dl $ mandoc \-T html -O style=mandoc.css mdoc.7 \*(Gt mdoc.7.html |
.Dl $ mandoc \-T html -O style=/usr/share/misc/mandoc.css mdoc.7 > mdoc.7.html |
.Pp |
.Pp |
To check over a large set of manuals: |
To check over a large set of manuals: |
.Pp |
.Pp |
Line 650 To check over a large set of manuals: |
|
Line 749 To check over a large set of manuals: |
|
.Pp |
.Pp |
To produce a series of PostScript manuals for A4 paper: |
To produce a series of PostScript manuals for A4 paper: |
.Pp |
.Pp |
.Dl $ mandoc \-T ps \-O paper=a4 mdoc.7 man.7 \*(Gt manuals.ps |
.Dl $ mandoc \-T ps \-O paper=a4 mdoc.7 man.7 > manuals.ps |
.Pp |
.Pp |
Convert a modern |
Convert a modern |
.Xr mdoc 7 |
.Xr mdoc 7 |
Line 660 format, for use on systems lacking an |
|
Line 759 format, for use on systems lacking an |
|
.Xr mdoc 7 |
.Xr mdoc 7 |
parser: |
parser: |
.Pp |
.Pp |
.Dl $ mandoc \-T man foo.mdoc \*(Gt foo.man |
.Dl $ mandoc \-T man foo.mdoc > foo.man |
.Sh DIAGNOSTICS |
.Sh DIAGNOSTICS |
Messages displayed by |
Messages displayed by |
.Nm |
.Nm |
follow this format: |
follow this format: |
|
.Bd -ragged -offset indent |
|
.Nm : |
|
.Ar file : Ns Ar line : Ns Ar column : level : message : macro arguments |
|
.Pq Ar os |
|
.Ed |
.Pp |
.Pp |
.D1 Nm Ns : Ar file : Ns Ar line : Ns Ar column : level : message : macro args |
The first three fields identify the |
.Pp |
.Ar file |
Line and column numbers start at 1. |
name, |
|
.Ar line |
|
number, and |
|
.Ar column |
|
number of the input file where the message was triggered. |
|
The line and column numbers start at 1. |
Both are omitted for messages referring to an input file as a whole. |
Both are omitted for messages referring to an input file as a whole. |
Macro names and arguments are omitted where meaningless. |
All |
|
.Ar level |
|
and |
|
.Ar message |
|
strings are explained below. |
|
The name of the |
|
.Ar macro |
|
triggering the message and its |
|
.Ar arguments |
|
are omitted where meaningless. |
|
The |
|
.Ar os |
|
operating system specifier is omitted for messages that are relevant |
|
for all operating systems. |
Fatal messages about invalid command line arguments |
Fatal messages about invalid command line arguments |
or operating system errors, for example when memory is exhausted, |
or operating system errors, for example when memory is exhausted, |
may also omit the |
may also omit the |
|
|
.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 |
|
An operating system error occurred. |
|
There isn't necessarily anything wrong with the input files. |
|
Output may all the same be missing or incomplete. |
|
.It Cm badarg |
|
Invalid command line arguments were specified. |
|
No input files have been read and no output is produced. |
.It Cm unsupp |
.It Cm unsupp |
An input file uses unsupported low-level |
An input file uses unsupported low-level |
.Xr roff 7 |
.Xr roff 7 |
Line 690 so using GNU troff instead of |
|
Line 819 so using GNU troff instead of |
|
.Nm |
.Nm |
to process the file may be preferable. |
to process the file may be preferable. |
.It Cm error |
.It Cm error |
An input file contains invalid syntax that cannot be safely interpreted. |
Indicates a risk of information loss or severe misformatting, |
By discarding part of the input or inserting missing tokens, |
in most cases caused by serious syntax errors. |
the parser is able to continue, and the error does not prevent |
|
generation of formatted output, but typically, preparing that |
|
output involves information loss, broken document structure |
|
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. |
Indicates a risk that the information shown or its formatting |
All the same, the meaning of the input is unambiguous and a correct |
may mismatch the author's intent in minor ways. |
rendering can be produced. |
Additionally, syntax errors are classified at least as warnings, |
Documents causing warnings may render poorly when using other |
even if they do not usually cause misformatting. |
formatting tools instead of |
|
.Nm . |
|
.It Cm style |
.It Cm style |
An input file uses dubious or discouraged style. |
An input file uses dubious or discouraged style. |
This is not a complaint about the syntax, and probably neither |
This is not a complaint about the syntax, and probably neither |
Line 725 message levels, the |
|
Line 835 message levels, the |
|
.Cm style |
.Cm style |
level tries to reduce the probability that issues go unnoticed, |
level tries to reduce the probability that issues go unnoticed, |
so it may occasionally issue bogus suggestions. |
so it may occasionally issue bogus suggestions. |
Please use your good judgement to decide whether any particular |
Use your judgement to decide whether any particular |
.Cm style |
.Cm style |
suggestion really justifies a change to the input file. |
suggestion really justifies a change to the input file. |
|
.It Cm base |
|
A convention used in the base system of a specific operating system |
|
is not adhered to. |
|
These are not markup mistakes, and neither the quality of formatting |
|
nor portability are in danger. |
|
Messages of the |
|
.Cm base |
|
level are printed with the more intuitive |
|
.Cm style |
|
.Ar level |
|
tag. |
.El |
.El |
.Pp |
.Pp |
Messages of the |
Messages of the |
|
.Cm base , |
.Cm style , |
.Cm style , |
.Cm warning , |
.Cm warning , |
.Cm error , |
.Cm error , |
and |
and |
.Cm unsupp |
.Cm unsupp |
levels except those about non-existent or unreadable input files |
levels are hidden unless their level, or a lower level, is requested using a |
are hidden unless their level, or a lower level, is requested using a |
|
.Fl W |
.Fl W |
option or |
option or |
.Fl T Cm lint |
.Fl T Cm lint |
output mode. |
output mode. |
|
.Pp |
|
As indicated below, all |
|
.Cm base |
|
and some |
|
.Cm style |
|
checks are only performed if a specific operating system name occurs |
|
in the arguments of the |
|
.Fl W |
|
command line option, of the |
|
.Ic \&Os |
|
macro, of the |
|
.Fl Ios |
|
command line option, or, if neither are present, in the return value |
|
of the |
|
.Xr uname 3 |
|
function. |
|
.Ss Conventions for base system manuals |
|
.Bl -ohang |
|
.It Sy "Mdocdate found" |
|
.Pq mdoc , Nx |
|
The |
|
.Ic \&Dd |
|
macro uses CVS |
|
.Ic Mdocdate |
|
keyword substitution, which is not supported by the |
|
.Nx |
|
base system. |
|
Consider using the conventional |
|
.Dq "Month dd, yyyy" |
|
format instead. |
|
.It Sy "Mdocdate missing" |
|
.Pq mdoc , Ox |
|
The |
|
.Ic \&Dd |
|
macro does not use CVS |
|
.Ic Mdocdate |
|
keyword substitution, but using it is conventionally expected in the |
|
.Ox |
|
base system. |
|
.It Sy "unknown architecture" |
|
.Pq mdoc , Ox , Nx |
|
The third argument of the |
|
.Ic \&Dt |
|
macro does not match any of the architectures this operating system |
|
is running on. |
|
.It Sy "operating system explicitly specified" |
|
.Pq mdoc , Ox , Nx |
|
The |
|
.Ic \&Os |
|
macro has an argument. |
|
In the base system, it is conventionally left blank. |
|
.It Sy "RCS id missing" |
|
.Pq Ox , Nx |
|
The manual page lacks the comment line with the RCS identifier |
|
generated by CVS |
|
.Ic OpenBSD |
|
or |
|
.Ic NetBSD |
|
keyword substitution as conventionally used in these operating systems. |
|
.El |
|
.Ss Style suggestions |
|
.Bl -ohang |
|
.It Sy "legacy man(7) date format" |
|
.Pq mdoc |
|
The |
|
.Ic \&Dd |
|
macro uses the legacy |
|
.Xr man 7 |
|
date format |
|
.Dq yyyy-dd-mm . |
|
Consider using the conventional |
|
.Xr mdoc 7 |
|
date format |
|
.Dq "Month dd, yyyy" |
|
instead. |
|
.It Sy "normalizing date format to" : No ... |
|
.Pq mdoc , man |
|
The |
|
.Ic \&Dd |
|
or |
|
.Ic \&TH |
|
macro provides an abbreviated month name or a day number with a |
|
leading zero. |
|
In the formatted output, the month name is written out in full |
|
and the leading zero is omitted. |
|
.It Sy "lower case character in document title" |
|
.Pq mdoc , man |
|
The title is still used as given in the |
|
.Ic \&Dt |
|
or |
|
.Ic \&TH |
|
macro. |
|
.It Sy "duplicate RCS id" |
|
A single manual page contains two copies of the RCS identifier for |
|
the same operating system. |
|
Consider deleting the later instance and moving the first one up |
|
to the top of the page. |
|
.It Sy "possible typo in section name" |
|
.Pq mdoc |
|
Fuzzy string matching revealed that the argument of an |
|
.Ic \&Sh |
|
macro is similar, but not identical to a standard section name. |
|
.It Sy "unterminated quoted argument" |
|
.Pq roff |
|
Macro arguments can be enclosed in double quote characters |
|
such that space characters and macro names contained in the quoted |
|
argument need not be escaped. |
|
The closing quote of the last argument of a macro can be omitted. |
|
However, omitting it is not recommended because it makes the code |
|
harder to read. |
|
.It Sy "useless macro" |
|
.Pq mdoc |
|
A |
|
.Ic \&Bt , |
|
.Ic \&Tn , |
|
or |
|
.Ic \&Ud |
|
macro was found. |
|
Simply delete it: it serves no useful purpose. |
|
.It Sy "consider using OS macro" |
|
.Pq mdoc |
|
A string was found in plain text or in a |
|
.Ic \&Bx |
|
macro that could be represented using |
|
.Ic \&Ox , |
|
.Ic \&Nx , |
|
.Ic \&Fx , |
|
or |
|
.Ic \&Dx . |
|
.It Sy "errnos out of order" |
|
.Pq mdoc, Nx |
|
The |
|
.Ic \&Er |
|
items in a |
|
.Ic \&Bl |
|
list are not in alphabetical order. |
|
.It Sy "duplicate errno" |
|
.Pq mdoc, Nx |
|
A |
|
.Ic \&Bl |
|
list contains two consecutive |
|
.Ic \&It |
|
entries describing the same |
|
.Ic \&Er |
|
number. |
|
.It Sy "referenced manual not found" |
|
.Pq mdoc |
|
An |
|
.Ic \&Xr |
|
macro references a manual page that was not found. |
|
When running with |
|
.Fl W Cm base , |
|
the search is restricted to the base system, by default to |
|
.Pa /usr/share/man : Ns Pa /usr/X11R6/man . |
|
This path can be configured at compile time using the |
|
.Dv MANPATH_BASE |
|
preprocessor macro. |
|
When running with |
|
.Fl W Cm style , |
|
the search is done along the full search path as described in the |
|
.Xr man 1 |
|
manual page, respecting the |
|
.Fl m |
|
and |
|
.Fl M |
|
command line options, the |
|
.Ev MANPATH |
|
environment variable, the |
|
.Xr man.conf 5 |
|
file and falling back to the default of |
|
.Pa /usr/share/man : Ns Pa /usr/X11R6/man : Ns Pa /usr/local/man , |
|
also configurable at compile time using the |
|
.Dv MANPATH_DEFAULT |
|
preprocessor macro. |
|
.It Sy "trailing delimiter" |
|
.Pq mdoc |
|
The last argument of an |
|
.Ic \&Ex , \&Fo , \&Nd , \&Nm , \&Os , \&Sh , \&Ss , \&St , |
|
or |
|
.Ic \&Sx |
|
macro ends with a trailing delimiter. |
|
This is usually bad style and often indicates typos. |
|
Most likely, the delimiter can be removed. |
|
.It Sy "no blank before trailing delimiter" |
|
.Pq mdoc |
|
The last argument of a macro that supports trailing delimiter |
|
arguments is longer than one byte and ends with a trailing delimiter. |
|
Consider inserting a blank such that the delimiter becomes a separate |
|
argument, thus moving it out of the scope of the macro. |
|
.It Sy "fill mode already enabled, skipping" |
|
.Pq man |
|
A |
|
.Ic \&fi |
|
request occurs even though the document is still in fill mode, |
|
or already switched back to fill mode. |
|
It has no effect. |
|
.It Sy "fill mode already disabled, skipping" |
|
.Pq man |
|
An |
|
.Ic \&nf |
|
request occurs even though the document already switched to no-fill mode |
|
and did not switch back to fill mode yet. |
|
It has no effect. |
|
.It Sy "input text line longer than 80 bytes" |
|
Consider breaking the input text line |
|
at one of the blank characters before column 80. |
|
.It Sy "verbatim \(dq--\(dq, maybe consider using \e(em" |
|
.Pq mdoc |
|
Even though the ASCII output device renders an em-dash as |
|
.Qq \-\- , |
|
that is not a good way to write it in an input file |
|
because it renders poorly on all other output devices. |
|
.It Sy "function name without markup" |
|
.Pq mdoc |
|
A word followed by an empty pair of parentheses occurs on a text line. |
|
Consider using an |
|
.Ic \&Fn |
|
or |
|
.Ic \&Xr |
|
macro. |
|
.It Sy "whitespace at end of input line" |
|
.Pq mdoc , man , roff |
|
Whitespace at the end of input lines is almost never semantically |
|
significant \(em but in the odd case where it might be, it is |
|
extremely confusing when reviewing and maintaining documents. |
|
.It Sy "bad comment style" |
|
.Pq roff |
|
Comment lines start with a dot, a backslash, and a double-quote character. |
|
The |
|
.Nm |
|
utility treats the line as a comment line even without the backslash, |
|
but leaving out the backslash might not be portable. |
|
.El |
.Ss Warnings related to the document prologue |
.Ss Warnings related to the document prologue |
.Bl -ohang |
.Bl -ohang |
.It Sy "missing manual title, using UNTITLED" |
.It Sy "missing manual title, using UNTITLED" |
Line 756 macro before the first non-prologue macro. |
|
Line 1110 macro before the first non-prologue macro. |
|
There is no |
There is no |
.Ic \&TH |
.Ic \&TH |
macro, or it has no arguments. |
macro, or it has no arguments. |
.It Sy "lower case character in document title" |
|
.Pq mdoc , man |
|
The title is still used as given in the |
|
.Ic \&Dt |
|
or |
|
.Ic \&TH |
|
macro. |
|
.It Sy "missing manual section, using \(dq\(dq" |
.It Sy "missing manual section, using \(dq\(dq" |
.Pq mdoc , man |
.Pq mdoc , man |
A |
A |
Line 775 macro lacks the mandatory section argument. |
|
Line 1122 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 "missing date, using today's date" |
.It Sy "filename/section mismatch" |
|
.Pq mdoc , man |
|
The name of the input file being processed is known and its file |
|
name extension starts with a non-zero digit, but the |
|
.Ic \&Dt |
|
or |
|
.Ic \&TH |
|
macro contains a |
|
.Ar section |
|
argument that starts with a different non-zero digit. |
|
The |
|
.Ar section |
|
argument is used as provided anyway. |
|
Consider checking whether the file name or the argument need a correction. |
|
.It Sy "missing date, using \(dq\(dq" |
.Pq mdoc, man |
.Pq mdoc, man |
The document was parsed as |
The document was parsed as |
.Xr mdoc 7 |
.Xr mdoc 7 |
Line 798 The date given in a |
|
Line 1159 The date given in a |
|
or |
or |
.Ic \&TH |
.Ic \&TH |
macro does not follow the conventional format. |
macro does not follow the conventional format. |
|
.It Sy "date in the future, using it anyway" |
|
.Pq mdoc , man |
|
The date given in a |
|
.Ic \&Dd |
|
or |
|
.Ic \&TH |
|
macro is more than a day ahead of the current system |
|
.Xr time 3 . |
.It Sy "missing Os macro, using \(dq\(dq" |
.It Sy "missing Os macro, using \(dq\(dq" |
.Pq mdoc |
.Pq mdoc |
The default or current system is not shown in this case. |
The default or current system is not shown in this case. |
.It Sy "duplicate prologue macro" |
|
.Pq mdoc |
|
One of the prologue macros occurs more than once. |
|
The last instance overrides all previous ones. |
|
.It Sy "late prologue macro" |
.It Sy "late prologue macro" |
.Pq mdoc |
.Pq mdoc |
A |
A |
|
|
or |
or |
.Ic \&Os |
.Ic \&Os |
macro occurs after some non-prologue macro, but still takes effect. |
macro occurs after some non-prologue macro, but still takes effect. |
.It Sy "skipping late title macro" |
|
.Pq mdoc |
|
The |
|
.Ic \&Dt |
|
macro appears after the first non-prologue macro. |
|
Traditional formatters cannot handle this because |
|
they write the page header before parsing the document body. |
|
Even though this technical restriction does not apply to |
|
.Nm , |
|
traditional semantics is preserved. |
|
The late macro is discarded including its arguments. |
|
.It Sy "prologue macros out of order" |
.It Sy "prologue macros out of order" |
.Pq mdoc |
.Pq mdoc |
The prologue macros are not given in the conventional order |
The prologue macros are not given in the conventional order |
Line 914 The same standard section title occurs more than once. |
|
Line 1268 The same standard section title occurs more than once. |
|
.Pq mdoc |
.Pq mdoc |
A standard section header occurs in a section of the manual |
A standard section header occurs in a section of the manual |
where it normally isn't useful. |
where it normally isn't useful. |
|
.It Sy "cross reference to self" |
|
.Pq mdoc |
|
An |
|
.Ic \&Xr |
|
macro refers to a name and section matching the section of the present |
|
manual page and a name mentioned in an |
|
.Ic \&Nm |
|
macro in the NAME or SYNOPSIS section, or in an |
|
.Ic \&Fn |
|
or |
|
.Ic \&Fo |
|
macro in the SYNOPSIS. |
|
Consider using |
|
.Ic \&Nm |
|
or |
|
.Ic \&Fn |
|
instead of |
|
.Ic \&Xr . |
.It Sy "unusual Xr order" |
.It Sy "unusual Xr order" |
.Pq mdoc |
.Pq mdoc |
In the SEE ALSO section, an |
In the SEE ALSO section, an |
Line 1000 The paragraph macro is moved after the end of the list |
|
Line 1372 The paragraph macro is moved after the end of the list |
|
.Pq mdoc |
.Pq mdoc |
An input line begins with an |
An input line begins with an |
.Ic \&Ns |
.Ic \&Ns |
macro. |
macro, or the next argument after an |
|
.Ic \&Ns |
|
macro is an isolated closing delimiter. |
The macro is ignored. |
The macro is ignored. |
.It Sy "blocks badly nested" |
.It Sy "blocks badly nested" |
.Pq mdoc |
.Pq mdoc |
Line 1041 list block contains text or macros before the first |
|
Line 1415 list block contains text or macros before the first |
|
.Ic \&It |
.Ic \&It |
macro. |
macro. |
The offending children are moved before the beginning of the list. |
The offending children are moved before the beginning of the list. |
.It Sy "fill mode already enabled, skipping" |
.It Sy "first macro on line" |
.Pq man |
Inside a |
A |
.Ic \&Bl Fl column |
.Ic \&fi |
list, a |
request occurs even though the document is still in fill mode, |
.Ic \&Ta |
or already switched back to fill mode. |
macro occurs as the first macro on a line, which is not portable. |
It has no effect. |
|
.It Sy "fill mode already disabled, skipping" |
|
.Pq man |
|
An |
|
.Ic \&nf |
|
request occurs even though the document already switched to no-fill mode |
|
and did not switch back to fill mode yet. |
|
It has no effect. |
|
.It Sy "line scope broken" |
.It Sy "line scope broken" |
.Pq man |
.Pq man |
While parsing the next-line scope of the previous macro, |
While parsing the next-line scope of the previous macro, |
|
|
.Ic \&Bl , |
.Ic \&Bl , |
.Ic \&D1 , |
.Ic \&D1 , |
.Ic \&Dl , |
.Ic \&Dl , |
|
.Ic \&MT , |
.Ic \&RS , |
.Ic \&RS , |
or |
or |
.Ic \&UR |
.Ic \&UR |
|
|
.Ic \&It |
.Ic \&It |
block is empty. |
block is empty. |
An empty list item is shown. |
An empty list item is shown. |
|
.It Sy "missing argument, using next line" |
|
.Pq mdoc |
|
An |
|
.Ic \&It |
|
macro in a |
|
.Ic \&Bd Fl column |
|
list has no arguments. |
|
While |
|
.Nm |
|
uses the text or macros of the following line, if any, for the cell, |
|
other formatters may misformat the list. |
.It Sy "missing font type, using \efR" |
.It Sy "missing font type, using \efR" |
.Pq mdoc |
.Pq mdoc |
A |
A |
Line 1243 An empty pair of square brackets is shown. |
|
Line 1621 An empty pair of square brackets is shown. |
|
.It Sy "missing resource identifier, using \(dq\(dq" |
.It Sy "missing resource identifier, using \(dq\(dq" |
.Pq man |
.Pq man |
The |
The |
|
.Ic \&MT |
|
or |
.Ic \&UR |
.Ic \&UR |
macro is invoked without any argument. |
macro is invoked without any argument. |
An empty pair of angle brackets is shown. |
An empty pair of angle brackets is shown. |
Line 1254 An empty box is inserted. |
|
Line 1634 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 |
.It Sy "unterminated quoted argument" |
|
.Pq roff |
|
Macro arguments can be enclosed in double quote characters |
|
such that space characters and macro names contained in the quoted |
|
argument need not be escaped. |
|
The closing quote of the last argument of a macro can be omitted. |
|
However, omitting it is not recommended because it makes the code |
|
harder to read. |
|
.It Sy "duplicate argument" |
.It Sy "duplicate argument" |
.Pq mdoc |
.Pq mdoc |
A |
A |
|
|
.Ic \&Fn |
.Ic \&Fn |
macro contains an opening or closing parenthesis; that's probably wrong, |
macro contains an opening or closing parenthesis; that's probably wrong, |
parentheses are added automatically. |
parentheses are added automatically. |
|
.It Sy "unknown library name" |
|
.Pq mdoc, not on Ox |
|
An |
|
.Ic \&Lb |
|
macro has an unknown name argument and will be rendered as |
|
.Qq library Dq Ar name . |
.It Sy "invalid content in Rs block" |
.It Sy "invalid content in Rs block" |
.Pq mdoc |
.Pq mdoc |
An |
An |
|
|
.Cm off . |
.Cm off . |
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 "argument contains two font escapes" |
|
.Pq roff |
|
The second argument of a |
|
.Ic char |
|
request contains more than one font escape sequence. |
|
A wrong font may remain active after using the character. |
.It Sy "unknown font, skipping request" |
.It Sy "unknown font, skipping request" |
.Pq man , tbl |
.Pq man , tbl |
A |
A |
Line 1385 The meaning of blank input lines is only well-defined |
|
Line 1769 The meaning of blank input lines is only well-defined |
|
In fill mode, line breaks of text input lines are not supposed to be |
In fill mode, line breaks of text input lines are not supposed to be |
significant. |
significant. |
However, for compatibility with groff, blank lines in fill mode |
However, for compatibility with groff, blank lines in fill mode |
are replaced with |
are formatted like |
.Ic \&sp |
.Ic \&sp |
requests. |
requests. |
|
To request a paragraph break, use |
|
.Ic \&Pp |
|
instead of a blank line. |
.It Sy "tab in filled text" |
.It Sy "tab in filled text" |
.Pq mdoc , man |
.Pq mdoc , man |
The meaning of tab characters is only well-defined in non-fill mode: |
The meaning of tab characters is only well-defined in non-fill mode: |
Line 1397 As an implementation dependent choice, tab characters |
|
Line 1784 As an implementation dependent choice, tab characters |
|
are passed through to the formatters in any case. |
are passed through to the formatters in any case. |
Given that the text before the tab character will be filled, |
Given that the text before the tab character will be filled, |
it is hard to predict which tab stop position the tab will advance to. |
it is hard to predict which tab stop position the tab will advance to. |
.It Sy "whitespace at end of input line" |
|
.Pq mdoc , man , roff |
|
Whitespace at the end of input lines is almost never semantically |
|
significant \(em but in the odd case where it might be, it is |
|
extremely confusing when reviewing and maintaining documents. |
|
.It Sy "new sentence, new line" |
.It Sy "new sentence, new line" |
.Pq mdoc |
.Pq mdoc |
A new sentence starts in the middle of a text line. |
A new sentence starts in the middle of a text line. |
Start it on a new input line to help formatters produce correct spacing. |
Start it on a new input line to help formatters produce correct spacing. |
.It Sy "bad comment style" |
|
.Pq roff |
|
Comment lines start with a dot, a backslash, and a double-quote character. |
|
The |
|
.Nm |
|
utility treats the line as a comment line even without the backslash, |
|
but leaving out the backslash might not be portable. |
|
.It Sy "invalid escape sequence" |
.It Sy "invalid escape sequence" |
.Pq roff |
.Pq roff |
An escape sequence has an invalid opening argument delimiter, lacks the |
An escape sequence has an invalid opening argument delimiter, lacks the |
closing argument delimiter, or the argument has too few characters. |
closing argument delimiter, the argument is of an invalid form, or it is |
|
a character escape sequence with an invalid name. |
If the argument is incomplete, |
If the argument is incomplete, |
.Ic \e* |
.Ic \e* |
and |
and |
|
|
.Ic \ew |
.Ic \ew |
to the length of the incomplete argument. |
to the length of the incomplete argument. |
All other invalid escape sequences are ignored. |
All other invalid escape sequences are ignored. |
|
.It Sy "undefined escape, printing literally" |
|
.Pq roff |
|
In an escape sequence, the first character |
|
right after the leading backslash is invalid. |
|
That character is printed literally, |
|
which is equivalent to ignoring the backslash. |
.It Sy "undefined string, using \(dq\(dq" |
.It Sy "undefined string, using \(dq\(dq" |
.Pq roff |
.Pq roff |
If a string is used without being defined before, |
If a string is used without being defined before, |
Line 1492 The invalid character is discarded. |
|
Line 1874 The invalid character is discarded. |
|
A table layout specification contains an opening parenthesis, |
A table layout specification contains an opening parenthesis, |
but no matching closing parenthesis. |
but no matching closing parenthesis. |
The rest of the input line, starting from the parenthesis, has no effect. |
The rest of the input line, starting from the parenthesis, has no effect. |
|
.It Sy "ignoring excessive spacing in tbl layout" |
|
.Pq tbl |
|
A spacing modifier in a table layout is unreasonably large. |
|
The default spacing of 3n is used instead. |
.It Sy "tbl without any data cells" |
.It Sy "tbl without any data cells" |
.Pq tbl |
.Pq tbl |
A table does not contain any data cells. |
A table does not contain any data cells. |
Line 1519 and any remaining cells stay empty. |
|
Line 1905 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 |
|
.It Sy "duplicate prologue macro" |
|
.Pq mdoc |
|
One of the prologue macros occurs more than once. |
|
The last instance overrides all previous ones. |
|
.It Sy "skipping late title macro" |
|
.Pq mdoc |
|
The |
|
.Ic \&Dt |
|
macro appears after the first non-prologue macro. |
|
Traditional formatters cannot handle this because |
|
they write the page header before parsing the document body. |
|
Even though this technical restriction does not apply to |
|
.Nm , |
|
traditional semantics is preserved. |
|
The late macro is discarded including its arguments. |
.It Sy "input stack limit exceeded, infinite loop?" |
.It Sy "input stack limit exceeded, infinite loop?" |
.Pq roff |
.Pq roff |
Explicit recursion limits are implemented for the following features, |
Explicit recursion limits are implemented for the following features, |
|
|
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 request outside macro" |
|
.Pq roff |
|
A |
|
.Ic shift |
|
or |
|
.Ic return |
|
request occurs outside any macro definition and has no effect. |
.It Sy "skipping insecure request" |
.It Sy "skipping insecure request" |
.Pq roff |
.Pq roff |
An input file attempted to run a shell command |
An input file attempted to run a shell command |
|
|
.Xr mdoc 7 |
.Xr mdoc 7 |
block closing macro, a |
block closing macro, a |
.Xr man 7 |
.Xr man 7 |
.Ic \&RE |
.Ic \&ME , \&RE |
or |
or |
.Ic \&UE |
.Ic \&UE |
macro, an |
macro, an |
Line 1623 At the end of the document, an explicit |
|
Line 2031 At the end of the document, an explicit |
|
block, a |
block, a |
.Xr man 7 |
.Xr man 7 |
next-line scope or |
next-line scope or |
.Ic \&RS |
.Ic \&MT , \&RS |
or |
or |
.Ic \&UR |
.Ic \&UR |
block, an equation, table, or |
block, an equation, table, or |
Line 1666 When parsing for a request or a user-defined macro nam |
|
Line 2074 When parsing for a request or a user-defined macro nam |
|
only the escape sequence is discarded. |
only the escape sequence is discarded. |
The characters preceding it are used as the request or macro name, |
The characters preceding it are used as the request or macro name, |
the characters following it are used as the arguments to the request or macro. |
the characters following it are used as the arguments to the request or macro. |
|
.It Sy "using macro argument outside macro" |
|
.Pq roff |
|
The escape sequence \e$ occurs outside any macro definition |
|
and expands to the empty string. |
|
.It Sy "argument number is not numeric" |
|
.Pq roff |
|
The argument of the escape sequence \e$ is not a digit; |
|
the escape sequence expands to the empty string. |
|
.It Sy "negative argument, using 0" |
|
.Pq roff |
|
A |
|
.Ic \&shift |
|
request has a negative argument |
|
or an argument that is negative due to integer overflow. |
|
Macro argument numbering remains unchanged. |
.It Sy "NOT IMPLEMENTED: Bd -file" |
.It Sy "NOT IMPLEMENTED: Bd -file" |
.Pq mdoc |
.Pq mdoc |
For security reasons, the |
For security reasons, the |
Line 1689 whatever mode was active before the block. |
|
Line 2112 whatever mode was active before the block. |
|
A |
A |
.Ic \&Bl |
.Ic \&Bl |
macro fails to specify the list type. |
macro fails to specify the list type. |
|
.It Sy "argument is not numeric, using 1" |
|
.Pq roff |
|
The argument of a |
|
.Ic \&ce |
|
request is not a number. |
|
.It Sy "argument is not a character" |
|
.Pq roff |
|
The first argument of a |
|
.Ic char |
|
request is neither a single ASCII character |
|
nor a single character escape sequence. |
|
The request is ignored including all its arguments. |
.It Sy "missing manual name, using \(dq\(dq" |
.It Sy "missing manual name, using \(dq\(dq" |
.Pq mdoc |
.Pq mdoc |
The first call to |
The first call to |
|
|
.Ic \&gsize |
.Ic \&gsize |
statement has a non-numeric or negative argument or no argument at all. |
statement has a non-numeric or negative argument or no argument at all. |
The invalid request or statement is ignored. |
The invalid request or statement is ignored. |
|
.It Sy "excessive shift" |
|
.Pq roff |
|
The argument of a |
|
.Ic shift |
|
request is larger than the number of arguments of the macro that is |
|
currently being executed. |
|
All macro arguments are deleted and \en(.$ is set to zero. |
.It Sy "NOT IMPLEMENTED: .so with absolute path or \(dq..\(dq" |
.It Sy "NOT IMPLEMENTED: .so with absolute path or \(dq..\(dq" |
.Pq roff |
.Pq roff |
For security reasons, |
For security reasons, |
Line 1790 A macro or request is invoked with too many arguments: |
|
Line 2232 A macro or request is invoked with too many arguments: |
|
.Bl -dash -offset 2n -width 2n -compact |
.Bl -dash -offset 2n -width 2n -compact |
.It |
.It |
.Ic \&Fo , |
.Ic \&Fo , |
|
.Ic \&MT , |
.Ic \&PD , |
.Ic \&PD , |
.Ic \&RS , |
.Ic \&RS , |
.Ic \&UR , |
.Ic \&UR , |
Line 1844 implementations but not by |
|
Line 2287 implementations but not by |
|
.Nm |
.Nm |
was found in an input file. |
was found in an input file. |
It is replaced by a question mark. |
It is replaced by a question mark. |
|
.It Sy "unsupported escape sequence" |
|
.Pq roff |
|
An input file contains an escape sequence supported by GNU troff |
|
or Heirloom troff but not by |
|
.Nm , |
|
and it is likely that this will cause information loss |
|
or considerable misformatting. |
.It Sy "unsupported roff request" |
.It Sy "unsupported roff request" |
.Pq roff |
.Pq roff |
An input file contains a |
An input file contains a |
|
|
macro or of an undefined macro. |
macro or of an undefined macro. |
The macro is ignored, and its arguments are handled |
The macro is ignored, and its arguments are handled |
as if they were a text line. |
as if they were a text line. |
|
.It Sy "skipping tbl in -Tman mode" |
|
.Pq mdoc , tbl |
|
An input file contains the |
|
.Ic \&TS |
|
macro. |
|
This message is only generated in |
|
.Fl T Cm man |
|
output mode, where |
|
.Xr tbl 7 |
|
input is not supported. |
|
.It Sy "skipping eqn in -Tman mode" |
|
.Pq mdoc , eqn |
|
An input file contains the |
|
.Ic \&EQ |
|
macro. |
|
This message is only generated in |
|
.Fl T Cm man |
|
output mode, where |
|
.Xr eqn 7 |
|
input is not supported. |
|
.El |
|
.Ss Bad command line arguments |
|
.Bl -ohang |
|
.It Sy "bad command line argument" |
|
The argument following one of the |
|
.Fl IKMmOTW |
|
command line options is invalid, or a |
|
.Ar file |
|
given as a command line argument cannot be opened. |
|
.It Sy "duplicate command line argument" |
|
The |
|
.Fl I |
|
command line option was specified twice. |
|
.It Sy "option has a superfluous value" |
|
An argument to the |
|
.Fl O |
|
option has a value but does not accept one. |
|
.It Sy "missing option value" |
|
An argument to the |
|
.Fl O |
|
option has no argument but requires one. |
|
.It Sy "bad option value" |
|
An argument to the |
|
.Fl O |
|
.Cm indent |
|
or |
|
.Cm width |
|
option has an invalid value. |
|
.It Sy "duplicate option value" |
|
The same |
|
.Fl O |
|
option is specified more than once. |
|
.It Sy "no such tag" |
|
The |
|
.Fl O Cm tag |
|
option was specified but the tag was not found in any of the displayed |
|
manual pages. |
|
.It Sy "\-Tmarkdown unsupported for man(7) input" |
|
.Pq man |
|
The |
|
.Fl T Cm markdown |
|
option was specified but an input file uses the |
|
.Xr man 7 |
|
language. |
|
No output is produced for that input file. |
.El |
.El |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr apropos 1 , |
.Xr apropos 1 , |