[BACK]Return to mdoc.7 CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mdoc.7 between version 1.157 and 1.192

version 1.157, 2010/08/29 11:28:09 version 1.192, 2011/07/31 17:30:33
Line 1 
Line 1 
 .\"     $Id$  .\"     $Id$
 .\"  .\"
 .\" Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>  .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
 .\" Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>  .\" Copyright (c) 2010 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
Line 40  An
Line 40  An
 .Nm  .Nm
 document follows simple rules: lines beginning with the control  document follows simple rules: lines beginning with the control
 character  character
 .Sq \.  .Sq \&.
 are parsed for macros.  are parsed for macros.
 Other lines are interpreted within the scope of  Text lines, those not beginning with the control character, are
 prior macros:  interpreted within the scope of prior macros:
 .Bd -literal -offset indent  .Bd -literal -offset indent
 \&.Sh Macro lines change control state.  \&.Sh Macro lines change control state.
 Other lines are interpreted within the current state.  Text lines are interpreted within the current state.
 .Ed  .Ed
 .Sh LANGUAGE SYNTAX  .Sh LANGUAGE SYNTAX
 .Nm  .Nm
 documents may contain only graphable 7-bit ASCII characters, the space  documents may contain only graphable 7-bit ASCII characters, the space
 character, and, in certain circumstances, the tab character.  character, and, in certain circumstances, the tab character.
 All manuals must have  .Pp
 .Ux  If the first character of a text line is a space, that line is printed
 line terminators.  with a leading newline.
 .Ss Comments  .Ss Comments
 Text following a  Text following a
 .Sq \e\*q ,  .Sq \e\*q ,
 whether in a macro or free-form text line, is ignored to the end of  whether in a macro or text line, is ignored to the end of
 line.  line.
 A macro line with only a control character and comment escape,  A macro line with only a control character and comment escape,
 .Sq \&.\e\*q ,  .Sq \&.\e\*q ,
 is also ignored.  is also ignored.
 Macro lines with only a control character and optional whitespace are  Macro lines with only a control character and optional whitespace are
 stripped from input.  stripped from input.
 .Ss Reserved Characters  .Ss Reserved Terms
 Within a macro line, the following characters are reserved:  Within a macro line, the following terms are reserved:
 .Pp  .Pp
 .Bl -tag -width Ds -offset indent -compact  .Bl -tag -width Ds -offset indent -compact
 .It \&.  .It \&.
 .Pq period  .Pq period
   .It \e.
   .Pq escaped period
 .It \&,  .It \&,
 .Pq comma  .Pq comma
 .It \&:  .It \&:
Line 91  Within a macro line, the following characters are rese
Line 93  Within a macro line, the following characters are rese
 .Pq exclamation  .Pq exclamation
 .It \&|  .It \&|
 .Pq vertical bar  .Pq vertical bar
   .It \e*(Ba
   .Pq reserved-word vertical bar
 .El  .El
 .Pp  .Pp
 Use of reserved characters is described in  For general use in macro lines, these can be escaped with a non-breaking
 .Sx MACRO SYNTAX .  space
 For general use in macro lines, these characters can either be escaped  .Pq Sq \e& .
 with a non-breaking space  In text lines, these may be used as normal punctuation.
 .Pq Sq \e&  
 or, if applicable, an appropriate escape sequence can be used.  
 .Ss Special Characters  .Ss Special Characters
 Special characters may occur in both macro and free-form lines.  Special characters may occur in both macro and text lines.
 Sequences begin with the escape character  Sequences begin with the escape character
 .Sq \e  .Sq \e
 followed by either an open-parenthesis  followed by either an open-parenthesis
Line 125  Terms may be text-decorated using the
Line 127  Terms may be text-decorated using the
 escape followed by an indicator: B (bold), I (italic), R (Roman), or P  escape followed by an indicator: B (bold), I (italic), R (Roman), or P
 (revert to previous mode):  (revert to previous mode):
 .Pp  .Pp
 .D1 \efBbold\efR \efIitalic\efP  .Dl \efBbold\efR \efIitalic\efP
 .Pp  .Pp
 A numerical representation 3, 2, or 1 (bold, italic, and Roman,  A numerical representation 3, 2, or 1 (bold, italic, and Roman,
 respectively) may be used instead.  respectively) may be used instead.
 A text decoration is valid within  If a macro opens a font scope after calling
 the current font scope only: if a macro opens a font scope alongside  .Sq \ef ,
 its own scope, such as  such as with
 .Sx \&Bf  .Sx \&Bf ,
 .Cm \&Sy ,  the
 in-scope invocations of  
 .Sq \ef  .Sq \ef
 are only valid within the font scope of the macro.  mode will be restored upon exiting the
 If  .Sx \&Bf
 .Sq \ef  scope.
 is specified outside of any font scope, such as in unenclosed, free-form  
 text, it will affect the remainder of the document.  
 .Pp  .Pp
 Note this form is  Note this form is
 .Em not  .Em not
Line 174  and
Line 173  and
 .Pq vertical bar .  .Pq vertical bar .
 .Ss Whitespace  .Ss Whitespace
 Whitespace consists of the space character.  Whitespace consists of the space character.
 In free-form lines, whitespace is preserved within a line; unescaped  In text lines, whitespace is preserved within a line; unescaped
 trailing spaces are stripped from input (unless in a literal context).  trailing spaces are stripped from input (unless in a literal context).
 Blank free-form lines, which may include whitespace, are only permitted  Blank text lines, which may include whitespace, are only permitted
 within literal contexts.  within literal contexts.
 .Pp  .Pp
 In macro lines, whitespace delimits arguments and is discarded.  In macro lines, whitespace delimits arguments and is discarded.
Line 196  Thus, the following produces
Line 195  Thus, the following produces
 \&.Op "Fl a"  \&.Op "Fl a"
 .Ed  .Ed
 .Pp  .Pp
 In free-form mode, quotes are regarded as opaque text.  In text lines, quotes are regarded as opaque text.
 .Ss Dates  
 There are several macros in  
 .Nm  
 that require a date argument.  
 The canonical form for dates is the American format:  
 .Pp  
 .D1 Cm Month Day , Year  
 .Pp  
 The  
 .Cm Day  
 value is an optionally zero-padded numeral.  
 The  
 .Cm Month  
 value is the full month name.  
 The  
 .Cm Year  
 value is the full four-digit year.  
 .Pp  
 Reduced form dates are broken-down canonical form dates:  
 .Pp  
 .D1 Cm Month , Year  
 .D1 Cm Year  
 .Pp  
 Some examples of valid dates follow:  
 .Pp  
 .D1 "May, 2009" Pq reduced form  
 .D1 "2009" Pq reduced form  
 .D1 "May 20, 2009" Pq canonical form  
 .Ss Scaling Widths  .Ss Scaling Widths
 Many macros support scaled widths for their arguments, such as  Many macros support scaled widths for their arguments, such as
 stipulating a two-inch list indentation with the following:  stipulating a two-inch list indentation with the following:
Line 283  a line.
Line 254  a line.
 By doing so, front-ends will be able to apply the proper amount of  By doing so, front-ends will be able to apply the proper amount of
 spacing after the end of sentence (unescaped) period, exclamation mark,  spacing after the end of sentence (unescaped) period, exclamation mark,
 or question mark followed by zero or more non-sentence closing  or question mark followed by zero or more non-sentence closing
 delimiters (  delimiters
 .Ns Sq \&) ,  .Po
   .Sq \&) ,
 .Sq \&] ,  .Sq \&] ,
 .Sq \&' ,  .Sq \&' ,
 .Sq \&" ) .  .Sq \&"
   .Pc .
 .Pp  .Pp
 The proper spacing is also intelligently preserved if a sentence ends at  The proper spacing is also intelligently preserved if a sentence ends at
 the boundary of a macro line.  the boundary of a macro line.
 For example:  For example:
 .Pp  .Pp
 .D1 \&Xr mandoc 1 \.  .Dl \&.Xr mandoc 1 \&.
 .D1 \&Fl T \&Ns \&Cm ascii \.  .Dl \&.Fl T \&Ns \&Cm ascii \&.
 .Sh MANUAL STRUCTURE  .Sh MANUAL STRUCTURE
 A well-formed  A well-formed
 .Nm  .Nm
Line 323  sections, although this varies between manual sections
Line 296  sections, although this varies between manual sections
 .Pp  .Pp
 The following is a well-formed skeleton  The following is a well-formed skeleton
 .Nm  .Nm
 file:  file for a utility
   .Qq progname :
 .Bd -literal -offset indent  .Bd -literal -offset indent
 \&.Dd $\&Mdocdate$  \&.Dd $\&Mdocdate$
 \&.Dt mdoc 7  \&.Dt PROGNAME section
 \&.Os  \&.Os
 \&.Sh NAME  \&.Sh NAME
 \&.Nm foo  \&.Nm progname
 \&.Nd a description goes here  \&.Nd a description goes here
 \&.\e\*q .Sh LIBRARY  \&.\e\*q .Sh LIBRARY
 \&.\e\*q For sections 2, 3, & 9 only.  \&.\e\*q For sections 2, 3, & 9 only.
 \&.\e\*q Not used in OpenBSD.  \&.\e\*q Not used in OpenBSD.
 \&.Sh SYNOPSIS  \&.Sh SYNOPSIS
 \&.Nm foo  \&.Nm progname
 \&.Op Fl options  \&.Op Fl options
 \&.Ar  \&.Ar
 \&.Sh DESCRIPTION  \&.Sh DESCRIPTION
Line 343  The
Line 317  The
 \&.Nm  \&.Nm
 utility processes files ...  utility processes files ...
 \&.\e\*q .Sh IMPLEMENTATION NOTES  \&.\e\*q .Sh IMPLEMENTATION NOTES
   \&.\e\*q Not used in OpenBSD.
 \&.\e\*q .Sh RETURN VALUES  \&.\e\*q .Sh RETURN VALUES
 \&.\e\*q For sections 2, 3, & 9 only.  \&.\e\*q For sections 2, 3, & 9 only.
 \&.\e\*q .Sh ENVIRONMENT  \&.\e\*q .Sh ENVIRONMENT
 \&.\e\*q For sections 1, 6, 7, & 8 only.  \&.\e\*q For sections 1, 6, 7, & 8 only.
 \&.\e\*q .Sh FILES  \&.\e\*q .Sh FILES
 \&.\e\*q .Sh EXIT STATUS  \&.\e\*q .Sh EXIT STATUS
 \&.\e\*q For sections 1 & 8 only.  \&.\e\*q For sections 1, 6, & 8 only.
 \&.\e\*q .Sh EXAMPLES  \&.\e\*q .Sh EXAMPLES
 \&.\e\*q .Sh DIAGNOSTICS  \&.\e\*q .Sh DIAGNOSTICS
 \&.\e\*q For sections 1, 4, 6, 7, & 8 only.  \&.\e\*q For sections 1, 4, 6, 7, & 8 only.
Line 381  The syntax for this as follows:
Line 356  The syntax for this as follows:
 \&.Nd a one line description  \&.Nd a one line description
 .Ed  .Ed
 .Pp  .Pp
   Multiple
   .Sq \&Nm
   names should be separated by commas.
   .Pp
 The  The
 .Sx \&Nm  .Sx \&Nm
 macro(s) must precede the  macro(s) must precede the
Line 408  configuration.
Line 387  configuration.
 For the first, utilities (sections 1, 6, and 8), this is  For the first, utilities (sections 1, 6, and 8), this is
 generally structured as follows:  generally structured as follows:
 .Bd -literal -offset indent  .Bd -literal -offset indent
 \&.Nm foo  \&.Nm bar
 \&.Op Fl v  \&.Op Fl v
 \&.Op Fl o Ar file  \&.Op Fl o Ar file
 \&.Op Ar  \&.Op Ar
 \&.Nm bar  \&.Nm foo
 \&.Op Fl v  \&.Op Fl v
 \&.Op Fl o Ar file  \&.Op Fl o Ar file
 \&.Op Ar  \&.Op Ar
 .Ed  .Ed
 .Pp  .Pp
   Commands should be ordered alphabetically.
   .Pp
 For the second, function calls (sections 2, 3, 9):  For the second, function calls (sections 2, 3, 9):
 .Bd -literal -offset indent  .Bd -literal -offset indent
 \&.In header.h  \&.In header.h
Line 428  For the second, function calls (sections 2, 3, 9):
Line 409  For the second, function calls (sections 2, 3, 9):
 \&.Fn bar "const char *src"  \&.Fn bar "const char *src"
 .Ed  .Ed
 .Pp  .Pp
   Ordering of
   .Sx \&In ,
   .Sx \&Vt ,
   .Sx \&Fn ,
   and
   .Sx \&Fo
   macros should follow C header-file conventions.
   .Pp
 And for the third, configurations (section 4):  And for the third, configurations (section 4):
 .Bd -literal -offset indent  .Bd -literal -offset indent
 \&.Cd \*qit* at isa? port 0x2e\*q  \&.Cd \*qit* at isa? port 0x2e\*q
Line 476  or
Line 465  or
 .Sx \&Ss  .Sx \&Ss
 macro or the end of an enclosing block, whichever comes first.  macro or the end of an enclosing block, whichever comes first.
 .It Em DESCRIPTION  .It Em DESCRIPTION
 This expands upon the brief, one line description in  This begins with an expansion of the brief, one line description in
 .Em NAME .  .Em NAME :
 It usually contains a breakdown of the options (if documenting a  .Bd -literal -offset indent
   The
   \&.Nm
   utility does this, that, and the other.
   .Ed
   .Pp
   It usually follows with a breakdown of the options (if documenting a
 command), such as:  command), such as:
 .Bd -literal -offset indent  .Bd -literal -offset indent
 The arguments are as follows:  The arguments are as follows:
Line 603  closes it out.
Line 598  closes it out.
 .Pp  .Pp
 The  The
 .Em Callable  .Em Callable
 column indicates that the macro may be called subsequent to the initial  column indicates that the macro may also be called by passing its name
 line-macro.  as an argument to another macro.
 If a macro is not callable, then its invocation after the initial line  If a macro is not callable but its name appears as an argument
 macro is interpreted as opaque text, such that  to another macro, it is interpreted as opaque text.
   For example,
 .Sq \&.Fl \&Sh  .Sq \&.Fl \&Sh
 produces  produces
 .Sq Fl \&Sh .  .Sq Fl \&Sh .
 .Pp  .Pp
 The  The
 .Em Parsed  .Em Parsed
 column indicates whether the macro may be followed by further  column indicates whether the macro may call other macros by receiving
 (ostensibly callable) macros.  their names as arguments.
 If a macro is not parsed, subsequent macro invocations on the line  If a macro is not parsed but the name of another macro appears
 will be interpreted as opaque text.  as an argument, it is interpreted as opaque text.
 .Pp  .Pp
 The  The
 .Em Scope  .Em Scope
Line 625  column, if applicable, describes closure rules.
Line 621  column, if applicable, describes closure rules.
 Multi-line scope closed by an explicit closing macro.  Multi-line scope closed by an explicit closing macro.
 All macros contains bodies; only  All macros contains bodies; only
 .Sx \&Bf  .Sx \&Bf
 contains a head.  and
   .Pq optionally
   .Sx \&Bl
   contain a head.
 .Bd -literal -offset indent  .Bd -literal -offset indent
 \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB  \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB
 \(lBbody...\(rB  \(lBbody...\(rB
Line 730  and/or tail
Line 729  and/or tail
 .El  .El
 .Ss Block partial-implicit  .Ss Block partial-implicit
 Like block full-implicit, but with single-line scope closed by  Like block full-implicit, but with single-line scope closed by
 .Sx Reserved Characters  .Sx Reserved Terms
 or end of line.  or end of line.
 .Bd -literal -offset indent  .Bd -literal -offset indent
 \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBbody...\(rB \(lBres...\(rB  \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBbody...\(rB \(lBres...\(rB
Line 761  in a
Line 760  in a
 .Em SYNOPSIS  .Em SYNOPSIS
 section line, else it is  section line, else it is
 .Sx In-line .  .Sx In-line .
   .Ss Special block macro
   The
   .Sx \&Ta
   macro can only be used below
   .Sx \&It
   in
   .Sx \&Bl Fl column
   lists.
   It delimits blocks representing table cells;
   these blocks have bodies, but no heads.
   .Pp
   .Bl -column "MacroX" "CallableX" "ParsedX" "closed by XXXX" -compact -offset indent
   .It Em Macro Ta Em Callable Ta Em Parsed Ta Em Scope
   .It Sx \&Ta  Ta    Yes      Ta    Yes    Ta closed by Sx \&Ta , Sx \&It
   .El
 .Ss In-line  .Ss In-line
 Closed by  Closed by
 .Sx Reserved Characters ,  .Sx Reserved Terms ,
 end of line, fixed argument lengths, and/or subsequent macros.  end of line, fixed argument lengths, and/or subsequent macros.
 In-line macros have only text children.  In-line macros have only text children.
 If a number (or inequality) of arguments is  If a number (or inequality) of arguments is
Line 793  then the macro accepts an arbitrary number of argument
Line 807  then the macro accepts an arbitrary number of argument
 .It Sx \&%T  Ta    \&No     Ta    \&No     Ta    >0  .It Sx \&%T  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%U  Ta    \&No     Ta    \&No     Ta    >0  .It Sx \&%U  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%V  Ta    \&No     Ta    \&No     Ta    >0  .It Sx \&%V  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&Ad  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Ad  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&An  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&An  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Ap  Ta    Yes      Ta    Yes      Ta    0  .It Sx \&Ap  Ta    Yes      Ta    Yes      Ta    0
 .It Sx \&Ar  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Ar  Ta    Yes      Ta    Yes      Ta    n
 .It Sx \&At  Ta    Yes      Ta    Yes      Ta    1  .It Sx \&At  Ta    Yes      Ta    Yes      Ta    1
Line 802  then the macro accepts an arbitrary number of argument
Line 816  then the macro accepts an arbitrary number of argument
 .It Sx \&Bt  Ta    \&No     Ta    \&No     Ta    0  .It Sx \&Bt  Ta    \&No     Ta    \&No     Ta    0
 .It Sx \&Bx  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Bx  Ta    Yes      Ta    Yes      Ta    n
 .It Sx \&Cd  Ta    Yes      Ta    Yes      Ta    >0  .It Sx \&Cd  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Cm  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Cm  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Db  Ta    \&No     Ta    \&No     Ta    1  .It Sx \&Db  Ta    \&No     Ta    \&No     Ta    1
 .It Sx \&Dd  Ta    \&No     Ta    \&No     Ta    n  .It Sx \&Dd  Ta    \&No     Ta    \&No     Ta    n
 .It Sx \&Dt  Ta    \&No     Ta    \&No     Ta    n  .It Sx \&Dt  Ta    \&No     Ta    \&No     Ta    n
 .It Sx \&Dv  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Dv  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Dx  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Dx  Ta    Yes      Ta    Yes      Ta    n
 .It Sx \&Em  Ta    Yes      Ta    Yes      Ta    >0  .It Sx \&Em  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&En  Ta    \&No     Ta    \&No     Ta    0  .It Sx \&En  Ta    \&No     Ta    \&No     Ta    0
 .It Sx \&Er  Ta    Yes      Ta    Yes      Ta    >0  .It Sx \&Er  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Es  Ta    \&No     Ta    \&No     Ta    0  .It Sx \&Es  Ta    \&No     Ta    \&No     Ta    0
 .It Sx \&Ev  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Ev  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Ex  Ta    \&No     Ta    \&No     Ta    n  .It Sx \&Ex  Ta    \&No     Ta    \&No     Ta    n
 .It Sx \&Fa  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Fa  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Fd  Ta    \&No     Ta    \&No     Ta    >0  .It Sx \&Fd  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&Fl  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Fl  Ta    Yes      Ta    Yes      Ta    n
 .It Sx \&Fn  Ta    Yes      Ta    Yes      Ta    >0  .It Sx \&Fn  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Fr  Ta    \&No     Ta    \&No     Ta    n  .It Sx \&Fr  Ta    \&No     Ta    \&No     Ta    n
 .It Sx \&Ft  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Ft  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Fx  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Fx  Ta    Yes      Ta    Yes      Ta    n
 .It Sx \&Hf  Ta    \&No     Ta    \&No     Ta    n  .It Sx \&Hf  Ta    \&No     Ta    \&No     Ta    n
 .It Sx \&Ic  Ta    Yes      Ta    Yes      Ta    >0  .It Sx \&Ic  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&In  Ta    \&No     Ta    \&No     Ta    n  .It Sx \&In  Ta    \&No     Ta    \&No     Ta    1
 .It Sx \&Lb  Ta    \&No     Ta    \&No     Ta    1  .It Sx \&Lb  Ta    \&No     Ta    \&No     Ta    1
 .It Sx \&Li  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Li  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Lk  Ta    Yes      Ta    Yes      Ta    n  .It Sx \&Lk  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Lp  Ta    \&No     Ta    \&No     Ta    0  .It Sx \&Lp  Ta    \&No     Ta    \&No     Ta    0
 .It Sx \&Ms  Ta    Yes      Ta    Yes      Ta    >0  .It Sx \&Ms  Ta    Yes      Ta    Yes      Ta    >0
 .It Sx \&Mt  Ta    Yes      Ta    Yes      Ta    >0  .It Sx \&Mt  Ta    Yes      Ta    Yes      Ta    >0
Line 882  block.
Line 896  block.
 Publication date of an  Publication date of an
 .Sx \&Rs  .Sx \&Rs
 block.  block.
 This should follow the reduced or canonical form syntax described in  Recommended formats of arguments are
 .Sx Dates .  .Ar month day , year
   or just
   .Ar year .
 .Ss \&%I  .Ss \&%I
 Publisher or issuer name of an  Publisher or issuer name of an
 .Sx \&Rs  .Sx \&Rs
Line 937  Memory address.
Line 953  Memory address.
 Do not use this for postal addresses.  Do not use this for postal addresses.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Ad [0,$]  .Dl \&.Ad [0,$]
 .D1 \&.Ad 0x00000000  .Dl \&.Ad 0x00000000
 .Ss \&An  .Ss \&An
 Author name.  Author name.
 Requires either the name of an author or one of the following arguments:  Requires either the name of an author or one of the following arguments:
Line 968  for the first author listing and
Line 984  for the first author listing and
 for all other author listings.  for all other author listings.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.An -nosplit  .Dl \&.An -nosplit
 .D1 \&.An Kristaps Dzonsons \&Aq kristaps@bsd.lv  .Dl \&.An Kristaps Dzonsons \&Aq kristaps@bsd.lv
 .Ss \&Ao  .Ss \&Ao
 Begin a block enclosed by angle brackets.  Begin a block enclosed by angle brackets.
 Does not have any head arguments.  Does not have any head arguments.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Fl -key= \&Ns \&Ao \&Ar val \&Ac  .Dl \&.Fl -key= \&Ns \&Ao \&Ar val \&Ac
 .Pp  .Pp
 See also  See also
 .Sx \&Aq .  .Sx \&Aq .
Line 985  This is generally used as a grammatical device when re
Line 1001  This is generally used as a grammatical device when re
 form of a function.  form of a function.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Fn execve \&Ap d  .Dl \&.Fn execve \&Ap d
 .Ss \&Aq  .Ss \&Aq
 Encloses its arguments in angle brackets.  Encloses its arguments in angle brackets.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Fl -key= \&Ns \&Aq \&Ar val  .Dl \&.Fl -key= \&Ns \&Aq \&Ar val
 .Pp  .Pp
 .Em Remarks :  .Em Remarks :
 this macro is often abused for rendering URIs, which should instead use  this macro is often abused for rendering URIs, which should instead use
Line 1011  If an argument is not provided, the string
Line 1027  If an argument is not provided, the string
 is used as a default.  is used as a default.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Fl o \&Ns \&Ar file1  .Dl \&.Fl o \&Ns \&Ar file1
 .D1 \&.Ar  .Dl \&.Ar
 .D1 \&.Ar arg1 , arg2 .  .Dl \&.Ar arg1 , arg2 .
 .Ss \&At  .Ss \&At
 Formats an AT&T version.  Formats an AT&T version.
 Accepts one optional argument:  Accepts one optional argument:
Line 1022  Accepts one optional argument:
Line 1038  Accepts one optional argument:
 .It Cm v[1-7] | 32v  .It Cm v[1-7] | 32v
 A version of  A version of
 .At .  .At .
   .It Cm III
   .At III .
 .It Cm V[.[1-4]]?  .It Cm V[.[1-4]]?
 A version of  A version of
 .At V .  .At V .
Line 1030  A version of
Line 1048  A version of
 Note that these arguments do not begin with a hyphen.  Note that these arguments do not begin with a hyphen.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.At  .Dl \&.At
 .D1 \&.At V.1  .Dl \&.At III
   .Dl \&.At V.1
 .Pp  .Pp
 See also  See also
 .Sx \&Bsx ,  .Sx \&Bsx ,
Line 1059  Its syntax is as follows:
Line 1078  Its syntax is as follows:
 .Pp  .Pp
 Display blocks are used to select a different indentation and  Display blocks are used to select a different indentation and
 justification than the one used by the surrounding text.  justification than the one used by the surrounding text.
 They may contain both macro lines and free-form text lines.  They may contain both macro lines and text lines.
 By default, a display block is preceded by a vertical space.  By default, a display block is preceded by a vertical space.
 .Pp  .Pp
 The  The
Line 1174  See also
Line 1193  See also
 and  and
 .Sx \&Sy .  .Sx \&Sy .
 .Ss \&Bk  .Ss \&Bk
 Keep the output generated from each macro input line together  For each macro, keep its output together on the same output line,
 on one single output line.  until the end of the macro or the end of the input line is reached,
 Line breaks in free-form text lines are unaffected.  whichever comes first.
   Line breaks in text lines are unaffected.
 The syntax is as follows:  The syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Bk Fl words  .D1 Pf \. Sx \&Bk Fl words
Line 1199  Be careful in using over-long lines within a keep bloc
Line 1219  Be careful in using over-long lines within a keep bloc
 Doing so will clobber the right margin.  Doing so will clobber the right margin.
 .Ss \&Bl  .Ss \&Bl
 Begin a list.  Begin a list.
 Lists consist of items started by the  Lists consist of items specified using the
 .Sx \&It  .Sx \&It
 macro, containing a head or a body or both.  macro, containing a head or a body or both.
 The list syntax is as follows:  The list syntax is as follows:
Line 1334  See also
Line 1354  See also
 Encloses its arguments in square brackets.  Encloses its arguments in square brackets.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Bq 1 , \&Dv BUFSIZ  .Dl \&.Bq 1 , \&Dv BUFSIZ
 .Pp  .Pp
 .Em Remarks :  .Em Remarks :
 this macro is sometimes abused to emulate optional arguments for  this macro is sometimes abused to emulate optional arguments for
Line 1367  See also
Line 1387  See also
 Encloses its arguments in curly braces.  Encloses its arguments in curly braces.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Brq 1 , ... , \&Va n  .Dl \&.Brq 1 , ... , \&Va n
 .Pp  .Pp
 See also  See also
 .Sx \&Bro .  .Sx \&Bro .
Line 1376  Format the BSD/OS version provided as an argument, or 
Line 1396  Format the BSD/OS version provided as an argument, or 
 no argument is provided.  no argument is provided.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Bsx 1.0  .Dl \&.Bsx 1.0
 .D1 \&.Bsx  .Dl \&.Bsx
 .Pp  .Pp
 See also  See also
 .Sx \&At ,  .Sx \&At ,
Line 1396  Format the BSD version provided as an argument, or a d
Line 1416  Format the BSD version provided as an argument, or a d
 argument is provided.  argument is provided.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Bx 4.4  .Dl \&.Bx 4.4
 .D1 \&.Bx  .Dl \&.Bx
 .Pp  .Pp
 See also  See also
 .Sx \&At ,  .Sx \&At ,
Line 1414  This denotes strings accepted by
Line 1434  This denotes strings accepted by
 .Xr config 8 .  .Xr config 8 .
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Cd device le0 at scode?  .Dl \&.Cd device le0 at scode?
 .Pp  .Pp
 .Em Remarks :  .Em Remarks :
 this macro is commonly abused by using quoted literals to retain  this macro is commonly abused by using quoted literals to retain
Line 1427  Command modifiers.
Line 1447  Command modifiers.
 Useful when specifying configuration options or keys.  Useful when specifying configuration options or keys.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Cm ControlPath  .Dl \&.Cm ControlPath
 .D1 \&.Cm ControlMaster  .Dl \&.Cm ControlMaster
 .Pp  .Pp
 See also  See also
 .Sx \&Fl .  .Sx \&Fl .
Line 1439  statements.
Line 1459  statements.
 It is followed by a newline.  It is followed by a newline.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.D1 \&Fl abcdefgh  .Dl \&.D1 \&Fl abcdefgh
 .Pp  .Pp
 See also  See also
 .Sx \&Bd  .Sx \&Bd
Line 1465  This is the mandatory first macro of any
Line 1485  This is the mandatory first macro of any
 manual.  manual.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Dd Op Ar date  .D1 Pf \. Sx \&Dd Ar month day , year
 .Pp  .Pp
 The  The
 .Ar date  .Ar month
 may be either  is the full English month name, the
 .Ar $\&Mdocdate$ ,  .Ar day
 which signifies the current manual revision date dictated by  is an optionally zero-padded numeral, and the
   .Ar year
   is the full four-digit year.
   .Pp
   Other arguments are not portable; the
   .Xr mandoc 1
   utility handles them as follows:
   .Bl -dash -offset 3n -compact
   .It
   To have the date automatically filled in by the
   .Ox
   version of
 .Xr cvs 1 ,  .Xr cvs 1 ,
 or instead a valid canonical date as specified by  the special string
 .Sx Dates .  .Dq $\&Mdocdate$
 If a date does not conform or is empty, the current date is used.  can be given as an argument.
   .It
   A few alternative date formats are accepted as well
   and converted to the standard form.
   .It
   If a date string cannot be parsed, it is used verbatim.
   .It
   If no date string is given, the current date is used.
   .El
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Dd $\&Mdocdate$  .Dl \&.Dd $\&Mdocdate$
 .D1 \&.Dd $\&Mdocdate: July 21 2007$  .Dl \&.Dd $\&Mdocdate: July 21 2007$
 .D1 \&.Dd July 21, 2007  .Dl \&.Dd July 21, 2007
 .Pp  .Pp
 See also  See also
 .Sx \&Dt  .Sx \&Dt
Line 1493  invocations.
Line 1532  invocations.
 It is followed by a newline.  It is followed by a newline.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Dl % mandoc mdoc.7 \e(ba less  .Dl \&.Dl % mandoc mdoc.7 \e(ba less
 .Pp  .Pp
 See also  See also
 .Sx \&Bd  .Sx \&Bd
Line 1645  It must be one of
Line 1684  It must be one of
 .Ar luna88k ,  .Ar luna88k ,
 .Ar mac68k ,  .Ar mac68k ,
 .Ar macppc ,  .Ar macppc ,
   .Ar mips64 ,
 .Ar mvme68k ,  .Ar mvme68k ,
 .Ar mvme88k ,  .Ar mvme88k ,
 .Ar mvmeppc ,  .Ar mvmeppc ,
Line 1660  or
Line 1700  or
 .El  .El
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Dt FOO 1  .Dl \&.Dt FOO 1
 .D1 \&.Dt FOO 4 KM  .Dl \&.Dt FOO 4 KM
 .D1 \&.Dt FOO 9 i386  .Dl \&.Dt FOO 9 i386
 .Pp  .Pp
 See also  See also
 .Sx \&Dd  .Sx \&Dd
 and  and
 .Sx \&Os .  .Sx \&Os .
 .Ss \&Dv  .Ss \&Dv
 Defined variables such as preprocessor constants.  Defined variables such as preprocessor constants, constant symbols,
   enumeration values, and so on.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Dv BUFSIZ  .Dl \&.Dv NULL
 .D1 \&.Dv STDOUT_FILENO  .Dl \&.Dv BUFSIZ
   .Dl \&.Dv STDOUT_FILENO
 .Pp  .Pp
 See also  See also
 .Sx \&Er .  .Sx \&Er
   and
   .Sx \&Ev
   for special-purpose constants and
   .Sx \&Va
   for variable symbols.
 .Ss \&Dx  .Ss \&Dx
 Format the DragonFly BSD version provided as an argument, or a default  Format the DragonFly BSD version provided as an argument, or a default
 value if no argument is provided.  value if no argument is provided.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Dx 2.4.1  .Dl \&.Dx 2.4.1
 .D1 \&.Dx  .Dl \&.Dx
 .Pp  .Pp
 See also  See also
 .Sx \&At ,  .Sx \&At ,
Line 1729  Note that this is a presentation term and should not b
Line 1776  Note that this is a presentation term and should not b
 stylistically decorating technical terms.  stylistically decorating technical terms.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Em Warnings!  .Dl \&.Em Warnings!
 .D1 \&.Em Remarks :  .Dl \&.Em Remarks :
 .Pp  .Pp
 See also  See also
 .Sx \&Bf ,  .Sx \&Bf ,
Line 1752  argument is used as the enclosure head, for example, s
Line 1799  argument is used as the enclosure head, for example, s
 will emulate  will emulate
 .Sx \&Do .  .Sx \&Do .
 .Ss \&Er  .Ss \&Er
 Display error constants.  Error constants for definitions of the
   .Va errno
   libc global variable.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Er EPERM  .Dl \&.Er EPERM
 .D1 \&.Er ENOENT  .Dl \&.Er ENOENT
 .Pp  .Pp
 See also  See also
 .Sx \&Dv .  .Sx \&Dv
   for general constants.
 .Ss \&Es  .Ss \&Es
 This macro is obsolete and not implemented.  This macro is obsolete and not implemented.
 .Ss \&Ev  .Ss \&Ev
Line 1767  Environmental variables such as those specified in
Line 1817  Environmental variables such as those specified in
 .Xr environ 7 .  .Xr environ 7 .
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Ev DISPLAY  .Dl \&.Ev DISPLAY
 .D1 \&.Ev PATH  .Dl \&.Ev PATH
   .Pp
   See also
   .Sx \&Dv
   for general constants.
 .Ss \&Ex  .Ss \&Ex
 Insert a standard sentence regarding exit values.  Insert a standard sentence regarding command exit values of 0 on success
   and >0 on failure.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Ex Fl std Op Ar utility  .D1 Pf \. Sx \&Ex Fl std Op Ar utility...
 .Pp  .Pp
 When  If
 .Ar utility  .Ar utility
 is not specified, the document's name set by  is not specified, the document's name set by
 .Sx \&Nm  .Sx \&Nm
 is used.  is used.
   Multiple
   .Ar utility
   arguments are treated as separate utilities.
 .Pp  .Pp
 See also  See also
 .Sx \&Rv .  .Sx \&Rv .
Line 1808  Furthermore, if the following macro is another
Line 1866  Furthermore, if the following macro is another
 the last argument will also have a trailing comma.  the last argument will also have a trailing comma.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Fa \(dqconst char *p\(dq  .Dl \&.Fa \(dqconst char *p\(dq
 .D1 \&.Fa \(dqint a\(dq \(dqint b\(dq \(dqint c\(dq  .Dl \&.Fa \(dqint a\(dq \(dqint b\(dq \(dqint c\(dq
 .D1 \&.Fa foo  .Dl \&.Fa foo
 .Pp  .Pp
 See also  See also
 .Sx \&Fo .  .Sx \&Fo .
Line 1838  If the argument is a macro, a hyphen is prefixed to th
Line 1896  If the argument is a macro, a hyphen is prefixed to th
 output.  output.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Fl a b c  .Dl \&.Fl a b c
 .D1 \&.Fl \&Pf a b  .Dl \&.Fl \&Pf a b
 .D1 \&.Fl  .Dl \&.Fl
 .D1 \&.Op \&Fl o \&Ns \&Ar file  .Dl \&.Op \&Fl o \&Ns \&Ar file
 .Pp  .Pp
 See also  See also
 .Sx \&Cm .  .Sx \&Cm .
Line 1850  A function name.
Line 1908  A function name.
 Its syntax is as follows:  Its syntax is as follows:
 .Bd -ragged -offset indent  .Bd -ragged -offset indent
 .Pf \. Ns Sx \&Fn  .Pf \. Ns Sx \&Fn
 .Op Cm functype  .Op Ar functype
 .Cm funcname  .Ar funcname
 .Op Oo Cm argtype Oc Cm argname  .Op Oo Ar argtype Oc Ar argname
 .Ed  .Ed
 .Pp  .Pp
 Function arguments are surrounded in parenthesis and  Function arguments are surrounded in parenthesis and
Line 1860  are delimited by commas.
Line 1918  are delimited by commas.
 If no arguments are specified, blank parenthesis are output.  If no arguments are specified, blank parenthesis are output.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Fn "int funcname" "int arg0" "int arg1"  .Dl \&.Fn \*qint funcname\*q \*qint arg0\*q \*qint arg1\*q
 .D1 \&.Fn funcname "int arg0"  .Dl \&.Fn funcname \*qint arg0\*q
 .D1 \&.Fn funcname arg0  .Dl \&.Fn funcname arg0
 .Bd -literal -offset indent -compact  .Bd -literal -offset indent -compact
 \&.Ft functype  \&.Ft functype
 \&.Fn funcname  \&.Fn funcname
 .Ed  .Ed
 .Pp  .Pp
   When referring to a function documented in another manual page, use
   .Sx \&Xr
   instead.
 See also  See also
 .Sx MANUAL STRUCTURE  .Sx MANUAL STRUCTURE
 and  and
Line 1878  This is a multi-line version of
Line 1939  This is a multi-line version of
 .Sx \&Fn .  .Sx \&Fn .
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Fo Cm funcname  .D1 Pf \. Sx \&Fo Ar funcname
 .Pp  .Pp
 Invocations usually occur in the following context:  Invocations usually occur in the following context:
 .Bd -ragged -offset indent  .Bd -ragged -offset indent
 .Pf \. Sx \&Ft Cm functype  .Pf \. Sx \&Ft Ar functype
 .br  .br
 .Pf \. Sx \&Fo Cm funcname  .Pf \. Sx \&Fo Ar funcname
 .br  .br
 .Pf \. Sx \&Fa Oo Cm argtype Oc Cm argname  .Pf \. Sx \&Fa Oo Ar argtype Oc Ar argname
 .br  .br
 \.\.\.  \&.\.\.
 .br  .br
 .Pf \. Sx \&Fc  .Pf \. Sx \&Fc
 .Ed  .Ed
Line 1903  See also
Line 1964  See also
 .Sx \&Fc ,  .Sx \&Fc ,
 and  and
 .Sx \&Ft .  .Sx \&Ft .
   .Ss \&Fr
   This macro is obsolete and not implemented.
 .Ss \&Ft  .Ss \&Ft
 A function type.  A function type.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Ft Cm functype  .D1 Pf \. Sx \&Ft Ar functype
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Ft int  .Dl \&.Ft int
 .Bd -literal -offset indent -compact  .Bd -literal -offset indent -compact
 \&.Ft functype  \&.Ft functype
 \&.Fn funcname  \&.Fn funcname
Line 1928  version provided as an argument, or a default value
Line 1991  version provided as an argument, or a default value
 if no argument is provided.  if no argument is provided.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Fx 7.1  .Dl \&.Fx 7.1
 .D1 \&.Fx  .Dl \&.Fx
 .Pp  .Pp
 See also  See also
 .Sx \&At ,  .Sx \&At ,
Line 1949  This is similar to
Line 2012  This is similar to
 but used for instructions rather than values.  but used for instructions rather than values.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Ic hash  .Dl \&.Ic hash
 .D1 \&.Ic alias  .Dl \&.Ic alias
 .Pp  .Pp
 Note that using  Note that using
 .Sx \&Bd Fl literal  .Sx \&Bd Fl literal
Line 1971  preceded by
Line 2034  preceded by
 the arguments is enclosed in angle brackets.  the arguments is enclosed in angle brackets.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.In sys/types  .Dl \&.In sys/types
 .Pp  .Pp
 See also  See also
 .Sx MANUAL STRUCTURE .  .Sx MANUAL STRUCTURE .
Line 1988  and
Line 2051  and
 .Fl diag  .Fl diag
 have the following syntax:  have the following syntax:
 .Pp  .Pp
 .D1 Pf \. Sx \&It Cm args  .D1 Pf \. Sx \&It Ar args
 .Pp  .Pp
 Lists of type  Lists of type
 .Fl bullet ,  .Fl bullet ,
Line 2025  The
Line 2088  The
 list is the most complicated.  list is the most complicated.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&It Op Cm args  .D1 Pf \. Sx \&It Ar cell Op <TAB> Ar cell ...
   .D1 Pf \. Sx \&It Ar cell Op Sx \&Ta Ar cell ...
 .Pp  .Pp
 The  The arguments consist of one or more lines of text and macros
 .Cm args  representing a complete table line.
 are phrases, a mix of macros and text corresponding to a line column,  Cells within the line are delimited by tabs or by the special
 delimited by tabs or the special  .Sx \&Ta
 .Sq \&Ta  block macro.
 pseudo-macro.  The tab cell delimiter may only be used within the
 Lines subsequent the  
 .Sx \&It  .Sx \&It
 are interpreted within the scope of the last phrase.  line itself; on following lines, only the
 Calling the pseudo-macro  .Sx \&Ta
 .Sq \&Ta  macro can be used to delimit cells, and
 will open a new phrase scope (this must occur on a macro line to be  .Sx \&Ta
 interpreted as a macro).  is only recognized as a macro when called by other macros,
 Note that the tab phrase delimiter may only be used within the  not as the first macro on a line.
   .Pp
   Note that quoted strings may span tab-delimited cells on an
 .Sx \&It  .Sx \&It
 line itself.  line.
 Subsequent this, only the  For example,
 .Sq \&Ta  
 pseudo-macro may be used to delimit phrases.  
 Furthermore, note that quoted sections propagate over tab-delimited  
 phrases on an  
 .Sx \&It ,  
 for example,  
 .Pp  .Pp
 .D1 .It \(dqcol1 ; <TAB> col2 ;\(dq \&;  .Dl .It \(dqcol1 ; <TAB> col2 ;\(dq \&;
 .Pp  .Pp
 will preserve the semicolon whitespace except for the last.  will preserve the semicolon whitespace except for the last.
 .Pp  .Pp
Line 2061  See also
Line 2120  See also
 Specify a library.  Specify a library.
 The syntax is as follows:  The syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Lb Cm library  .D1 Pf \. Sx \&Lb Ar library
 .Pp  .Pp
 The  The
 .Cm library  .Ar library
 parameter may be a system library, such as  parameter may be a system library, such as
 .Cm libz  .Ar libz
 or  or
 .Cm libpam ,  .Ar libpam ,
 in which case a small library description is printed next to the linker  in which case a small library description is printed next to the linker
 invocation; or a custom library, in which case the library name is  invocation; or a custom library, in which case the library name is
 printed in quotes.  printed in quotes.
Line 2078  section as described in
Line 2137  section as described in
 .Sx MANUAL STRUCTURE .  .Sx MANUAL STRUCTURE .
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Lb libz  .Dl \&.Lb libz
 .D1 \&.Lb mdoc  .Dl \&.Lb mdoc
 .Ss \&Li  .Ss \&Li
 Denotes text that should be in a literal font mode.  Denotes text that should be in a literal font mode.
 Note that this is a presentation term and should not be used for  Note that this is a presentation term and should not be used for
Line 2094  and
Line 2153  and
 Format a hyperlink.  Format a hyperlink.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Lk Cm uri Op Cm name  .D1 Pf \. Sx \&Lk Ar uri Op Ar name
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Lk http://bsd.lv \*qThe BSD.lv Project\*q  .Dl \&.Lk http://bsd.lv \*qThe BSD.lv Project\*q
 .D1 \&.Lk http://bsd.lv  .Dl \&.Lk http://bsd.lv
 .Pp  .Pp
 See also  See also
 .Sx \&Mt .  .Sx \&Mt .
Line 2109  Synonym for
Line 2168  Synonym for
 Display a mathematical symbol.  Display a mathematical symbol.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Ms Cm symbol  .D1 Pf \. Sx \&Ms Ar symbol
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Ms sigma  .Dl \&.Ms sigma
 .D1 \&.Ms aleph  .Dl \&.Ms aleph
 .Ss \&Mt  .Ss \&Mt
 Format a  Format a
 .Dq mailto:  .Dq mailto:
 hyperlink.  hyperlink.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Mt Cm address  .D1 Pf \. Sx \&Mt Ar address
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Mt discuss@manpages.bsd.lv  .Dl \&.Mt discuss@manpages.bsd.lv
 .Ss \&Nd  .Ss \&Nd
 A one line description of the manual's content.  A one line description of the manual's content.
 This may only be invoked in the  This may only be invoked in the
Line 2133  section subsequent the
Line 2192  section subsequent the
 macro.  macro.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Sx \&Nd mdoc language reference  .Dl \&.Sx \&Nd mdoc language reference
 .D1 \&.Sx \&Nd format and display UNIX manuals  .Dl \&.Sx \&Nd format and display UNIX manuals
 .Pp  .Pp
 The  The
 .Sx \&Nd  .Sx \&Nd
Line 2191  A
Line 2250  A
 macro used to terminate prior macro contexts.  macro used to terminate prior macro contexts.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Sx \&Fl ab \&No cd \&Fl ef  .Dl \&.Sx \&Fl ab \&No cd \&Fl ef
 .Ss \&Ns  .Ss \&Ns
 Suppress a space.  Suppress a space.
 Following invocation, text is interpreted as free-form text until a  Following invocation, text is interpreted as free-form text until a
 macro is encountered.  macro is encountered.
 .Pp  .Pp
   This has no effect when invoked at the start of a macro line.
   .Pp
 Examples:  Examples:
 .D1 \&.Fl o \&Ns \&Ar output  .Dl \&.Fl o \&Ns \&Ar output
 .Pp  .Pp
 See also  See also
 .Sx \&No  .Sx \&No
Line 2211  version provided as an argument, or a default value if
Line 2272  version provided as an argument, or a default value if
 no argument is provided.  no argument is provided.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Nx 5.01  .Dl \&.Nx 5.01
 .D1 \&.Nx  .Dl \&.Nx
 .Pp  .Pp
 See also  See also
 .Sx \&At ,  .Sx \&At ,
Line 2243  Used when listing options to command-line utilities.
Line 2304  Used when listing options to command-line utilities.
 Prints the argument(s) in brackets.  Prints the argument(s) in brackets.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Op \&Fl a \&Ar b  .Dl \&.Op \&Fl a \&Ar b
 .D1 \&.Op \&Ar a | b  .Dl \&.Op \&Ar a | b
 .Pp  .Pp
 See also  See also
 .Sx \&Oo .  .Sx \&Oo .
Line 2256  any
Line 2317  any
 file.  file.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Os Op Cm system Op Cm version  .D1 Pf \. Sx \&Os Op Ar system Op Ar version
 .Pp  .Pp
 The optional  The optional
 .Cm system  .Ar system
 parameter specifies the relevant operating system or environment.  parameter specifies the relevant operating system or environment.
 Left unspecified, it defaults to the local operating system version.  Left unspecified, it defaults to the local operating system version.
 This is the suggested form.  This is the suggested form.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Os  .Dl \&.Os
 .D1 \&.Os KTH/CSC/TCS  .Dl \&.Os KTH/CSC/TCS
 .D1 \&.Os BSD 4.3  .Dl \&.Os BSD 4.3
 .Pp  .Pp
 See also  See also
 .Sx \&Dd  .Sx \&Dd
Line 2285  version provided as an argument, or a default value
Line 2346  version provided as an argument, or a default value
 if no argument is provided.  if no argument is provided.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Ox 4.5  .Dl \&.Ox 4.5
 .D1 \&.Ox  .Dl \&.Ox
 .Pp  .Pp
 See also  See also
 .Sx \&At ,  .Sx \&At ,
Line 2299  and
Line 2360  and
 .Sx \&Ux .  .Sx \&Ux .
 .Ss \&Pa  .Ss \&Pa
 A file-system path.  A file-system path.
   If an argument is not provided, the string
   .Dq \(ti
   is used as a default.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Pa /usr/bin/mandoc  .Dl \&.Pa /usr/bin/mandoc
 .D1 \&.Pa /usr/share/man/man7/mdoc.7  .Dl \&.Pa /usr/share/man/man7/mdoc.7
 .Pp  .Pp
 See also  See also
 .Sx \&Lk .  .Sx \&Lk .
Line 2315  Removes the space
Line 2379  Removes the space
 between its arguments.  between its arguments.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. \&Pf Cm prefix suffix  .D1 Pf \. \&Pf Ar prefix suffix
 .Pp  .Pp
 The  The
 .Cm suffix  .Ar suffix
 argument may be a macro.  argument may be a macro.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Pf \e. \&Sx \&Pf \&Cm prefix suffix  .Dl \&.Pf \e. \&Sx \&Pf \&Ar prefix suffix
 .Ss \&Po  .Ss \&Po
 Multi-line version of  Multi-line version of
 .Sx \&Pq .  .Sx \&Pq .
Line 2405  block is used within a SEE ALSO section, a vertical sp
Line 2469  block is used within a SEE ALSO section, a vertical sp
 before the rendered output, else the block continues on the current  before the rendered output, else the block continues on the current
 line.  line.
 .Ss \&Rv  .Ss \&Rv
 Inserts text regarding a function call's return value.  Insert a standard sentence regarding a system call's return value of 0
 This macro must consist of the  on success and \-1 on error, with the
 .Fl std  .Va errno
 argument followed by an optional  libc global variable set on error.
 .Ar function .  Its syntax is as follows:
   .Pp
   .D1 Pf \. Sx \&Rv Fl std Op Ar function...
   .Pp
 If  If
 .Ar function  .Ar function
 is not provided, the document's name as stipulated by the first  is not specified, the document's name set by
 .Sx \&Nm  .Sx \&Nm
 is provided.  is used.
   Multiple
   .Ar function
   arguments are treated as separate functions.
 .Pp  .Pp
 See also  See also
 .Sx \&Ex .  .Sx \&Ex .
Line 2443  Its syntax is as follows:
Line 2513  Its syntax is as follows:
 .D1 Pf \. Sx \&Sm Cm on | off  .D1 Pf \. Sx \&Sm Cm on | off
 .Pp  .Pp
 By default, spacing is  By default, spacing is
 .Cm on .  .Ar on .
 When switched  When switched
 .Cm off ,  .Ar off ,
 no white space is inserted between macro arguments and between the  no white space is inserted between macro arguments and between the
 output generated from adjacent macros, but free-form text lines  output generated from adjacent macros, but text lines
 still get normal spacing between words and sentences.  still get normal spacing between words and sentences.
 .Ss \&So  .Ss \&So
 Multi-line version of  Multi-line version of
Line 2582  The referenced section or sub-section name must be ide
Line 2652  The referenced section or sub-section name must be ide
 enclosed argument, including whitespace.  enclosed argument, including whitespace.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Sx MANUAL STRUCTURE  .Dl \&.Sx MANUAL STRUCTURE
   .Pp
   See also
   .Sx \&Sh
   and
   .Sx \&Ss .
 .Ss \&Sy  .Ss \&Sy
 Format enclosed arguments in symbolic  Format enclosed arguments in symbolic
 .Pq Dq boldface .  .Pq Dq boldface .
Line 2594  See also
Line 2669  See also
 .Sx \&Li ,  .Sx \&Li ,
 and  and
 .Sx \&Em .  .Sx \&Em .
   .Ss \&Ta
   Table cell separator in
   .Sx \&Bl Fl column
   lists; can only be used below
   .Sx \&It .
 .Ss \&Tn  .Ss \&Tn
 Format a tradename.  Format a tradename.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Tn IBM  .Dl \&.Tn IBM
 .Ss \&Ud  .Ss \&Ud
 Prints out  Prints out
 .Dq currently under development .  .Dq currently under development .
Line 2607  Format the UNIX name.
Line 2687  Format the UNIX name.
 Accepts no argument.  Accepts no argument.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Ux  .Dl \&.Ux
 .Pp  .Pp
 See also  See also
 .Sx \&At ,  .Sx \&At ,
Line 2622  and
Line 2702  and
 A variable name.  A variable name.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Va foo  .Dl \&.Va foo
 .D1 \&.Va const char *bar ;  .Dl \&.Va const char *bar ;
 .Ss \&Vt  .Ss \&Vt
 A variable type.  A variable type.
 This is also used for indicating global variables in the  This is also used for indicating global variables in the
Line 2642  Note that this should not be confused with
Line 2722  Note that this should not be confused with
 which is used for function return types.  which is used for function return types.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Vt unsigned char  .Dl \&.Vt unsigned char
 .D1 \&.Vt extern const char * const sys_signame[] \&;  .Dl \&.Vt extern const char * const sys_signame[] \&;
 .Pp  .Pp
 See also  See also
 .Sx MANUAL STRUCTURE  .Sx MANUAL STRUCTURE
Line 2653  and
Line 2733  and
 Close a scope opened by  Close a scope opened by
 .Sx \&Xo .  .Sx \&Xo .
 .Ss \&Xo  .Ss \&Xo
 Open an extension scope.  Extend the header of an
 This macro originally existed to extend the 9-argument limit of troff;  .Sx \&It
 since this limit has been lifted, the macro has been deprecated.  macro or the body of a partial-implicit block macro
   beyond the end of the input line.
   This macro originally existed to work around the 9-argument limit
   of historic
   .Xr roff 7 .
 .Ss \&Xr  .Ss \&Xr
 Link to another manual  Link to another manual
 .Pq Qq cross-reference .  .Pq Qq cross-reference .
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&Xr Cm name section  .D1 Pf \. Sx \&Xr Ar name section
 .Pp  .Pp
 The  The
 .Cm name  .Ar name
 and  and
 .Cm section  .Ar section
 are the name and section of the linked manual.  are the name and section of the linked manual.
 If  If
 .Cm section  .Ar section
 is followed by non-punctuation, an  is followed by non-punctuation, an
 .Sx \&Ns  .Sx \&Ns
 is inserted into the token stream.  is inserted into the token stream.
Line 2677  This behaviour is for compatibility with
Line 2761  This behaviour is for compatibility with
 GNU troff.  GNU troff.
 .Pp  .Pp
 Examples:  Examples:
 .D1 \&.Xr mandoc 1  .Dl \&.Xr mandoc 1
 .D1 \&.Xr mandoc 1 \&;  .Dl \&.Xr mandoc 1 \&;
 .D1 \&.Xr mandoc 1 \&Ns s behaviour  .Dl \&.Xr mandoc 1 \&Ns s behaviour
 .Ss \&br  .Ss \&br
 Emits a line-break.  Emits a line-break.
 This macro should not be used; it is implemented for compatibility with  This macro should not be used; it is implemented for compatibility with
Line 2694  This macro should not be used; it is implemented for c
Line 2778  This macro should not be used; it is implemented for c
 historical manuals.  historical manuals.
 Its syntax is as follows:  Its syntax is as follows:
 .Pp  .Pp
 .D1 Pf \. Sx \&sp Op Cm height  .D1 Pf \. Sx \&sp Op Ar height
 .Pp  .Pp
 The  The
 .Cm height  .Ar height
 argument must be formatted as described in  argument must be formatted as described in
 .Sx Scaling Widths .  .Sx Scaling Widths .
 If unspecified,  If unspecified,
Line 2709  troff implementations, at this time limited to GNU tro
Line 2793  troff implementations, at this time limited to GNU tro
 .Pq Qq groff .  .Pq Qq groff .
 The term  The term
 .Qq historic groff  .Qq historic groff
 refers to groff versions before the  refers to groff versions before 1.17,
   which featured a significant update of the
 .Pa doc.tmac  .Pa doc.tmac
 file re-write  file.
 .Pq somewhere between 1.15 and 1.19 .  
 .Pp  .Pp
 Heirloom troff, the other significant troff implementation accepting  Heirloom troff, the other significant troff implementation accepting
 \-mdoc, is similar to historic groff.  \-mdoc, is similar to historic groff.
Line 2722  The following problematic behaviour is found in groff:
Line 2806  The following problematic behaviour is found in groff:
 .Pp  .Pp
 .Bl -dash -compact  .Bl -dash -compact
 .It  .It
   Display macros
   .Po
   .Sx \&Bd ,
   .Sx \&Dl ,
   and
   .Sx \&D1
   .Pc
   may not be nested.
   \*[hist]
   .It
 .Sx \&At  .Sx \&At
 with unknown arguments produces no output at all.  with unknown arguments produces no output at all.
 \*[hist]  \*[hist]
Line 2729  Newer groff and mandoc print
Line 2823  Newer groff and mandoc print
 .Qq AT&T UNIX  .Qq AT&T UNIX
 and the arguments.  and the arguments.
 .It  .It
 .Sx \&Bd Fl column  .Sx \&Bl Fl column
 does not recognize trailing punctuation characters when they immediately  does not recognize trailing punctuation characters when they immediately
 precede tabulator characters, but treats them as normal text and  precede tabulator characters, but treats them as normal text and
 outputs a space before them.  outputs a space before them.
Line 2739  does not start a new line.
Line 2833  does not start a new line.
 \*[hist]  \*[hist]
 .It  .It
 .Sx \&Dd  .Sx \&Dd
 without an argument prints  with non-standard arguments behaves very strangely.
 .Dq Epoch .  When there are three arguments, they are printed verbatim.
 In mandoc, it resolves to the current date.  Any other number of arguments is replaced by the current date,
   but without any arguments the string
   .Dq Epoch
   is printed.
 .It  .It
 .Sx \&Fl  .Sx \&Fl
 does not print a dash for an empty argument.  does not print a dash for an empty argument.
Line 2803  can only be called by other macros, but not at the beg
Line 2900  can only be called by other macros, but not at the beg
 .Sx \&%C  .Sx \&%C
 is not implemented.  is not implemented.
 .It  .It
   Historic groff only allows up to eight or nine arguments per macro input
   line, depending on the exact situation.
   Providing more arguments causes garbled output.
   The number of arguments on one input line is not limited with mandoc.
   .It
 Historic groff has many un-callable macros.  Historic groff has many un-callable macros.
 Most of these (excluding some block-level macros) are callable  Most of these (excluding some block-level macros) are callable
 in new groff and mandoc.  in new groff and mandoc.
Line 2868  standalone double-quote in formatted output.
Line 2970  standalone double-quote in formatted output.
 This is not supported by mandoc.  This is not supported by mandoc.
 .El  .El
 .Sh SEE ALSO  .Sh SEE ALSO
   .Xr man 1 ,
 .Xr mandoc 1 ,  .Xr mandoc 1 ,
   .Xr eqn 7 ,
   .Xr man 7 ,
 .Xr mandoc_char 7  .Xr mandoc_char 7
   .Xr roff 7 ,
   .Xr tbl 7
 .Sh HISTORY  .Sh HISTORY
 The  The
 .Nm  .Nm

Legend:
Removed from v.1.157  
changed lines
  Added in v.1.192

CVSweb