aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-04-13 05:26:49 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-04-13 05:26:49 +0000
commitfa026015dea59c471d8e18b3b40c1f657a9f2750 (patch)
treea882e172d56f3b20133760ad945da14820c73e88
parenta24b465fc1a389d13f301e43333eb27cbd1c1189 (diff)
downloadmandoc-fa026015dea59c471d8e18b3b40c1f657a9f2750.tar.gz
mandoc-fa026015dea59c471d8e18b3b40c1f657a9f2750.tar.zst
mandoc-fa026015dea59c471d8e18b3b40c1f657a9f2750.zip
As per Jason McIntyre's heartful urgings, do away with '.' separators between logical sections.
Change email address to BSD.lv one (this is not an academic project...)
-rw-r--r--man.348
-rw-r--r--man.7139
-rw-r--r--mandoc.184
-rw-r--r--mandoc_char.745
-rw-r--r--manuals.78
-rw-r--r--mdoc.7165
6 files changed, 22 insertions, 467 deletions
diff --git a/man.3 b/man.3
index 829067f8..3feae78a 100644
--- a/man.3
+++ b/man.3
@@ -1,4 +1,4 @@
-.\" $Id: man.3,v 1.15 2010/03/31 06:37:57 kristaps Exp $
+.\" $Id: man.3,v 1.16 2010/04/13 05:26:49 kristaps Exp $
.\"
.\" Copyright (c) 2009-2010 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
@@ -14,11 +14,9 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: March 31 2010 $
+.Dd $Mdocdate: April 13 2010 $
.Dt MAN 3
.Os
-.
-.
.Sh NAME
.Nm man ,
.Nm man_alloc ,
@@ -29,8 +27,6 @@
.Nm man_free ,
.Nm man_reset
.Nd man macro compiler library
-.
-.
.Sh SYNOPSIS
.In man.h
.Vt extern const char * const * man_macronames;
@@ -48,8 +44,6 @@
.Fn man_meta "const struct man *man"
.Ft int
.Fn man_endparse "struct man *man"
-.
-.
.Sh DESCRIPTION
The
.Nm
@@ -58,7 +52,6 @@ library parses lines of
input (and
.Em only
man) into an abstract syntax tree (AST).
-.
.Pp
In general, applications initiate a parsing sequence with
.Fn man_alloc ,
@@ -78,14 +71,12 @@ function may be used in order to reset the parser for another input
sequence. See the
.Sx EXAMPLES
section for a full example.
-.
.Pp
Beyond the full set of macros defined in
.Xr man 7 ,
the
.Nm
library also accepts the following macros:
-.
.Pp
.Bl -tag -width Ds -compact
.It am
@@ -100,25 +91,20 @@ and may begin anywhere, although they may not break the next-line
scoping rules specified in
.Xr man 7 .
These blocks are discarded.
-.
.It PD
Has no effect. Handled as a current-scope line macro.
-.
.It Sp
A synonym for
.Sq sp 0.5v
.Pq part of the standard preamble for Perl documentation .
Handled as a line macro.
-.
.It UC
Has no effect. Handled as a current-scope line macro.
-.
.It Vb
A synonym for
.Sq nf
.Pq part of the standard preamble for Perl documentation .
Handled as a current-scope line macro.
-.
.It Ve
A synonym for
.Sq fi ,
@@ -151,8 +137,6 @@ documents to be correctly formatted:
\e*(Th (Thorn),
and
\e*(th (thorn).
-.
-.
.Sh REFERENCE
This section further defines the
.Sx Types ,
@@ -162,8 +146,6 @@ and
available to programmers. Following that, the
.Sx Abstract Syntax Tree
section documents the output tree.
-.
-.
.Ss Types
Both functions (see
.Sx Functions )
@@ -171,16 +153,13 @@ and variables (see
.Sx Variables )
may use the following types:
.Bl -ohang
-.
.It Vt struct man
An opaque type defined in
.Pa man.c .
Its values are only used privately within the library.
-.
.It Vt struct man_cb
A set of message callbacks defined in
.Pa man.h .
-.
.It Vt struct man_node
A parsed node. Defined in
.Pa man.h .
@@ -188,12 +167,9 @@ See
.Sx Abstract Syntax Tree
for details.
.El
-.
-.
.Ss Functions
Function descriptions follow:
.Bl -ohang
-.
.It Fn man_alloc
Allocates a parsing structure. The
.Fa data
@@ -206,29 +182,24 @@ arguments are defined in
.Pa man.h .
Returns NULL on failure. If non-NULL, the pointer must be freed with
.Fn man_free .
-.
.It Fn man_reset
Reset the parser for another parse routine. After its use,
.Fn man_parseln
behaves as if invoked for the first time.
-.
.It Fn man_free
Free all resources of a parser. The pointer is no longer valid after
invocation.
-.
.It Fn man_parseln
Parse a nil-terminated line of input. This line should not contain the
trailing newline. Returns 0 on failure, 1 on success. The input buffer
.Fa buf
is modified by this function.
-.
.It Fn man_endparse
Signals that the parse is complete. Note that if
.Fn man_endparse
is called subsequent to
.Fn man_node ,
the resulting tree is incomplete. Returns 0 on failure, 1 on success.
-.
.It Fn man_node
Returns the first node of the parse. Note that if
.Fn man_parseln
@@ -243,17 +214,12 @@ or
.Fn man_endparse
return 0, the data will be incomplete.
.El
-.
-.
.Ss Variables
The following variables are also defined:
.Bl -ohang
-.
.It Va man_macronames
An array of string-ified token names.
.El
-.
-.
.Ss Abstract Syntax Tree
The
.Nm
@@ -267,13 +233,11 @@ or after
or
.Fn man_parseln
fail, it may be incomplete.
-.
.Pp
This AST is governed by the ontological
rules dictated in
.Xr man 7
and derives its terminology accordingly.
-.
.Pp
The AST is composed of
.Vt struct man_node
@@ -292,7 +256,6 @@ fields), its position in the tree (the
and
.Va prev
fields) and some type-specific data.
-.
.Pp
The tree itself is arranged according to the following normal form,
where capitalised non-terminals represent nodes.
@@ -313,13 +276,10 @@ where capitalised non-terminals represent nodes.
.It TEXT
\(<- [[:alpha:]]*
.El
-.
.Pp
The only elements capable of nesting other elements are those with
next-lint scope as documented in
.Xr man 7 .
-.
-.
.Sh EXAMPLES
The following example reads lines from stdin and parses them, operating
on the finished parse tree with
@@ -355,13 +315,9 @@ if (NULL == (node = man_node(man)))
parsed(man, node);
man_free(man);
.Ed
-.
-.
.Sh SEE ALSO
.Xr mandoc 1 ,
.Xr man 7
-.
-.
.Sh AUTHORS
The
.Nm
diff --git a/man.7 b/man.7
index 10d5d086..37fbbc94 100644
--- a/man.7
+++ b/man.7
@@ -1,6 +1,6 @@
-.\" $Id: man.7,v 1.61 2010/04/05 07:25:23 kristaps Exp $
+.\" $Id: man.7,v 1.62 2010/04/13 05:26:49 kristaps Exp $
.\"
-.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
+.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
@@ -14,16 +14,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: April 5 2010 $
+.Dd $Mdocdate: April 13 2010 $
.Dt MAN 7
.Os
-.
-.
.Sh NAME
.Nm man
.Nd man language reference
-.
-.
.Sh DESCRIPTION
The
.Nm man
@@ -31,7 +27,6 @@ language was historically used to format
.Ux
manuals. This reference document describes its syntax, structure, and
usage.
-.
.Pp
.Bf -emphasis
Do not use
@@ -41,7 +36,6 @@ to write your manuals.
Use the
.Xr mdoc 7
language, instead.
-.
.Pp
An
.Nm
@@ -54,20 +48,15 @@ prior macros:
\&.SH Macro lines change control state.
Other lines are interpreted within the current state.
.Ed
-.
-.
.Sh INPUT ENCODING
.Nm
documents may contain only graphable 7-bit ASCII characters, the
space character, and the tabs character. All manuals must have
.Ux
line termination.
-.
.Pp
Blank lines are acceptable; where found, the output will assert a
vertical space.
-.
-.
.Ss Comments
Text following a
.Sq \e\*" ,
@@ -76,8 +65,6 @@ line. A macro line with only a control character and comment escape,
.Sq \&.\e" ,
is also ignored. Macro lines with only a control character and
optionally whitespace are stripped from input.
-.
-.
.Ss Special Characters
Special characters may occur in both macro and free-form lines.
Sequences begin with the escape character
@@ -96,8 +83,6 @@ for a complete list. Examples include
and
.Sq \ee
.Pq back-slash .
-.
-.
.Ss Text Decoration
Terms may be text-decorated using the
.Sq \ef
@@ -140,15 +125,11 @@ Both
and
.Sq \ef
attributes are forgotten when entering or exiting a macro block.
-.
-.
.Ss Whitespace
Unless specifically escaped, consecutive blocks of whitespace are pruned
from input. These are later re-added, if applicable, by a front-end
utility such as
.Xr mandoc 1 .
-.
-.
.Ss Dates
The
.Sx \&TH
@@ -157,22 +138,18 @@ macro is the only
macro that requires a date. The form for this date is the ISO-8601
standard
.Cm YYYY-MM-DD .
-.
-.
.Ss Scaling Widths
Many macros support scaled widths for their arguments, such as
stipulating a two-inch paragraph indentation with the following:
.Bd -literal -offset indent
\&.HP 2i
.Ed
-.
.Pp
The syntax for scaled widths is
.Sq Li [+-]?[0-9]*.[0-9]*[:unit:]? ,
where a decimal must be preceded or proceeded by at least one digit.
Negative numbers, while accepted, are truncated to zero. The following
scaling units are accepted:
-.
.Pp
.Bl -tag -width Ds -offset indent -compact
.It c
@@ -211,7 +188,6 @@ Using anything other than
or
.Sq v
is necessarily non-portable across output media.
-.
.Pp
If a scaling unit is not provided, the numerical value is interpreted
under the default rules of
@@ -224,8 +200,6 @@ this differs from
.Xr mdoc 7 ,
which, if a unit is not provided, will instead interpret the string as
literal text.
-.
-.
.Sh MANUAL STRUCTURE
Each
.Nm
@@ -234,7 +208,6 @@ document must contain contains at least the
macro describing the document's section and title. It may occur
anywhere in the document, although conventionally, it appears as the
first macro.
-.
.Pp
Beyond
.Sx \&TH ,
@@ -329,36 +302,29 @@ which is used for functions. Historically, this information was
described in
.Em DIAGNOSTICS ,
a practise that is now discouraged.
-.
.It Em RETURN VALUES
This section is the dual of
.Em EXIT STATUS ,
which is used for commands. It documents the return values of functions
in sections 2, 3, and 9.
-.
.It Em ENVIRONMENT
Documents any usages of environment variables, e.g.,
.Xr environ 7 .
-.
.It Em FILES
Documents files used. It's helpful to document both the file and a
short description of how the file is used (created, modified, etc.).
-.
.It Em EXAMPLES
Example usages. This often contains snippets of well-formed,
well-tested invocations. Make doubly sure that your examples work
properly!
-.
.It Em DIAGNOSTICS
Documents error conditions. This is most useful in section 4 manuals.
Historically, this section was used in place of
.Em EXIT STATUS
for manuals in sections 1, 6, and 8; however, this practise is
discouraged.
-.
.It Em ERRORS
Documents error handling in sections 2, 3, and 9.
-.
.It Em SEE ALSO
References other manuals with related topics. This section should exist
for most manuals.
@@ -367,7 +333,6 @@ for most manuals.
.Pp
Cross-references should conventionally be ordered
first by section, then alphabetically.
-.
.It Em STANDARDS
References any standards implemented or used, such as
.Pp
@@ -376,29 +341,21 @@ References any standards implemented or used, such as
If not adhering to any standards, the
.Em HISTORY
section should be used.
-.
.It Em HISTORY
The history of any manual without a
.Em STANDARDS
section should be described in this section.
-.
.It Em AUTHORS
Credits to authors, if applicable, should appear in this section.
Authors should generally be noted by both name and an e-mail address.
-.
.It Em CAVEATS
Explanations of common misuses and misunderstandings should be explained
in this section.
-.
.It Em BUGS
Extant bugs should be described in this section.
-.
.It Em SECURITY CONSIDERATIONS
Documents any security precautions that operators should consider.
-.
.El
-.
-.
.Sh MACRO SYNTAX
Macros are one to three three characters in length and begin with a
control character ,
@@ -412,7 +369,6 @@ the macro name. Thus, the following are equivalent:
\&.PP
\&.\ \ \ PP
.Ed
-.
.Pp
The
.Nm
@@ -420,8 +376,6 @@ macros are classified by scope: line scope or block scope. Line
macros are only scoped to the current line (and, in some situations,
the subsequent line). Block macros are scoped to the current line and
subsequent lines until closed by another block macro.
-.
-.
.Ss Line Macros
Line macros are generally scoped to the current line, with the body
consisting of zero or more arguments. If a macro is scoped to the next
@@ -431,7 +385,6 @@ text, is used instead. Thus:
\&.I
foo
.Ed
-.
.Pp
is equivalent to
.Sq \&.I foo .
@@ -448,7 +401,6 @@ The syntax is as follows:
\&.YO \(lBbody...\(rB
\(lBbody...\(rB
.Ed
-.
.Pp
.Bl -column -compact -offset indent "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX"
.It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes
@@ -478,7 +430,6 @@ The syntax is as follows:
.\" .It Sx \&Vb Ta <1 Ta current Ta compat
.\" .It Sx \&Ve Ta 0 Ta current Ta compat
.El
-.
.Pp
Macros marked as
.Qq compat
@@ -487,8 +438,6 @@ manuals that mix dialects of roff. These macros should not be used for
portable
.Nm
manuals.
-.
-.
.Ss Block Macros
Block macros are comprised of a head and body. Like for in-line macros,
the head is scoped to the current line and, in one circumstance, the
@@ -502,7 +451,6 @@ The syntax is as follows:
\(lBhead...\(rB
\(lBbody...\(rB
.Ed
-.
.Pp
The closure of body scope may be to the section, where a macro is closed
by
@@ -520,12 +468,10 @@ or paragraph, closed by a section, sub-section, part,
or
.Sx \&TP .
No closure refers to an explicit block closing macro.
-.
.Pp
As a rule, block macros may not be nested; thus, calling a block macro
while another block macro scope is open, and the open scope is not
implicitly closed, is syntactically incorrect.
-.
.Pp
.Bl -column -compact -offset indent "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX"
.It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes
@@ -541,23 +487,17 @@ implicitly closed, is syntactically incorrect.
.It Sx \&TP Ta n Ta next-line Ta paragraph Ta \&
.El
.Pp
-.
Macros marked
.Qq compat
are as mentioned in
.Sx Line Macros .
-.
.Pp
If a block macro is next-line scoped, it may only be followed by in-line
macros for decorating text.
-.
-.
.Sh REFERENCE
This section is a canonical reference to all macros, arranged
alphabetically. For the scoping of individual macros, see
.Sx MACRO SYNTAX .
-.
-.
.Ss \&B
Text is rendered in bold face.
.Pp
@@ -568,8 +508,6 @@ See also
.Sx \&i ,
and
.Sx \&r .
-.
-.
.Ss \&BI
Text is rendered alternately in bold face and italic. Thus,
.Sq .BI this word and that
@@ -600,8 +538,6 @@ See also
.Sx \&RI ,
and
.Sx \&IR .
-.
-.
.Ss \&BR
Text is rendered alternately in bold face and roman (the default font).
Whitespace between arguments is omitted in output.
@@ -617,12 +553,8 @@ See also
.Sx \&RI ,
and
.Sx \&IR .
-.
-.
.Ss \&DT
Has no effect. Included for compatibility.
-.
-.
.Ss \&HP
Begin a paragraph whose initial output line is left-justified, but
subsequent output lines are indented, with the following syntax:
@@ -645,8 +577,6 @@ See also
.Sx \&PP ,
and
.Sx \&TP .
-.
-.
.Ss \&I
Text is rendered in italics.
.Pp
@@ -657,8 +587,6 @@ See also
.Sx \&i ,
and
.Sx \&r .
-.
-.
.Ss \&IB
Text is rendered alternately in italics and bold face. Whitespace
between arguments is omitted in output.
@@ -674,8 +602,6 @@ See also
.Sx \&RI ,
and
.Sx \&IR .
-.
-.
.Ss \&IP
Begin an indented paragraph with the following syntax:
.Bd -filled -offset indent
@@ -702,8 +628,6 @@ See also
.Sx \&PP ,
and
.Sx \&TP .
-.
-.
.Ss \&IR
Text is rendered alternately in italics and roman (the default font).
Whitespace between arguments is omitted in output.
@@ -719,8 +643,6 @@ See also
.Sx \&RB ,
and
.Sx \&RI .
-.
-.
.Ss \&LP
Begin an undecorated paragraph. The scope of a paragraph is closed by a
subsequent paragraph, sub-section, section, or end of file. The saved
@@ -733,8 +655,6 @@ See also
.Sx \&PP ,
and
.Sx \&TP .
-.
-.
.Ss \&P
Synonym for
.Sx \&LP .
@@ -746,8 +666,6 @@ See also
.Sx \&PP ,
and
.Sx \&TP .
-.
-.
.Ss \&PP
Synonym for
.Sx \&LP .
@@ -759,8 +677,6 @@ See also
.Sx \&P ,
and
.Sx \&TP .
-.
-.
.Ss \&R
Text is rendered in roman (the default font).
.Pp
@@ -771,8 +687,6 @@ See also
.Sx \&i ,
and
.Sx \&r .
-.
-.
.Ss \&RB
Text is rendered alternately in roman (the default font) and bold face.
Whitespace between arguments is omitted in output.
@@ -788,13 +702,9 @@ See also
.Sx \&RI ,
and
.Sx \&IR .
-.
-.
.Ss \&RE
Explicitly close out the scope of a prior
.Sx \&RS .
-.
-.
.Ss \&RI
Text is rendered alternately in roman (the default font) and italics.
Whitespace between arguments is omitted in output.
@@ -810,8 +720,6 @@ See also
.Sx \&RB ,
and
.Sx \&IR .
-.
-.
.Ss \&RS
Begin a part setting the left margin. The left margin controls the
offset, following an initial indentation, to un-indented text such as
@@ -828,30 +736,20 @@ The
argument must conform to
.Sx Scaling Widths .
If not specified, the saved or default width is used.
-.
-.
.Ss \&SB
Text is rendered in small size (one point smaller than the default font)
bold face.
-.
-.
.Ss \&SH
Begin a section. The scope of a section is only closed by another
section or the end of file. The paragraph left-margin width is re-set
to the default.
-.
-.
.Ss \&SM
Text is rendered in small size (one point smaller than the default
font).
-.
-.
.Ss \&SS
Begin a sub-section. The scope of a sub-section is closed by a
subsequent sub-section, section, or end of file. The paragraph
left-margin width is re-set to the default.
-.
-.
.Ss \&TH
Sets the title of the manual page with the following syntax:
.Bd -filled -offset indent
@@ -878,8 +776,6 @@ manual section.
Examples:
.Pp
.D1 \&.TH CVS 5 "1992-02-12" GNU
-.
-.
.Ss \&TP
Begin a paragraph where the head, if exceeding the indentation width, is
followed by a newline; if not, the body follows on the same line after a
@@ -912,20 +808,14 @@ and
.\" .
.\" .Ss \&UC
.\" Has no effect. Included for compatibility.
-.
-.
.Ss \&br
Breaks the current line. Consecutive invocations have no further effect.
.Pp
See also
.Sx \&sp .
-.
-.
.Ss \&fi
End literal mode begun by
.Sx \&nf .
-.
-.
.Ss \&i
Italicise arguments. Synonym for
.Sx \&I .
@@ -937,18 +827,12 @@ See also
.Sx \&b ,
and
.Sx \&r .
-.
-.
.Ss \&na
Don't align to the right margin.
-.
-.
.Ss \&nf
Begin literal mode: all subsequent free-form lines have their end of
line boundaries preserved. May be ended by
.Sx \&fi .
-.
-.
.Ss \&r
Fonts and styles (bold face, italics) reset to roman (default font).
.Pp
@@ -959,8 +843,6 @@ See also
.Sx \&b ,
and
.Sx \&i .
-.
-.
.Ss \&sp
Insert vertical spaces into output with the following syntax:
.Bd -filled -offset indent
@@ -978,7 +860,6 @@ macro. Defaults to 1, if unspecified.
.Pp
See also
.Sx \&br .
-.
.\" .Ss \&Sp
.\" A synonym for
.\" .Sx \&sp
@@ -994,32 +875,27 @@ See also
.\" A synonym for
.\" .Sx \&fi .
.\" .
-.
.Sh COMPATIBILITY
This section documents areas of questionable portability between
implementations of the
.Nm
language.
-.
.Pp
.Bl -dash -compact
.It
In quoted literals, GNU troff allowed pair-wise double-quotes to produce
a standalone double-quote in formatted output. It is not known whether
this behaviour is exhibited by other formatters.
-.
.It
Blocks of whitespace are stripped from macro and free-form text lines
(except when in literal mode) in mandoc. This is not the case for GNU
troff: for maximum portability, whitespace sensitive blocks should be
enclosed in literal contexts.
-.
.It
The
.Sx \&sp
macro does not accept negative values in mandoc. In GNU troff, this
would result in strange behaviour.
-.
.It
The
.Sq \(aq
@@ -1028,22 +904,15 @@ newline before macro output; in mandoc, it is an alias for the standard
.Sq \&.
control character.
.El
-.
-.
.Sh SEE ALSO
.Xr mandoc 1 ,
.Xr mandoc_char 7
-.
-.
.Sh AUTHORS
The
.Nm
reference was written by
-.An Kristaps Dzonsons Aq kristaps@kth.se .
-.
-.
+.An Kristaps Dzonsons Aq kristaps@bsd.lv .
.Sh CAVEATS
Do not use this language. Use
.Xr mdoc 7 ,
instead.
-.
diff --git a/mandoc.1 b/mandoc.1
index ee466924..fb9bbb48 100644
--- a/mandoc.1
+++ b/mandoc.1
@@ -1,6 +1,6 @@
-.\" $Id: mandoc.1,v 1.58 2010/04/12 19:27:22 kristaps Exp $
+.\" $Id: mandoc.1,v 1.59 2010/04/13 05:26:49 kristaps Exp $
.\"
-.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
+.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
@@ -14,16 +14,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: April 12 2010 $
+.Dd $Mdocdate: April 13 2010 $
.Dt MANDOC 1
.Os
-.
-.
.Sh NAME
.Nm mandoc
.Nd format and display UNIX manuals
-.
-.
.Sh SYNOPSIS
.Nm mandoc
.Op Fl V
@@ -33,8 +29,6 @@
.Op Fl T Ns Ar output
.Op Fl W Ns Ar err
.Op Ar file...
-.
-.
.Sh DESCRIPTION
The
.Nm
@@ -42,14 +36,12 @@ utility formats
.Ux
manual pages for display.
The arguments are as follows:
-.
.Bl -tag -width Ds
.It Fl f Ns Ar option
Comma-separated compiler options.
See
.Sx Compiler Options
for details.
-.
.It Fl m Ns Ar format
Input format.
See
@@ -57,13 +49,11 @@ See
for available formats.
Defaults to
.Fl m Ns Cm andoc .
-.
.It Fl O Ns Ar option
Comma-separated output options.
See
.Sx Output Options
for details.
-.
.It Fl T Ns Ar output
Output format.
See
@@ -71,10 +61,8 @@ See
for available formats.
Defaults to
.Fl T Ns Cm ascii .
-.
.It Fl V
Print version and exit.
-.
.It Fl W Ns Ar err
Comma-separated warning options.
Use
@@ -87,7 +75,6 @@ Multiple
.Fl W
arguments may be comma-separated, such as
.Fl W Ns Cm error , Ns Cm all .
-.
.It Ar file
Read input from zero or more files.
If unspecified, reads from stdin.
@@ -95,7 +82,6 @@ If multiple files are specified,
.Nm
will halt with the first failed parse.
.El
-.
.Pp
By default,
.Nm
@@ -108,11 +94,8 @@ text from stdin, implying
and produces
.Fl T Ns Cm ascii
output.
-.
.Pp
.Ex -std mandoc
-.
-.
.Ss Input Formats
The
.Nm
@@ -132,7 +115,6 @@ format is
recommended;
.Xr man 7
should only be used for legacy manuals.
-.
.Pp
A third option,
.Fl m Ns Cm andoc ,
@@ -146,7 +128,6 @@ the
parser is used; otherwise, the
.Xr man 7
parser is used.
-.
.Pp
If multiple
files are specified with
@@ -158,8 +139,6 @@ specified and
or
.Fl m Ns Cm an
is specified, then this format is used exclusively.
-.
-.
.Ss Output Formats
The
.Nm
@@ -167,7 +146,6 @@ utility accepts the following
.Fl T
arguments (see
.Sx OUTPUT ) :
-.
.Bl -tag -width Ds
.It Fl T Ns Cm ascii
Produce 7-bit ASCII output, backspace-encoded for bold and underline
@@ -175,65 +153,51 @@ styles.
This is the default.
See
.Sx ASCII Output .
-.
.It Fl T Ns Cm html
Produce strict HTML-4.01 output, with a sane default style.
See
.Sx HTML Output .
-.
.It Fl T Ns Cm lint
Parse only: produce no output.
Implies
.Fl W Ns Cm all
and
.Fl f Ns Cm strict .
-.
.It Fl T Ns Cm tree
Produce an indented parse tree.
-.
.It Fl T Ns Cm xhtml
Produce strict XHTML-1.0 output, with a sane default style.
See
.Sx XHTML Output .
.El
-.
.Pp
If multiple input files are specified, these will be processed by the
corresponding filter in-order.
-.
-.
.Ss Compiler Options
Default compiler behaviour may be overridden with the
.Fl f
flag.
-.
.Bl -tag -width Ds
.It Fl f Ns Cm ign-errors
When parsing multiple files, don't halt when one errors out.
Useful with
.Fl T Ns Cm lint
over a large set of manuals passed on the command line.
-.
.It Fl f Ns Cm ign-escape
Ignore invalid escape sequences.
This is the default, but the option can be used to override an earlier
.Fl f Ns Cm strict .
-.
.It Fl f Ns Cm ign-scope
When rewinding the scope of a block macro, forces the compiler to ignore
scope violations.
This can seriously mangle the resulting tree.
.Pq mdoc only
-.
.It Fl f Ns Cm no-ign-chars
Do not ignore disallowed characters.
-.
.It Fl f Ns Cm no-ign-escape
Do not ignore invalid escape sequences.
-.
.It Fl f Ns Cm no-ign-macro
Do not ignore unknown macros at the start of input lines.
-.
.It Fl f Ns Cm strict
Implies
.Fl f Ns Cm no-ign-escape ,
@@ -241,8 +205,6 @@ Implies
and
.Fl f Ns Cm no-ign-chars .
.El
-.
-.
.Ss Output Options
For the time being, only
.Fl T Ns Ar html
@@ -286,8 +248,6 @@ is used for an external style-sheet.
This must be a valid absolute or
relative URI.
.El
-.
-.
.Sh OUTPUT
This section documents output details of
.Nm .
@@ -332,13 +292,10 @@ and
.Sq \&}
.Pc
is not preceded by white-space.
-.
.Pp
If the input is
.Xr mdoc 7 ,
however, these rules are also applied to macro arguments when appropriate.
-.
-.
.Ss ASCII Output
Output produced by
.Fl T Ns Cm ascii ,
@@ -362,8 +319,6 @@ are rendered best-effort in an ASCII equivalent.
.Pp
Output width is limited to 78 visible columns unless literal input lines
exceed this limit.
-.
-.
.Ss HTML Output
Output produced by
.Fl T Ns Cm html
@@ -381,8 +336,6 @@ cause rendered documents to appear as they do in
.Fl T Ns Cm ascii .
.Pp
Special characters are rendered in decimal-encoded UTF-8.
-.
-.
.Ss XHTML Output
Output produced by
.Fl T Ns Cm xhtml
@@ -392,15 +345,11 @@ See
.Sx HTML Output
for details; beyond generating XHTML tags instead of HTML tags, these
output modes are identical.
-.
-.
.Sh EXAMPLES
To page manuals to the terminal:
-.
.Pp
.D1 $ mandoc \-Wall,error \-fstrict mandoc.1 2\*(Gt&1 | less
.D1 $ mandoc mandoc.1 mdoc.3 mdoc.7 | less
-.
.Pp
To produce HTML manuals with
.Ar style.css
@@ -409,19 +358,14 @@ as the style-sheet:
.D1 $ mandoc \-Thtml -Ostyle=style.css mdoc.7 \*(Gt mdoc.7.html
.Pp
To check over a large set of manuals:
-.
.Pp
.Dl $ mandoc \-Tlint \-fign-errors `find /usr/src -name \e*\e.[1-9]`
-.
-.
.Sh COMPATIBILITY
This section summarises
.Nm
compatibility with
.Xr groff 1 .
Each input and output format is separately noted.
-.
-.
.Ss ASCII Compatibility
.Bl -bullet -compact
.It
@@ -429,7 +373,6 @@ The
.Sq \e~
special character doesn't produce expected behaviour in
.Fl T Ns Cm ascii .
-.
.It
The
.Sq \&Bd \-literal
@@ -440,7 +383,6 @@ macros of
in
.Fl T Ns Cm ascii
are synonyms, as are \-filled and \-ragged.
-.
.It
In
.Xr groff 1 ,
@@ -452,7 +394,6 @@ macro does not underline when scoped under an
in the FILES section.
This behaves correctly in
.Nm .
-.
.It
A list or display following the
.Sq \&Ss
@@ -461,7 +402,6 @@ 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
@@ -469,21 +409,16 @@ The
macro in
.Fl T Ns Cm ascii
has no effect.
-.
.It
Words aren't hyphenated.
-.
.It
In normal mode (not a literal block), blocks of spaces aren't preserved,
so double spaces following sentence closure are reduced to a single space;
.Xr groff 1
retains spaces.
-.
.It
Sentences are unilaterally monospaced.
.El
-.
-.
.Ss HTML/XHTML Compatibility
.Bl -bullet -compact
.It
@@ -506,7 +441,6 @@ 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
@@ -515,20 +449,15 @@ and
.Sq TP
lists render similarly.
.El
-.
-.
.Sh SEE ALSO
.Xr man 7 ,
.Xr mandoc_char 7 ,
.Xr mdoc 7
-.
.Sh AUTHORS
The
.Nm
utility was written by
-.An Kristaps Dzonsons Aq kristaps@kth.se .
-.
-.
+.An Kristaps Dzonsons Aq kristaps@bsd.lv .
.Sh CAVEATS
The
.Fl T Ns Cm html
@@ -538,7 +467,6 @@ CSS2 styling used for
.Fl m Ns Cm doc
input lists does not render properly in older browsers, such as Internet
Explorer 6 and earlier.
-.
.Pp
In
.Fl T Ns Cm html
@@ -550,7 +478,6 @@ which is usually 1024 bytes.
Be aware of this when setting long link
formats such as
.Fl O Ns Cm style Ns = Ns Ar really/long/link .
-.
.Pp
The
.Fl T Ns Cm html
@@ -562,7 +489,6 @@ font size escape documented in
.Xr mdoc 7
and
.Xr man 7 .
-.
.Pp
Nesting elements within next-line element scopes of
.Fl m Ns Cm an ,
@@ -575,7 +501,6 @@ will confuse
and
.Fl T Ns Cm xhtml
and cause them to forget the formatting of the prior next-line scope.
-.
.Pp
The
.Sq i
@@ -583,7 +508,6 @@ macro in
.Fl m Ns Cm an
should italicise all subsequent text if a line argument is not provided.
This behaviour is not implemented.
-.
The
.Sq \(aq
control character is an alias for the standard macro control character
diff --git a/mandoc_char.7 b/mandoc_char.7
index 46c26542..b6a35b36 100644
--- a/mandoc_char.7
+++ b/mandoc_char.7
@@ -1,6 +1,6 @@
-.\" $Id: mandoc_char.7,v 1.35 2010/04/05 10:33:20 kristaps Exp $
+.\" $Id: mandoc_char.7,v 1.36 2010/04/13 05:26:49 kristaps Exp $
.\"
-.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
+.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
@@ -14,16 +14,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: April 5 2010 $
+.Dd $Mdocdate: April 13 2010 $
.Dt MANDOC_CHAR 7
.Os
-.
-.
.Sh NAME
.Nm mandoc_char
.Nd mandoc special characters
-.
-.
.Sh DESCRIPTION
This page documents the special characters and predefined strings accepted by
.Xr mandoc 1
@@ -32,7 +28,6 @@ to format
and
.Xr man 7
documents.
-.
.Pp
Both
.Xr mdoc 7
@@ -70,17 +65,13 @@ and
.Sq \e*X
as
.Sq \e*[X] .
-.
.Pp
Note that each output mode will have a different rendering of the
characters.
It's guaranteed that each input symbol will correspond to a
(more or less) meaningful output rendering, regardless the mode.
-.
-.
.Sh SPECIAL CHARACTERS
These are the preferred input symbols for producing special characters.
-.
.Pp
Spacing:
.Bl -column -compact -offset indent "Input" "Description"
@@ -94,7 +85,6 @@ Spacing:
.It \e0 Ta breaking, non-collapsing digit-width space
.It \ec Ta removes any trailing space (if applicable)
.El
-.
.Pp
Lines:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -107,7 +97,6 @@ Lines:
.It \e(sl Ta \(sl Ta forward slash
.It \e(rs Ta \(rs Ta backward slash
.El
-.
.Pp
Text markers:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -127,7 +116,6 @@ Text markers:
.It \e(CR Ta \(CR Ta carriage return
.It \e(OK Ta \(OK Ta check mark
.El
-.
.Pp
Legal symbols:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -136,7 +124,6 @@ Legal symbols:
.It \e(rg Ta \(rg Ta registered
.It \e(tm Ta \(tm Ta trademarked
.El
-.
.Pp
Punctuation:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -149,7 +136,6 @@ Punctuation:
.It \e(r! Ta \(r! Ta upside-down exclamation
.It \e(r? Ta \(r? Ta upside-down question
.El
-.
.Pp
Quotes:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -167,7 +153,6 @@ Quotes:
.It \e(fo Ta \(fo Ta left single guillemet
.It \e(fc Ta \(fc Ta right single guillemet
.El
-.
.Pp
Brackets:
.Bl -column -compact -offset indent "x[bracketrightbp]" Rendered Description
@@ -207,7 +192,6 @@ Brackets:
.It \e[parenrightbp] Ta \[parenrightbp] Ta bottom-right hooked parenthesis
.It \e[parenrightex] Ta \[parenrightex] Ta right hooked parenthesis extension
.El
-.
.Pp
Arrows:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -225,7 +209,6 @@ Arrows:
.It \e(dA Ta \(dA Ta down double-arrow
.It \e(vA Ta \(vA Ta up-down double-arrow
.El
-.
.Pp
Logical:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -241,7 +224,6 @@ Logical:
.It \e(3d Ta \(3d Ta therefore
.It \e(or Ta \(or Ta bitwise or
.El
-.
.Pp
Mathematical:
.Bl -column -compact -offset indent "\[coproduct]X" "Rendered" "Description"
@@ -307,7 +289,6 @@ Mathematical:
.It \e(pd Ta \(pd Ta partial differential
.It \e(-h Ta \(-h Ta Planck constant over 2\(*p
.El
-.
.Pp
Ligatures:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -325,7 +306,6 @@ Ligatures:
.It \e(IJ Ta \(IJ Ta IJ ligature
.It \e(ij Ta \(ij Ta ij ligature
.El
-.
.Pp
Accents:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -348,7 +328,6 @@ Accents:
.It \e(ha Ta \(ha Ta hat (text)
.It \e(ti Ta \(ti Ta tilde (text)
.El
-.
.Pp
Accented letters:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -409,7 +388,6 @@ Accented letters:
.It \e(oA Ta \(oA Ta ring A
.It \e(oa Ta \(oa Ta ring a
.El
-.
.Pp
Special letters:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -421,7 +399,6 @@ Special letters:
.It \e(.i Ta \(.i Ta dotless i
.It \e(.j Ta \(.j Ta dotless j
.El
-.
.Pp
Currency:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -435,7 +412,6 @@ Currency:
.It \e(Cs Ta \(Cs Ta Scandinavian
.It \e(Fn Ta \(Fn Ta florin
.El
-.
.Pp
Units:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -446,7 +422,6 @@ Units:
.It \e(sd Ta \(sd Ta second
.It \e(mc Ta \(mc Ta micro
.El
-.
.Pp
Greek letters:
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
@@ -505,12 +480,9 @@ Greek letters:
.It \e(+e Ta \(+e Ta epsilon variant
.It \e(ts Ta \(ts Ta sigma terminal
.El
-.
-.
.Sh PREDEFINED STRINGS
These are not recommended for use, as they differ across
implementations:
-.
.Pp
.Bl -column -compact -offset indent "Input" "Rendered" "Description"
.It Em Input Ta Em Rendered Ta Em Description
@@ -541,14 +513,11 @@ implementations:
.It \e*(aa Ta \*(aa Ta acute
.It \e*(ga Ta \*(ga Ta grave
.El
-.
-.
.Sh COMPATIBILITY
This section documents compatibility of
.Nm
with older or existing versions of
.Xr groff 1 .
-.
.Pp
The following render differently in
.Fl T Ns Ar ascii
@@ -557,7 +526,6 @@ output mode:
\e(ss, \e(nm, \e(nb, \e(nc, \e(ib, \e(ip, \e(pp, \e[sum], \e[product],
\e[coproduct], \e(gr, \e(-h, \e(a.
.Ed
-.
.Pp
The following render differently in
.Fl T Ns Ar html
@@ -565,21 +533,16 @@ output mode:
.Bd -ragged -offset indent
\e(~=, \e(nb, \e(nc
.Ed
-.
.Pp
Finally, the following have been omitted by being poorly documented or
having no known representation:
.Bd -ragged -offset indent
\e[radicalex], \e[sqrtex], \e(ru
.Ed
-.
-.
.Sh SEE ALSO
.Xr mandoc 1
-.
-.
.Sh AUTHORS
The
.Nm
manual page was written by
-.An Kristaps Dzonsons Aq kristaps@kth.se .
+.An Kristaps Dzonsons Aq kristaps@bsd.lv .
diff --git a/manuals.7 b/manuals.7
index 47b0b78d..ac975e19 100644
--- a/manuals.7
+++ b/manuals.7
@@ -1,6 +1,6 @@
-.\" $Id: manuals.7,v 1.19 2009/07/27 19:43:02 kristaps Exp $
+.\" $Id: manuals.7,v 1.20 2010/04/13 05:26:49 kristaps Exp $
.\"
-.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
+.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
@@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: July 27 2009 $
+.Dd $Mdocdate: April 13 2010 $
.Dt MANUALS 7
.Os
.\" SECTION
@@ -134,7 +134,7 @@ or
to version-control your work. If you wish the last check-in to effect
your document's date, use the following RCS tag for the date macro:
.Pp
-.Dl \&.Dd $Mdocdate: July 27 2009 $
+.Dl \&.Dd $Mdocdate: April 13 2010 $
.\" SUBSECTION
.Ss Viewing
mdoc documents may be paged to your terminal with
diff --git a/mdoc.7 b/mdoc.7
index 4b4c4b50..42969fb7 100644
--- a/mdoc.7
+++ b/mdoc.7
@@ -1,6 +1,6 @@
-.\" $Id: mdoc.7,v 1.93 2010/04/07 19:37:54 kristaps Exp $
+.\" $Id: mdoc.7,v 1.94 2010/04/13 05:26:49 kristaps Exp $
.\"
-.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
+.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
@@ -14,16 +14,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: April 7 2010 $
+.Dd $Mdocdate: April 13 2010 $
.Dt MDOC 7
.Os
-.
-.
.Sh NAME
.Nm mdoc
.Nd mdoc language reference
-.
-.
.Sh DESCRIPTION
The
.Nm mdoc
@@ -34,7 +30,6 @@ manuals. In this reference document, we describe its syntax, structure,
and usage. Our reference implementation is mandoc; the
.Sx COMPATIBILITY
section describes compatibility with other troff \-mdoc implementations.
-.
.Pp
An
.Nm
@@ -47,8 +42,6 @@ prior macros:
\&.Sh Macro lines change control state.
Other lines are interpreted within the current state.
.Ed
-.
-.
.Sh LANGUAGE SYNTAX
.Nm
documents may contain only graphable 7-bit ASCII characters, the space
@@ -56,8 +49,6 @@ character, and, in certain circumstances, the tab character. All
manuals must have
.Ux
line terminators.
-.
-.
.Ss Comments
Text following a
.Sq \e" ,
@@ -66,8 +57,6 @@ line. A macro line with only a control character and comment escape,
.Sq \&.\e" ,
is also ignored. Macro lines with only a control charater and optionally
whitespace are stripped from input.
-.
-.
.Ss Reserved Characters
Within a macro line, the following characters are reserved:
.Pp
@@ -95,7 +84,6 @@ Within a macro line, the following characters are reserved:
.It \&|
.Pq vertical bar
.El
-.
.Pp
Use of reserved characters is described in
.Sx MACRO SYNTAX .
@@ -103,8 +91,6 @@ For general use in macro lines, these characters must either be escaped
with a non-breaking space
.Pq Sq \e&
or, if applicable, an appropriate escape sequence used.
-.
-.
.Ss Special Characters
Special characters may occur in both macro and free-form lines.
Sequences begin with the escape character
@@ -123,8 +109,6 @@ for a complete list. Examples include
and
.Sq \ee
.Pq back-slash .
-.
-.
.Ss Text Decoration
Terms may be text-decorated using the
.Sq \ef
@@ -172,8 +156,6 @@ Note these forms are
recommended for
.Nm ,
which encourages semantic annotation.
-.
-.
.Ss Predefined Strings
Historically,
.Xr groff 1
@@ -198,8 +180,6 @@ for a complete list. Examples include
and
.Sq \e*(Ba
.Pq vertical bar .
-.
-.
.Ss Whitespace
In non-literal free-form lines, consecutive blocks of whitespace are
pruned from input and added later in the output filter, if applicable:
@@ -209,26 +189,21 @@ These spaces are pruned from input.
These are not.
\&.Ed
.Ed
-.
.Pp
In macro lines, whitespace delimits arguments and is discarded. If
arguments are quoted, whitespace within the quotes is retained.
-.
.Pp
Blank lines are only permitted within literal contexts, as are lines
containing only whitespace. Tab characters are only acceptable when
delimiting
.Sq \&Bl \-column
or when in a literal context.
-.
-.
.Ss Quotation
Macro arguments may be quoted with a double-quote to group
space-delimited terms or to retain blocks of whitespace. A quoted
argument begins with a double-quote preceded by whitespace. The next
double-quote not pair-wise adjacent to another double-quote terminates
the literal, regardless of surrounding whitespace.
-.
.Pp
This produces tokens
.Sq a" ,
@@ -242,10 +217,8 @@ considered literal text. Thus, the following produces
.Bd -literal -offset indent
\&.Em "Em a"
.Ed
-.
.Pp
In free-form mode, quotes are regarded as opaque text.
-.
.Ss Dates
There are several macros in
.Nm
@@ -272,14 +245,12 @@ Some examples of valid dates follow:
.D1 "May, 2009" Pq reduced form
.D1 "2009" Pq reduced form
.D1 "May 20, 2009" Pq canonical form
-.
.Ss Scaling Widths
Many macros support scaled widths for their arguments, such as
stipulating a two-inch list indentation with the following:
.Bd -literal -offset indent
\&.Bl -tag -width 2i
.Ed
-.
.Pp
The syntax for scaled widths is
.Sq Li [+-]?[0-9]*.[0-9]*[:unit:] ,
@@ -325,8 +296,6 @@ or
.Sq v
is necessarily non-portable across output media. See
.Sx COMPATIBILITY .
-.
-.
.Sh MANUAL STRUCTURE
A well-formed
.Nm
@@ -421,7 +390,6 @@ See
.Sx \&Nm
and
.Sx \&Nd .
-.
.It Em LIBRARY
The name of the library containing the documented material, which is
assumed to be a function in a section 2 or 3 manual. The syntax for
@@ -432,7 +400,6 @@ this is as follows:
.Pp
See
.Sx \&Lb .
-.
.It Em SYNOPSIS
Documents the utility invocation syntax, function call syntax, or device
configuration.
@@ -476,7 +443,6 @@ See
.Sx \&Ft ,
and
.Sx \&Vt .
-.
.It Em DESCRIPTION
This expands upon the brief, one-line description in
.Em NAME .
@@ -491,12 +457,10 @@ Print verbose information.
.Ed
.Pp
Manuals not documenting a command won't include the above fragment.
-.
.It Em IMPLEMENTATION NOTES
Implementation-specific notes should be kept here. This is useful when
implementing standard functions that may have side effects or notable
algorithmic implications.
-.
.It Em EXIT STATUS
Command exit status for section 1, 6, and 8 manuals. This section is
the dual of
@@ -508,7 +472,6 @@ a practise that is now discouraged.
.Pp
See
.Sx \&Ex .
-.
.It Em RETURN VALUES
This section is the dual of
.Em EXIT STATUS ,
@@ -517,26 +480,22 @@ in sections 2, 3, and 9.
.Pp
See
.Sx \&Rv .
-.
.It Em ENVIRONMENT
Documents any usages of environment variables, e.g.,
.Xr environ 7 .
.Pp
See
.Sx \&Ev .
-.
.It Em FILES
Documents files used. It's helpful to document both the file and a
short description of how the file is used (created, modified, etc.).
.Pp
See
.Sx \&Pa .
-.
.It Em EXAMPLES
Example usages. This often contains snippets of well-formed,
well-tested invocations. Make doubly sure that your examples work
properly!
-.
.It Em DIAGNOSTICS
Documents error conditions. This is most useful in section 4 manuals.
Historically, this section was used in place of
@@ -547,13 +506,11 @@ discouraged.
See
.Sx \&Bl
.Fl diag .
-.
.It Em ERRORS
Documents error handling in sections 2, 3, and 9.
.Pp
See
.Sx \&Er .
-.
.It Em SEE ALSO
References other manuals with related topics. This section should exist
for most manuals. Cross-references should conventionally be ordered
@@ -561,7 +518,6 @@ first by section, then alphabetically.
.Pp
See
.Sx \&Xr .
-.
.It Em STANDARDS
References any standards implemented or used. If not adhering to any
standards, the
@@ -570,32 +526,24 @@ section should be used instead.
.Pp
See
.Sx \&St .
-.
.It Em HISTORY
The history of any manual without a
.Em STANDARDS
section should be described in this section.
-.
.It Em AUTHORS
Credits to authors, if applicable, should appear in this section.
Authors should generally be noted by both name and an e-mail address.
.Pp
See
.Sx \&An .
-.
.It Em CAVEATS
Explanations of common misuses and misunderstandings should be explained
in this section.
-.
.It Em BUGS
Extant bugs should be described in this section.
-.
.It Em SECURITY CONSIDERATIONS
Documents any security precautions that operators should consider.
-.
.El
-.
-.
.Sh MACRO SYNTAX
Macros are one to three three characters in length and begin with a
control character ,
@@ -607,7 +555,6 @@ following are equivalent:
\&.Pp
\&.\ \ \ \&Pp
.Ed
-.
.Pp
The syntax of a macro depends on its classification. In this section,
.Sq \-arg
@@ -618,7 +565,6 @@ parameters;
opens the scope of a macro; and if specified,
.Sq \&Yc
closes it out.
-.
.Pp
The
.Em Callable
@@ -628,20 +574,16 @@ initial line macro is interpreted as opaque text, such that
.Sq \&.Fl \&Sh
produces
.Sq Fl \&Sh .
-.
.Pp
The
.Em Parsable
column indicates whether the macro may be followed by further
(ostensibly callable) macros. If a macro is not parsable, subsequent
macro invocations on the line will be interpreted as opaque text.
-.
.Pp
The
.Em Scope
column, if applicable, describes closure rules.
-.
-.
.Ss Block full-explicit
Multi-line scope closed by an explicit closing macro. All macros
contains bodies; only
@@ -652,7 +594,6 @@ contains a head.
\(lBbody...\(rB
\&.Yc
.Ed
-.
.Pp
.Bl -column -compact -offset indent "MacroX" "CallableX" "ParsableX" "closed by XXX"
.It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
@@ -665,8 +606,6 @@ contains a head.
.It Sx \&Ek Ta \&No Ta \&No Ta opened by Sx \&Bk
.It Sx \&El Ta \&No Ta \&No Ta opened by Sx \&Bl
.El
-.
-.
.Ss Block full-implicit
Multi-line scope closed by end-of-file or implicitly by another macro.
All macros have bodies; some
@@ -686,7 +625,6 @@ has multiple heads.
\&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead... \(lBTa head...\(rB\(rB
\(lBbody...\(rB
.Ed
-.
.Pp
.Bl -column -compact -offset indent "MacroX" "CallableX" "ParsableX" "closed by XXXXXXXXXXX"
.It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
@@ -695,8 +633,6 @@ has multiple heads.
.It Sx \&Sh Ta \&No Ta \&No Ta closed by Sx \&Sh
.It Sx \&Ss Ta \&No Ta \&No Ta closed by Sx \&Sh , Sx \&Ss
.El
-.
-.
.Ss Block partial-explicit
Like block full-explicit, but also with single-line scope. Each
has at least a body and, in limited circumstances, a head
@@ -714,7 +650,6 @@ and/or tail
\&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB \
\(lBbody...\(rB \&Yc \(lBtail...\(rB
.Ed
-.
.Pp
.Bl -column "MacroX" "CallableX" "ParsableX" "closed by XXXX" -compact -offset indent
.It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
@@ -743,8 +678,6 @@ and/or tail
.It Sx \&Xc Ta Yes Ta Yes Ta opened by Sx \&Xo
.It Sx \&Xo Ta Yes Ta Yes Ta closed by Sx \&Xc
.El
-.
-.
.Ss Block partial-implicit
Like block full-implicit, but with single-line scope closed by
.Sx Reserved Characters
@@ -752,7 +685,6 @@ or end of line.
.Bd -literal -offset indent
\&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBbody...\(rB \(lBres...\(rB
.Ed
-.
.Pp
.Bl -column "MacroX" "CallableX" "ParsableX" -compact -offset indent
.It Em Macro Ta Em Callable Ta Em Parsable
@@ -777,8 +709,6 @@ macro is a
only when invoked as the first macro
in a SYNOPSIS section line, else it is
.Sx In-line .
-.
-.
.Ss In-line
Closed by
.Sx Reserved Characters ,
@@ -794,7 +724,6 @@ then the macro accepts an arbitrary number of arguments.
\&.Yo \(lB\-arg \(lBval...\(rB\(rB arg0 arg1 argN
.Ed
-.
.Pp
.Bl -column "MacroX" "CallableX" "ParsableX" "Arguments" -compact -offset indent
.It Em Macro Ta Em Callable Ta Em Parsable Ta Em Arguments
@@ -873,13 +802,10 @@ then the macro accepts an arbitrary number of arguments.
.It Sx \&br Ta \&No Ta \&No Ta 0
.It Sx \&sp Ta \&No Ta \&No Ta 1
.El
-.
-.
.Sh REFERENCE
This section is a canonical reference of all macros, arranged
alphabetically. For the scoping of individual macros, see
.Sx MACRO SYNTAX .
-.
.Ss \&%A
Author name of an
.Sx \&Rs
@@ -887,13 +813,11 @@ block. Multiple authors should each be accorded their own
.Sx \%%A
line. Author names should be ordered with full or abbreviated
forename(s) first, then full surname.
-.
.Ss \&%B
Book title of an
.Sx \&Rs
block. This macro may also be used in a non-bibliographic context when
referring to book titles.
-.
.Ss \&%C
Publication city or location of an
.Sx \&Rs
@@ -902,70 +826,57 @@ block.
.Em Remarks :
this macro is not implemented in
.Xr groff 1 .
-.
.Ss \&%D
Publication date of an
.Sx \&Rs
block. This should follow the reduced or canonical form syntax
described in
.Sx Dates .
-.
.Ss \&%I
Publisher or issuer name of an
.Sx \&Rs
block.
-.
.Ss \&%J
Journal name of an
.Sx \&Rs
block.
-.
.Ss \&%N
Issue number (usually for journals) of an
.Sx \&Rs
block.
-.
.Ss \&%O
Optional information of an
.Sx \&Rs
block.
-.
.Ss \&%P
Book or journal page number of an
.Sx \&Rs
block.
-.
.Ss \&%Q
Institutional author (school, government, etc.) of an
.Sx \&Rs
block. Multiple institutional authors should each be accorded their own
.Sx \&%Q
line.
-.
.Ss \&%R
Technical report name of an
.Sx \&Rs
block.
-.
.Ss \&%T
Article title of an
.Sx \&Rs
block. This macro may also be used in a non-bibliographical context
when referring to article titles.
-.
.Ss \&%U
URI of reference document.
-.
.Ss \&%V
Volume number of an
.Sx \&Rs
block.
-.
.Ss \&Ac
Closes an
.Sx \&Ao
block. Does not have any tail arguments.
-.
.Ss \&Ad
Address construct: usually in the context of an computational address in
memory, not a physical (post) address.
@@ -973,7 +884,6 @@ memory, not a physical (post) address.
Examples:
.D1 \&.Ad [0,$]
.D1 \&.Ad 0x00000000
-.
.Ss \&An
Author name. This macro may alternatively accepts the following
arguments, although these may not be specified along with a parameter:
@@ -1005,7 +915,6 @@ are re-set when entering the AUTHORS section, so if one specifies
.Sx \&An Fl nosplit
in the general document body, it must be re-specified in the AUTHORS
section.
-.
.Ss \&Ao
Begins a block enclosed by angled brackets. Does not have any head
arguments.
@@ -1015,7 +924,6 @@ Examples:
.Pp
See also
.Sx \&Aq .
-.
.Ss \&Ap
Inserts an apostrophe without any surrounding white-space. This is
generally used as a grammatic device when referring to the verb form of
@@ -1023,7 +931,6 @@ a function:
.Bd -literal -offset indent
\&.Fn execve Ap d
.Ed
-.
.Ss \&Aq
Encloses its arguments in angled brackets.
.Pp
@@ -1042,7 +949,6 @@ statements, which should use
.Pp
See also
.Sx \&Ao .
-.
.Ss \&Ar
Command arguments. If an argument is not provided, the string
.Dq file ...
@@ -1052,7 +958,6 @@ Examples:
.D1 \&.Fl o \&Ns \&Ar file1
.D1 \&.Ar
.D1 \&.Ar arg1 , arg2 .
-.
.Ss \&At
Formats an AT&T version. Accepts at most one parameter:
.Bl -tag -width 12n -offset indent
@@ -1079,12 +984,10 @@ See also
.Sx \&Ox ,
and
.Sx \&Ux .
-.
.Ss \&Bc
Closes a
.Sx \&Bo
block. Does not have any tail arguments.
-.
.Ss \&Bd
Begins a display block. A display is collection of macros or text which
may be collectively offset or justified in a manner different from that
@@ -1163,7 +1066,6 @@ See also
.Sx \&D1
and
.Sx \&Dl .
-.
.Ss \&Bf
.Ss \&Bk
.Ss \&Bl
@@ -1233,7 +1135,6 @@ Examples:
.Pp
See also
.Sx \&Bq .
-.
.Ss \&Bq
Encloses its arguments in square brackets.
.Pp
@@ -1250,12 +1151,10 @@ and
.Pp
See also
.Sx \&Bo .
-.
.Ss \&Brc
Closes a
.Sx \&Bro
block. Does not have any tail arguments.
-.
.Ss \&Bro
Begins a block enclosed by curly braces. Does not have any head
arguments.
@@ -1268,7 +1167,6 @@ Examples:
.Pp
See also
.Sx \&Brq .
-.
.Ss \&Brq
Encloses its arguments in curly braces.
.Pp
@@ -1277,7 +1175,6 @@ Examples:
.Pp
See also
.Sx \&Bro .
-.
.Ss \&Bsx
Format the BSD/OS version provided as an argument, or a default value if
no argument is provided.
@@ -1295,11 +1192,9 @@ See also
.Sx \&Ox ,
and
.Sx \&Ux .
-.
.Ss \&Bt
Prints
.Dq is currently in beta test.
-.
.Ss \&Bx
Format the BSD version provided as an argument, or a default value if no
argument is provided.
@@ -1317,7 +1212,6 @@ See also
.Sx \&Ox ,
and
.Sx \&Ux .
-.
.Ss \&Cd
Configuration declaration. This denotes strings accepted by
.Xr config 8 .
@@ -1330,7 +1224,6 @@ this macro is commonly abused by using quoted literals to retain
white-space and align consecutive
.Sx \&Cd
declarations. This practise is discouraged.
-.
.Ss \&Cm
Command modifiers. Useful when specifying configuration options or
keys.
@@ -1341,7 +1234,6 @@ Examples:
.Pp
See also
.Sx \&Fl .
-.
.Ss \&D1
One-line indented display. This is formatted by the default rules and
is useful for simple indented statements. It is followed by a newline.
@@ -1353,13 +1245,11 @@ See also
.Sx \&Bd
and
.Sx \&Dl .
-.
.Ss \&Db
.Ss \&Dc
Closes a
.Sx \&Do
block. Does not have any tail arguments.
-.
.Ss \&Dd
Document date. This is the mandatory first macro of any
.Nm
@@ -1386,7 +1276,6 @@ See also
.Sx \&Dt
and
.Sx \&Os .
-.
.Ss \&Dl
One-line intended display. This is formatted as literal text and is
useful for commands and invocations. It is followed by a newline.
@@ -1398,7 +1287,6 @@ See also
.Sx \&Bd
and
.Sx \&D1 .
-.
.Ss \&Do
Begins a block enclosed by double quotes. Does not have any head
arguments.
@@ -1408,7 +1296,6 @@ Examples:
.Pp
See also
.Sx \&Dq .
-.
.Ss \&Dq
Encloses its arguments in double quotes.
.Pp
@@ -1420,7 +1307,6 @@ Examples:
.Pp
See also
.Sx \&Do .
-.
.Ss \&Dt
Document title. This is the mandatory second macro of any
.Nm
@@ -1544,7 +1430,6 @@ See also
.Sx \&Dd
and
.Sx \&Os .
-.
.Ss \&Dv
Defined variables such as preprocessor constants.
.Pp
@@ -1554,7 +1439,6 @@ Examples:
.Pp
See also
.Sx \&Er .
-.
.Ss \&Dx
Format the DragonFly BSD version provided as an argument, or a default
value if no argument is provided.
@@ -1572,13 +1456,11 @@ See also
.Sx \&Ox ,
and
.Sx \&Ux .
-.
.Ss \&Ec
.Ss \&Ed
.Ss \&Ef
.Ss \&Ek
.Ss \&El
-.
.Ss \&Em
Denotes text that should be emphasised. Note that this is a
presentation term and should not be used for stylistically decorating
@@ -1587,7 +1469,6 @@ technical terms.
Examples:
.D1 \&.Em Warnings!
.D1 \&.Em Remarks :
-.
.Ss \&En
.Ss \&Eo
.Ss \&Er
@@ -1599,9 +1480,7 @@ Examples:
.Pp
See also
.Sx \&Dv .
-.
.Ss \&Es
-.
.Ss \&Ev
Environmental variables such as those specified in
.Xr environ 7 .
@@ -1609,7 +1488,6 @@ Environmental variables such as those specified in
Examples:
.D1 \&.Ev DISPLAY
.D1 \&.Ev PATH
-.
.Ss \&Ex
Inserts text regarding a utility's exit values. This macro must have
first the
@@ -1640,7 +1518,6 @@ Examples:
.Pp
See also
.Sx \&Cm .
-.
.Ss \&Fn
.Ss \&Fo
.Ss \&Fr
@@ -1662,7 +1539,6 @@ See also
.Sx \&Ox ,
and
.Sx \&Ux .
-.
.Ss \&Hf
.Ss \&Ic
.Ss \&In
@@ -1680,7 +1556,6 @@ Examples:
.Pp
See also
.Sx \&Mt .
-.
.Ss \&Lp
.Ss \&Ms
.Ss \&Mt
@@ -1705,7 +1580,6 @@ See also
.Sx \&Ox ,
and
.Sx \&Ux .
-.
.Ss \&Oc
.Ss \&Oo
.Ss \&Op
@@ -1732,13 +1606,11 @@ See also
.Sx \&Dd
and
.Sx \&Dt .
-.
.Ss \&Ot
Unknown usage.
.Pp
.Em Remarks :
this macro has been deprecated.
-.
.Ss \&Ox
Format the OpenBSD version provided as an argument, or a default value
if no argument is provided.
@@ -1756,7 +1628,6 @@ See also
.Sx \&Nx ,
and
.Sx \&Ux .
-.
.Ss \&Pa
.Ss \&Pc
.Ss \&Pf
@@ -1767,12 +1638,10 @@ and
.Ss \&Ql
.Ss \&Qo
.Ss \&Qq
-.
.Ss \&Re
Closes a
.Sx \&Rs
block. Does not have any tail arguments.
-.
.Ss \&Rs
Begins a bibliographic
.Pq Dq reference
@@ -1811,7 +1680,6 @@ If an
block is used within a SEE ALSO section, a vertical space is asserted
before the rendered output, else the block continues on the current
line.
-.
.Ss \&Rv
.Ss \&Sc
.Ss \&Sh
@@ -1839,7 +1707,6 @@ See also
.Sx \&Nx ,
and
.Sx \&Ox .
-.
.Ss \&Va
.Ss \&Vt
A variable type. This is also used for indicating global variables in the
@@ -1863,16 +1730,13 @@ See also
.Sx \&Ft
and
.Sx \&Va .
-.
.Ss \&Xc
Close a scope opened by
.Sx \&Xo .
-.
.Ss \&Xo
Open an extension scope. This macro originally existed to extend the
9-argument limit of troff; since this limit has been lifted, the macro
has been deprecated.
-.
.Ss \&Xr
Link to another manual
.Pq Qq cross-reference .
@@ -1896,11 +1760,8 @@ Examples:
.D1 \&.Xr mandoc 1
.D1 \&.Xr mandoc 1 ;
.D1 \&.Xr mandoc 1 \&Ns s behaviour
-.
.Ss \&br
.Ss \&sp
-.
-.
.Sh COMPATIBILITY
This section documents compatibility between mandoc and other other
troff implementations, at this time limited to GNU troff
@@ -1911,24 +1772,20 @@ refers to groff versions before the
.Pa doc.tmac
file re-write
.Pq somewhere between 1.15 and 1.19 .
-.
.Pp
Heirloom troff, the other significant troff implementation accepting
\-mdoc, is similar to historic groff.
-.
.Pp
.Bl -dash -compact
.It
The comment syntax
.Sq \e."
is no longer accepted.
-.
.It
In groff, the
.Sx \&Pa
macro does not format its arguments when used in the FILES section under
certain list types. mandoc does.
-.
.It
Historic groff does not print a dash for empty
.Sx \&Fl
@@ -1938,18 +1795,15 @@ groff behaves irregularly when specifying
.Sq \ef
.Sx Text Decoration
within line-macro scopes. mandoc follows a consistent system.
-.
.It
In mandoc, negative scaling units are truncated to zero; groff would
move to prior lines. Furthermore, the
.Sq f
scaling unit, while accepted, is rendered as the default unit.
-.
.It
In quoted literals, groff allowed pair-wise double-quotes to produce a
standalone double-quote in formatted output. This idiosyncratic
behaviour is not applicable in mandoc.
-.
.It
Display types
.Sx \&Bd
@@ -1969,42 +1823,35 @@ are aliases, as are
.Fl literal
and
.Fl unfilled .
-.
.It
In mandoc, blocks of whitespace are stripped from both macro and
free-form text lines (except when in literal mode); groff would retain
whitespace in free-form text lines.
-.
.It
Historic groff has many un-callable macros. Most of these (excluding
some block-level macros) are now callable.
-.
.It
The vertical bar
.Sq \(ba
made historic groff
.Qq go orbital
but has been a proper delimiter since then.
-.
.It
.Sx \&It Fl nested
is assumed for all lists (it wasn't in historic groff): any list may be
nested and
.Fl enum
lists will restart the sequence only for the sub-list.
-.
.It
Some manuals use
.Sx \&Li
incorrectly by following it with a reserved character and expecting the
delimiter to render. This is not supported in mandoc.
-.
.It
In groff, the
.Sx \&Fo
macro only produces the first parameter. This is not the case in
mandoc.
-.
.It
In groff, the
.Sx \&Cd ,
@@ -2014,18 +1861,14 @@ and
macros were stipulated only to occur in certain manual sections. mandoc
does not have these restrictions.
.El
-.
-.
.Sh SEE ALSO
.Xr mandoc 1 ,
.Xr mandoc_char 7
-.
-.
.Sh AUTHORS
The
.Nm
reference was written by
-.An Kristaps Dzonsons Aq kristaps@kth.se .
+.An Kristaps Dzonsons Aq kristaps@bsd.lv .
.\"
.\" XXX: this really isn't the place for these caveats.
.\" .