summaryrefslogtreecommitdiffstats
path: root/tmac/mdoc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:44:05 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:44:05 +0000
commitd318611dd6f23fcfedd50e9b9e24620b102ba96a (patch)
tree8b9eef82ca40fdd5a8deeabf07572074c236095d /tmac/mdoc
parentInitial commit. (diff)
downloadgroff-upstream/1.23.0.tar.xz
groff-upstream/1.23.0.zip
Adding upstream version 1.23.0.upstream/1.23.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tmac/mdoc')
-rw-r--r--tmac/mdoc/doc-common1729
-rw-r--r--tmac/mdoc/doc-ditroff287
-rw-r--r--tmac/mdoc/doc-nroff229
-rw-r--r--tmac/mdoc/doc-syms908
4 files changed, 3153 insertions, 0 deletions
diff --git a/tmac/mdoc/doc-common b/tmac/mdoc/doc-common
new file mode 100644
index 0000000..53a2565
--- /dev/null
+++ b/tmac/mdoc/doc-common
@@ -0,0 +1,1729 @@
+.\" Copyright (c) 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
+.\" 4. Neither the name of the University nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS"
+.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+.\" PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+.\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)doc-common 8.1 (Berkeley) 06/08/93
+.
+.
+.\" Macro Identifiers. For each user macro a corresponding register
+.\" with the same name must exist. Its value must not be zero.
+.
+.nr %A 1
+.nr %B 1
+.nr %C 1
+.nr %D 1
+.nr %I 1
+.nr %J 1
+.nr %N 1
+.nr %O 1
+.nr %P 1
+.nr %Q 1
+.nr %R 1
+.nr %T 1
+.nr %U 1
+.nr %V 1
+.nr Ac 3
+.nr Ad 12n
+.nr An 12n
+.nr Ao 12n
+.nr Ap 2
+.nr Aq 12n
+.nr Ar 12n
+.nr At 1
+.nr Bc 3
+.nr Bf 8n\" ?
+.nr Bk 8n\" ?
+.nr Bl 1
+.nr Bo 12n
+.nr Bq 12n
+.nr Brc 3
+.nr Bro 12n
+.nr Brq 12n
+.nr Bsx 1
+.nr Bt 8n\" ?
+.nr Bx 1
+.nr Cd 12n
+.nr Cm 10n
+.nr D1 8n\" ?
+.nr Dc 3
+.nr Dl 8n\" ?
+.nr Dt 8n\" ?
+.nr Do 12n
+.nr Dq 12n
+.nr Ds 6n\" many manpages still use this as a -width value
+.nr Dv 12n
+.nr Dx 1
+.nr Ec 3
+.nr Ef 8n\" ?
+.nr Ek 8n\" ?
+.nr El 1
+.nr Em 10n
+.nr En 12n
+.nr Eo 12n
+.nr Eq 12n
+.nr Er 17n
+.nr Es 12n
+.nr Ev 15n
+.nr Ex 1
+.nr Fa 12n
+.nr Fc 3
+.nr Fd 12n\" ?
+.nr Fl 10n
+.nr Fn 16n
+.nr Fo 16n
+.nr Fr 12n\" ?
+.nr Ft 8n\" ?
+.nr Fx 1
+.nr Ic 10n
+.nr In 12n
+.nr It 8n\" ?
+.nr Lb 11n
+.nr Li 16n
+.nr Lk 6n\" ?
+.nr Lp 8n\" ?
+.nr Me 6n
+.nr Ms 6n
+.nr Mt 6n\" ?
+.nr Nd 8n\" ?
+.nr Nm 10n
+.nr No 12n
+.nr Ns 2
+.nr Nx 1
+.nr Oc 3
+.nr Oo 10n
+.nr Op 14n
+.nr Os 6n\" ?
+.nr Ox 1
+.nr Pa 32n
+.nr Pc 3
+.nr Pf 12n
+.nr Po 12n
+.nr Pp 8n\" ?
+.nr Pq 12n
+.nr Qc 3
+.nr Ql 16n
+.nr Qo 12n
+.nr Qq 12n
+.nr Rv 1
+.nr Sc 3
+.nr Sh 8n
+.nr Sm 8n\" ?
+.nr So 12n
+.nr Sq 12n
+.nr Ss 8n
+.nr St 8n\" ?
+.nr Sx 16n
+.nr Sy 6n
+.nr Ta 2
+.nr Tn 10n
+.nr Ud 8n\" ?
+.nr Ux 1
+.nr Va 12n
+.nr Vt 8n\" ?
+.nr Xc 3
+.nr Xo 1
+.nr Xr 10n
+.
+.
+.\" macros which must be processed after the closing delimiter of 'Op'
+.\" and friends
+.ds doc-after-Ao
+.ds doc-after-Bo
+.ds doc-after-Bro
+.ds doc-after-Do
+.ds doc-after-Eo
+.ds doc-after-Fo
+.ds doc-after-Ns
+.ds doc-after-Oo
+.ds doc-after-Po
+.ds doc-after-Qo
+.ds doc-after-So
+.ds doc-after-Xo
+.
+.
+.nr doc-display-indent 6n
+.
+.
+.\" space strings
+.
+.ds doc-soft-space " \"
+.ds doc-hard-space \~
+.ds doc-tab \t
+.
+.
+.\" punctuation values (suffix=3, prefix=4)
+.
+.nr doc-punct. 3
+.nr doc-punct, 3
+.nr doc-punct: 3
+.nr doc-punct; 3
+.nr doc-punct( 4
+.nr doc-punct) 3
+.nr doc-punct[ 4
+.nr doc-punct] 3
+.nr doc-punct? 3
+.nr doc-punct! 3
+.
+.
+.\" Define alternate requests to handle continuous rendering.
+.\"
+.\" This .ne replacement avoids page breaks; instead, the page length is
+.\" increased to the necessary amount (this is needed for tables).
+.
+.eo
+.de doc-ne
+. ie \n[.$] .nr doc-amount (v;\$*)
+. el .nr doc-amount 1v
+. if (\n[doc-amount] >= \n[.t]) \
+. pl +(\n[doc-amount]u - \n[.t]u + 1v)
+. rr doc-amount
+..
+.ec
+.
+.\" This .bp replacement for continuous rendering mode adjusts the page
+.\" length to the current position so that no empty lines are inserted.
+.
+.eo
+.de doc-bp
+. pl \n[nl]u
+..
+.ec
+.
+.
+.\" NS doc-set-up-continuous-rendering
+.\" Move macros into place for continuous rendering. An end-of-input
+.\" macro is set up by doc-set-up-titles.
+.de doc-set-up-continuous-rendering
+. rn ne doc-real-ne
+. rn bp doc-real-bp
+. rn doc-ne ne
+. rn doc-bp bp
+..
+.
+.if \n[cR] \
+. doc-set-up-continuous-rendering
+.
+.
+.\" header assembly macros
+.
+.\" NS doc-page-topic global string
+.\" NS the title of the manual page
+.
+.ds doc-page-topic UNTITLED\"
+.
+.
+.\" NS doc-volume global string
+.\" NS the volume to which the manual page belongs
+.
+.ds doc-volume LOCAL\"
+.
+.
+.\" NS doc-section global string
+.\" NS the manual section (1, 2, 3, ..., 3perl, 9)
+.
+.ds doc-section \" empty
+.
+.
+.\" NS doc-set-up-titles macro
+.\" NS install and initialize header and footer support
+.\" NS
+.\" NS local variables:
+.\" NS doc-footer-location
+.
+.eo
+.de doc-set-up-titles
+. br
+.
+. if !\n[cR] \{\
+. wh 0 doc-header
+. ie r FT .nr doc-footer-location \n[FT]
+. el .nr doc-footer-location (-.5i)
+. wh \n[doc-footer-location]u doc-footer
+. wh (\n[doc-footer-location]u - .5i) doc-break-body-text
+. rr doc-footer-location
+. \}
+.
+. e@ doc-end-macro
+..
+.ec
+.
+.
+.\" NS doc-date-string global string
+.\" NS the manual page date as set by 'Dd'
+.
+.ds doc-date-string UNDATED\"
+.
+.
+.\" NS Dd user macro (not parsed, not callable)
+.\" NS set document date
+.\" NS
+.\" NS modifies:
+.\" NS doc-date-string
+.\" NS
+.\" NS width register 'Dd' set above
+.
+.eo
+.de Dd
+. \" If batch processing (rendering multiple) man page documents, we
+. \" must handle the end of a previous document.
+. \"
+. \" If also continuously rendering, cause a page transition to a new
+. \" mdoc(7) document.
+. if \n[doc-need-titles-reset] \{\
+. if \n[cR] .doc-end-macro
+.
+. \" Clear the page header trap so it is not sprung with stale
+. \" information.
+. ch doc-header
+. doc-break-page-with-new-number
+. \}
+. if \n[C] .rr P
+.
+. if !\n[.$] \
+. tm mdoc warning: .Dd directive expects an argument (#\n[.c])
+. if \n[.$] \{\
+. ie "\$1"$Mdocdate:" .ds doc-date-string \$2\~\$3, \$4\"
+. el .ds doc-date-string \$*\"
+. \}
+..
+.ec
+.
+.
+.\" NS Dt user macro (not parsed, not callable)
+.\" NS document title
+.\" NS
+.\" NS modifies:
+.\" NS doc-page-topic
+.\" NS doc-section
+.\" NS doc-volume
+.\" NS
+.\" NS local variables:
+.\" NS doc-volume-as-XXX
+.\" NS doc-volume-ds-XXX
+.\" NS
+.\" NS width register 'Dt' set above
+.
+.\" an alternative, more detailed scheme for naming the manual sections
+.\"
+.ds doc-volume-ds-1 General Commands Manual
+.ds doc-volume-ds-2 System Calls Manual
+.ds doc-volume-ds-3 Library Functions Manual
+.ds doc-volume-ds-4 Kernel Interfaces Manual
+.ds doc-volume-ds-5 File Formats Manual
+.ds doc-volume-ds-6 Games Manual
+.ds doc-volume-ds-7 Miscellaneous Information Manual
+.ds doc-volume-ds-8 System Manager's Manual
+.ds doc-volume-ds-9 Kernel Developer's Manual
+.
+.ds doc-volume-ds-USD User's Supplementary Documents
+.ds doc-volume-ds-PS1 Programmer's Supplementary Documents
+.ds doc-volume-ds-AMD Ancestral Manual Documents
+.ds doc-volume-ds-SMM System Manager's Manual
+.ds doc-volume-ds-URM User's Reference Manual
+.ds doc-volume-ds-PRM Programmer's Manual
+.ds doc-volume-ds-KM Kernel Manual
+.ds doc-volume-ds-IND Manual Master Index
+.ds doc-volume-ds-LOCAL Local Manual
+.ds doc-volume-ds-CON Contributed Software Manual
+.
+.als doc-volume-ds-MMI doc-volume-ds-IND
+.als doc-volume-ds-LOC doc-volume-ds-LOCAL
+.
+.ds doc-volume-as-alpha alpha
+.als doc-volume-as-Alpha doc-volume-as-alpha
+.ds doc-volume-as-acorn26 acorn26
+.ds doc-volume-as-acorn32 acorn32
+.ds doc-volume-as-algor algor
+.ds doc-volume-as-amd64 amd64
+.ds doc-volume-as-amiga amiga
+.ds doc-volume-as-amigappc amigappc
+.ds doc-volume-as-arc arc
+.ds doc-volume-as-arm arm
+.ds doc-volume-as-arm26 arm26
+.ds doc-volume-as-arm32 arm32
+.ds doc-volume-as-armish armish
+.ds doc-volume-as-atari atari
+.ds doc-volume-as-aviion aviion
+.ds doc-volume-as-beagle beagle
+.ds doc-volume-as-bebox bebox
+.ds doc-volume-as-cats cats
+.ds doc-volume-as-cesfic cesfic
+.ds doc-volume-as-cobalt cobalt
+.ds doc-volume-as-dreamcast dreamcast
+.ds doc-volume-as-emips emips
+.ds doc-volume-as-evbarm evbarm
+.ds doc-volume-as-evbmips evbmips
+.ds doc-volume-as-evbppc evbppc
+.ds doc-volume-as-evbsh3 evbsh3
+.ds doc-volume-as-ews4800mips ews4800mips
+.ds doc-volume-as-hp300 hp300
+.ds doc-volume-as-hp700 hp700
+.ds doc-volume-as-hpcarm hpcarm
+.ds doc-volume-as-hpcmips hpcmips
+.ds doc-volume-as-hpcsh hpcsh
+.ds doc-volume-as-hppa hppa
+.ds doc-volume-as-hppa64 hppa64
+.ds doc-volume-as-i386 i386
+.ds doc-volume-as-ia64 ia64
+.ds doc-volume-as-ibmnws ibmnws
+.ds doc-volume-as-iyonix iyonix
+.ds doc-volume-as-landisk landisk
+.ds doc-volume-as-loongson loongson
+.ds doc-volume-as-luna68k luna68k
+.ds doc-volume-as-luna88k luna88k
+.ds doc-volume-as-m68k m68k
+.ds doc-volume-as-mac68k mac68k
+.ds doc-volume-as-macppc macppc
+.ds doc-volume-as-mips mips
+.ds doc-volume-as-mips64 mips64
+.ds doc-volume-as-mipsco mipsco
+.ds doc-volume-as-mmeye mmeye
+.ds doc-volume-as-mvme68k mvme68k
+.ds doc-volume-as-mvme88k mvme88k
+.ds doc-volume-as-mvmeppc mvmeppc
+.ds doc-volume-as-netwinder netwinder
+.ds doc-volume-as-news68k news68k
+.ds doc-volume-as-newsmips newsmips
+.ds doc-volume-as-next68k next68k
+.ds doc-volume-as-ofppc ofppc
+.ds doc-volume-as-palm palm
+.ds doc-volume-as-pc532 pc532
+.ds doc-volume-as-playstation2 playstation2
+.ds doc-volume-as-pmax pmax
+.ds doc-volume-as-pmppc pmppc
+.ds doc-volume-as-powerpc powerpc
+.ds doc-volume-as-prep prep
+.ds doc-volume-as-rs6000 rs6000
+.ds doc-volume-as-sandpoint sandpoint
+.ds doc-volume-as-sbmips sbmips
+.ds doc-volume-as-sgi sgi
+.ds doc-volume-as-sgimips sgimips
+.ds doc-volume-as-sh3 sh3
+.ds doc-volume-as-shark shark
+.ds doc-volume-as-socppc socppc
+.ds doc-volume-as-solbourne solbourne
+.ds doc-volume-as-sparc sparc
+.ds doc-volume-as-sparc64 sparc64
+.ds doc-volume-as-sun2 sun2
+.ds doc-volume-as-sun3 sun3
+.ds doc-volume-as-tahoe tahoe
+.ds doc-volume-as-vax vax
+.ds doc-volume-as-x68k x68k
+.ds doc-volume-as-x86_64 x86_64
+.ds doc-volume-as-xen xen
+.ds doc-volume-as-zaurus zaurus
+.
+.eo
+.de Dt
+. if !\n[.$] \
+. tm mdoc warning: .Dt directive expects one or more arguments \
+(#\n[.c])
+. if !"\$1"" \
+. ds doc-page-topic "\$1
+.
+. if \n[CT] \
+. stringup doc-page-topic
+.
+. if !"\$2"" \{\
+. ds doc-section \$2
+. ie \B'\$2' \{\
+. if ((\$2 >= 1) & (\$2 <= 9)) \{\
+. ds doc-volume \" empty (not "LOCAL")
+. if \A'\$3' \{\
+. if d doc-volume-as-\$3 \
+. as doc-volume "\*[doc-volume-as-\$3]
+. \}
+. as doc-volume " \*[doc-volume-ds-\$2]
+. \}
+. \}
+. el \{\
+. ie "\$2"unass" \
+. ds doc-volume DRAFT
+. el \{ .ie "\$2"draft" \
+. ds doc-volume DRAFT
+. el .if "\$2"paper" \
+. ds doc-volume UNTITLED
+. \}
+. \}
+. if \A'\$3' \{\
+. if d doc-volume-ds-\$3 \
+. ds doc-volume "\*[doc-volume-ds-\$3]
+. \}
+. \}
+.
+. if !"\$3"" \
+. if "\*[doc-volume]"LOCAL" \
+. ds doc-volume \$3
+..
+.ec
+.
+.
+.\" NS doc-default-operating-system global string
+.\" NS the default OS to associate with man pages
+.\" NS
+.\" NS override this in 'mdoc.local', if necessary
+.
+.ds doc-default-operating-system GNU\"
+.
+.
+.\" NS doc-operating-system global string
+.\" NS the OS or software project associated with the man page
+.
+.ds doc-operating-system \" empty
+.
+.
+.\" NS Os user macro (not parsed, not callable)
+.\" NS operating system
+.\" NS
+.\" NS modifies:
+.\" NS doc-operating-system
+.\" NS
+.\" NS local variables:
+.\" NS doc-operating-system-XXX-XXX
+.\" NS
+.\" NS width register 'Os' set above
+.
+.ds doc-operating-system-ATT-7 7th\~Edition
+.als doc-operating-system-ATT-7th doc-operating-system-ATT-7
+.ds doc-operating-system-ATT-3 System\~III
+.als doc-operating-system-ATT-III doc-operating-system-ATT-3
+.ds doc-operating-system-ATT-V System\~V
+.ds doc-operating-system-ATT-V.2 System\~V Release\~2
+.ds doc-operating-system-ATT-V.3 System\~V Release\~3
+.ds doc-operating-system-ATT-V.4 System\~V Release\~4
+.
+.ds doc-operating-system-BSD-3 3rd\~Berkeley Distribution
+.ds doc-operating-system-BSD-4 4th\~Berkeley Distribution
+.ds doc-operating-system-BSD-4.1 4.1\~Berkeley Distribution
+.ds doc-operating-system-BSD-4.2 4.2\~Berkeley Distribution
+.ds doc-operating-system-BSD-4.3 4.3\~Berkeley Distribution
+.ds doc-operating-system-BSD-4.3T 4.3-Tahoe Berkeley Distribution
+.ds doc-operating-system-BSD-4.3R 4.3-Reno Berkeley Distribution
+.als doc-operating-system-BSD-4.3t doc-operating-system-BSD-4.3T
+.als doc-operating-system-BSD-4.3r doc-operating-system-BSD-4.3R
+.ds doc-operating-system-BSD-4.4 4.4BSD
+.
+.ds doc-operating-system-NetBSD-0.8 0.8
+.ds doc-operating-system-NetBSD-0.8a 0.8A
+.ds doc-operating-system-NetBSD-0.9 0.9
+.ds doc-operating-system-NetBSD-0.9a 0.9A
+.ds doc-operating-system-NetBSD-1.0 1.0
+.ds doc-operating-system-NetBSD-1.0a 1.0A
+.ds doc-operating-system-NetBSD-1.1 1.1
+.ds doc-operating-system-NetBSD-1.2 1.2
+.ds doc-operating-system-NetBSD-1.2a 1.2A
+.ds doc-operating-system-NetBSD-1.2b 1.2B
+.ds doc-operating-system-NetBSD-1.2c 1.2C
+.ds doc-operating-system-NetBSD-1.2d 1.2D
+.ds doc-operating-system-NetBSD-1.2e 1.2E
+.ds doc-operating-system-NetBSD-1.3 1.3
+.ds doc-operating-system-NetBSD-1.3a 1.3A
+.ds doc-operating-system-NetBSD-1.4 1.4
+.ds doc-operating-system-NetBSD-1.4.1 1.4.1
+.ds doc-operating-system-NetBSD-1.4.2 1.4.2
+.ds doc-operating-system-NetBSD-1.4.3 1.4.3
+.ds doc-operating-system-NetBSD-1.5 1.5
+.ds doc-operating-system-NetBSD-1.5.1 1.5.1
+.ds doc-operating-system-NetBSD-1.5.2 1.5.2
+.ds doc-operating-system-NetBSD-1.5.3 1.5.3
+.ds doc-operating-system-NetBSD-1.6 1.6
+.ds doc-operating-system-NetBSD-1.6.1 1.6.1
+.ds doc-operating-system-NetBSD-1.6.2 1.6.2
+.ds doc-operating-system-NetBSD-1.6.3 1.6.3
+.ds doc-operating-system-NetBSD-2.0 2.0
+.ds doc-operating-system-NetBSD-2.0.1 2.0.1
+.ds doc-operating-system-NetBSD-2.0.2 2.0.2
+.ds doc-operating-system-NetBSD-2.0.3 2.0.3
+.ds doc-operating-system-NetBSD-2.1 2.1
+.ds doc-operating-system-NetBSD-3.0 3.0
+.ds doc-operating-system-NetBSD-3.0.1 3.0.1
+.ds doc-operating-system-NetBSD-3.0.2 3.0.2
+.ds doc-operating-system-NetBSD-3.0.3 3.0.3
+.ds doc-operating-system-NetBSD-3.1 3.1
+.ds doc-operating-system-NetBSD-3.1.1 3.1.1
+.ds doc-operating-system-NetBSD-4.0 4.0
+.ds doc-operating-system-NetBSD-4.0.1 4.0.1
+.ds doc-operating-system-NetBSD-5.0 5.0
+.ds doc-operating-system-NetBSD-5.0.1 5.0.1
+.ds doc-operating-system-NetBSD-5.0.2 5.0.2
+.ds doc-operating-system-NetBSD-5.1 5.1
+.ds doc-operating-system-NetBSD-5.1.2 5.1.2
+.ds doc-operating-system-NetBSD-5.1.3 5.1.3
+.ds doc-operating-system-NetBSD-5.1.4 5.1.4
+.ds doc-operating-system-NetBSD-5.2 5.2
+.ds doc-operating-system-NetBSD-5.2.1 5.2.1
+.ds doc-operating-system-NetBSD-5.2.2 5.2.2
+.ds doc-operating-system-NetBSD-6.0 6.0
+.ds doc-operating-system-NetBSD-6.0.1 6.0.1
+.ds doc-operating-system-NetBSD-6.0.2 6.0.2
+.ds doc-operating-system-NetBSD-6.0.3 6.0.3
+.ds doc-operating-system-NetBSD-6.0.4 6.0.4
+.ds doc-operating-system-NetBSD-6.0.5 6.0.5
+.ds doc-operating-system-NetBSD-6.0.6 6.0.6
+.ds doc-operating-system-NetBSD-6.1 6.1
+.ds doc-operating-system-NetBSD-6.1.1 6.1.1
+.ds doc-operating-system-NetBSD-6.1.2 6.1.2
+.ds doc-operating-system-NetBSD-6.1.3 6.1.3
+.ds doc-operating-system-NetBSD-6.1.4 6.1.4
+.ds doc-operating-system-NetBSD-6.1.5 6.1.5
+.ds doc-operating-system-NetBSD-7.0 7.0
+.ds doc-operating-system-NetBSD-7.0.1 7.0.1
+.ds doc-operating-system-NetBSD-7.0.2 7.0.2
+.ds doc-operating-system-NetBSD-7.1 7.1
+.ds doc-operating-system-NetBSD-7.1.1 7.1.1
+.ds doc-operating-system-NetBSD-7.1.2 7.1.2
+.ds doc-operating-system-NetBSD-7.2 7.2
+.ds doc-operating-system-NetBSD-8.0 8.0
+.ds doc-operating-system-NetBSD-8.1 8.1
+.
+.ds doc-operating-system-OpenBSD-2.0 2.0
+.ds doc-operating-system-OpenBSD-2.1 2.1
+.ds doc-operating-system-OpenBSD-2.2 2.2
+.ds doc-operating-system-OpenBSD-2.3 2.3
+.ds doc-operating-system-OpenBSD-2.4 2.4
+.ds doc-operating-system-OpenBSD-2.5 2.5
+.ds doc-operating-system-OpenBSD-2.6 2.6
+.ds doc-operating-system-OpenBSD-2.7 2.7
+.ds doc-operating-system-OpenBSD-2.8 2.8
+.ds doc-operating-system-OpenBSD-2.9 2.9
+.ds doc-operating-system-OpenBSD-3.0 3.0
+.ds doc-operating-system-OpenBSD-3.1 3.1
+.ds doc-operating-system-OpenBSD-3.2 3.2
+.ds doc-operating-system-OpenBSD-3.3 3.3
+.ds doc-operating-system-OpenBSD-3.4 3.4
+.ds doc-operating-system-OpenBSD-3.5 3.5
+.ds doc-operating-system-OpenBSD-3.6 3.6
+.ds doc-operating-system-OpenBSD-3.7 3.7
+.ds doc-operating-system-OpenBSD-3.8 3.8
+.ds doc-operating-system-OpenBSD-3.9 3.9
+.ds doc-operating-system-OpenBSD-4.0 4.0
+.ds doc-operating-system-OpenBSD-4.1 4.1
+.ds doc-operating-system-OpenBSD-4.2 4.2
+.ds doc-operating-system-OpenBSD-4.3 4.3
+.ds doc-operating-system-OpenBSD-4.4 4.4
+.ds doc-operating-system-OpenBSD-4.5 4.5
+.ds doc-operating-system-OpenBSD-4.6 4.6
+.ds doc-operating-system-OpenBSD-4.7 4.7
+.ds doc-operating-system-OpenBSD-4.8 4.8
+.ds doc-operating-system-OpenBSD-4.9 4.9
+.ds doc-operating-system-OpenBSD-5.0 5.0
+.ds doc-operating-system-OpenBSD-5.1 5.1
+.ds doc-operating-system-OpenBSD-5.2 5.2
+.ds doc-operating-system-OpenBSD-5.3 5.3
+.ds doc-operating-system-OpenBSD-5.4 5.4
+.ds doc-operating-system-OpenBSD-5.5 5.5
+.ds doc-operating-system-OpenBSD-5.6 5.6
+.ds doc-operating-system-OpenBSD-5.7 5.7
+.ds doc-operating-system-OpenBSD-5.8 5.8
+.ds doc-operating-system-OpenBSD-5.9 5.9
+.ds doc-operating-system-OpenBSD-6.0 6.0
+.ds doc-operating-system-OpenBSD-6.1 6.1
+.ds doc-operating-system-OpenBSD-6.2 6.2
+.ds doc-operating-system-OpenBSD-6.3 6.3
+.ds doc-operating-system-OpenBSD-6.4 6.4
+.ds doc-operating-system-OpenBSD-6.5 6.5
+.ds doc-operating-system-OpenBSD-6.6 6.6
+.
+.ds doc-operating-system-FreeBSD-1.0 1.0
+.ds doc-operating-system-FreeBSD-1.1 1.1
+.ds doc-operating-system-FreeBSD-1.1.5 1.1.5
+.ds doc-operating-system-FreeBSD-1.1.5.1 1.1.5.1
+.ds doc-operating-system-FreeBSD-2.0 2.0
+.ds doc-operating-system-FreeBSD-2.0.5 2.0.5
+.ds doc-operating-system-FreeBSD-2.1 2.1
+.ds doc-operating-system-FreeBSD-2.1.5 2.1.5
+.ds doc-operating-system-FreeBSD-2.1.6 2.1.6
+.ds doc-operating-system-FreeBSD-2.1.7 2.1.7
+.ds doc-operating-system-FreeBSD-2.2 2.2
+.ds doc-operating-system-FreeBSD-2.2.1 2.2.1
+.ds doc-operating-system-FreeBSD-2.2.2 2.2.2
+.ds doc-operating-system-FreeBSD-2.2.5 2.2.5
+.ds doc-operating-system-FreeBSD-2.2.6 2.2.6
+.ds doc-operating-system-FreeBSD-2.2.7 2.2.7
+.ds doc-operating-system-FreeBSD-2.2.8 2.2.8
+.ds doc-operating-system-FreeBSD-2.2.9 2.2.9
+.ds doc-operating-system-FreeBSD-3.0 3.0
+.ds doc-operating-system-FreeBSD-3.1 3.1
+.ds doc-operating-system-FreeBSD-3.2 3.2
+.ds doc-operating-system-FreeBSD-3.3 3.3
+.ds doc-operating-system-FreeBSD-3.4 3.4
+.ds doc-operating-system-FreeBSD-3.5 3.5
+.ds doc-operating-system-FreeBSD-4.0 4.0
+.ds doc-operating-system-FreeBSD-4.1 4.1
+.ds doc-operating-system-FreeBSD-4.1.1 4.1.1
+.ds doc-operating-system-FreeBSD-4.2 4.2
+.ds doc-operating-system-FreeBSD-4.3 4.3
+.ds doc-operating-system-FreeBSD-4.4 4.4
+.ds doc-operating-system-FreeBSD-4.5 4.5
+.ds doc-operating-system-FreeBSD-4.6 4.6
+.ds doc-operating-system-FreeBSD-4.6.2 4.6.2
+.ds doc-operating-system-FreeBSD-4.7 4.7
+.ds doc-operating-system-FreeBSD-4.8 4.8
+.ds doc-operating-system-FreeBSD-4.9 4.9
+.ds doc-operating-system-FreeBSD-4.10 4.10
+.ds doc-operating-system-FreeBSD-4.11 4.11
+.ds doc-operating-system-FreeBSD-5.0 5.0
+.ds doc-operating-system-FreeBSD-5.1 5.1
+.ds doc-operating-system-FreeBSD-5.2 5.2
+.ds doc-operating-system-FreeBSD-5.2.1 5.2.1
+.ds doc-operating-system-FreeBSD-5.3 5.3
+.ds doc-operating-system-FreeBSD-5.4 5.4
+.ds doc-operating-system-FreeBSD-5.5 5.5
+.ds doc-operating-system-FreeBSD-6.0 6.0
+.ds doc-operating-system-FreeBSD-6.1 6.1
+.ds doc-operating-system-FreeBSD-6.2 6.2
+.ds doc-operating-system-FreeBSD-6.3 6.3
+.ds doc-operating-system-FreeBSD-6.4 6.4
+.ds doc-operating-system-FreeBSD-7.0 7.0
+.ds doc-operating-system-FreeBSD-7.1 7.1
+.ds doc-operating-system-FreeBSD-7.2 7.2
+.ds doc-operating-system-FreeBSD-7.3 7.3
+.ds doc-operating-system-FreeBSD-7.4 7.4
+.ds doc-operating-system-FreeBSD-8.0 8.0
+.ds doc-operating-system-FreeBSD-8.1 8.1
+.ds doc-operating-system-FreeBSD-8.2 8.2
+.ds doc-operating-system-FreeBSD-8.3 8.3
+.ds doc-operating-system-FreeBSD-8.4 8.4
+.ds doc-operating-system-FreeBSD-9.0 9.0
+.ds doc-operating-system-FreeBSD-9.1 9.1
+.ds doc-operating-system-FreeBSD-9.2 9.2
+.ds doc-operating-system-FreeBSD-9.3 9.3
+.ds doc-operating-system-FreeBSD-10.0 10.0
+.ds doc-operating-system-FreeBSD-10.1 10.1
+.ds doc-operating-system-FreeBSD-10.2 10.2
+.ds doc-operating-system-FreeBSD-10.3 10.3
+.ds doc-operating-system-FreeBSD-10.4 10.4
+.ds doc-operating-system-FreeBSD-11.0 11.0
+.ds doc-operating-system-FreeBSD-11.1 11.1
+.ds doc-operating-system-FreeBSD-11.2 11.2
+.ds doc-operating-system-FreeBSD-11.3 11.3
+.ds doc-operating-system-FreeBSD-12.0 12.0
+.ds doc-operating-system-FreeBSD-12.1 12.1
+.
+.ds doc-operating-system-Darwin-8.0.0 8.0.0
+.ds doc-operating-system-Darwin-8.1.0 8.1.0
+.ds doc-operating-system-Darwin-8.2.0 8.2.0
+.ds doc-operating-system-Darwin-8.3.0 8.3.0
+.ds doc-operating-system-Darwin-8.4.0 8.4.0
+.ds doc-operating-system-Darwin-8.5.0 8.5.0
+.ds doc-operating-system-Darwin-8.6.0 8.6.0
+.ds doc-operating-system-Darwin-8.7.0 8.7.0
+.ds doc-operating-system-Darwin-8.8.0 8.8.0
+.ds doc-operating-system-Darwin-8.9.0 8.9.0
+.ds doc-operating-system-Darwin-8.10.0 8.10.0
+.ds doc-operating-system-Darwin-8.11.0 8.11.0
+.ds doc-operating-system-Darwin-9.0.0 9.0.0
+.ds doc-operating-system-Darwin-9.1.0 9.1.0
+.ds doc-operating-system-Darwin-9.2.0 9.2.0
+.ds doc-operating-system-Darwin-9.3.0 9.3.0
+.ds doc-operating-system-Darwin-9.4.0 9.4.0
+.ds doc-operating-system-Darwin-9.5.0 9.5.0
+.ds doc-operating-system-Darwin-9.6.0 9.6.0
+.ds doc-operating-system-Darwin-9.7.0 9.7.0
+.ds doc-operating-system-Darwin-9.8.0 9.8.0
+.ds doc-operating-system-Darwin-10.0.0 10.0.0
+.ds doc-operating-system-Darwin-10.1.0 10.1.0
+.ds doc-operating-system-Darwin-10.2.0 10.2.0
+.ds doc-operating-system-Darwin-10.3.0 10.3.0
+.ds doc-operating-system-Darwin-10.4.0 10.4.0
+.ds doc-operating-system-Darwin-10.5.0 10.5.0
+.ds doc-operating-system-Darwin-10.6.0 10.6.0
+.ds doc-operating-system-Darwin-10.7.0 10.7.0
+.ds doc-operating-system-Darwin-10.8.0 10.8.0
+.ds doc-operating-system-Darwin-11.0.0 11.0.0
+.ds doc-operating-system-Darwin-11.1.0 11.1.0
+.ds doc-operating-system-Darwin-11.2.0 11.2.0
+.ds doc-operating-system-Darwin-11.3.0 11.3.0
+.ds doc-operating-system-Darwin-11.4.0 11.4.0
+.ds doc-operating-system-Darwin-11.5.0 11.5.0
+.ds doc-operating-system-Darwin-12.0.0 12.0.0
+.ds doc-operating-system-Darwin-12.1.0 12.1.0
+.ds doc-operating-system-Darwin-12.2.0 12.2.0
+.ds doc-operating-system-Darwin-13.0.0 13.0.0
+.ds doc-operating-system-Darwin-13.1.0 13.1.0
+.ds doc-operating-system-Darwin-13.2.0 13.2.0
+.ds doc-operating-system-Darwin-13.3.0 13.3.0
+.ds doc-operating-system-Darwin-13.4.0 13.4.0
+.ds doc-operating-system-Darwin-14.0.0 14.0.0
+.ds doc-operating-system-Darwin-14.1.0 14.1.0
+.ds doc-operating-system-Darwin-14.2.0 14.2.0
+.ds doc-operating-system-Darwin-14.3.0 14.3.0
+.ds doc-operating-system-Darwin-14.4.0 14.4.0
+.ds doc-operating-system-Darwin-14.5.0 14.5.0
+.ds doc-operating-system-Darwin-15.0.0 15.0.0
+.ds doc-operating-system-Darwin-15.1.0 15.1.0
+.ds doc-operating-system-Darwin-15.2.0 15.2.0
+.ds doc-operating-system-Darwin-15.3.0 15.3.0
+.ds doc-operating-system-Darwin-15.4.0 15.4.0
+.ds doc-operating-system-Darwin-15.5.0 15.5.0
+.ds doc-operating-system-Darwin-15.6.0 15.6.0
+.ds doc-operating-system-Darwin-16.0.0 16.0.0
+.ds doc-operating-system-Darwin-16.1.0 16.1.0
+.ds doc-operating-system-Darwin-16.2.0 16.2.0
+.ds doc-operating-system-Darwin-16.3.0 16.3.0
+.ds doc-operating-system-Darwin-16.4.0 16.4.0
+.ds doc-operating-system-Darwin-16.5.0 16.5.0
+.ds doc-operating-system-Darwin-16.6.0 16.6.0
+.ds doc-operating-system-Darwin-17.0.0 17.0.0
+.ds doc-operating-system-Darwin-17.1.0 17.1.0
+.ds doc-operating-system-Darwin-17.2.0 17.2.0
+.ds doc-operating-system-Darwin-17.3.0 17.3.0
+.ds doc-operating-system-Darwin-17.4.0 17.4.0
+.ds doc-operating-system-Darwin-17.5.0 17.5.0
+.ds doc-operating-system-Darwin-17.6.0 17.6.0
+.ds doc-operating-system-Darwin-17.7.0 17.7.0
+.ds doc-operating-system-Darwin-18.0.0 18.0.0
+.ds doc-operating-system-Darwin-18.1.0 18.1.0
+.ds doc-operating-system-Darwin-18.2.0 18.2.0
+.ds doc-operating-system-Darwin-18.3.0 18.3.0
+.ds doc-operating-system-Darwin-18.4.0 18.4.0
+.ds doc-operating-system-Darwin-18.5.0 18.5.0
+.ds doc-operating-system-Darwin-18.6.0 18.6.0
+.ds doc-operating-system-Darwin-18.7.0 18.7.0
+.ds doc-operating-system-Darwin-19.0.0 19.0.0
+.ds doc-operating-system-Darwin-19.1.0 19.1.0
+.ds doc-operating-system-Darwin-19.2.0 19.2.0
+.
+.ds doc-operating-system-DragonFly-1.0 1.0
+.ds doc-operating-system-DragonFly-1.1 1.1
+.ds doc-operating-system-DragonFly-1.2 1.2
+.ds doc-operating-system-DragonFly-1.3 1.3
+.ds doc-operating-system-DragonFly-1.4 1.4
+.ds doc-operating-system-DragonFly-1.5 1.5
+.ds doc-operating-system-DragonFly-1.6 1.6
+.ds doc-operating-system-DragonFly-1.7 1.7
+.ds doc-operating-system-DragonFly-1.8 1.8
+.ds doc-operating-system-DragonFly-1.8.1 1.8.1
+.ds doc-operating-system-DragonFly-1.9 1.9
+.ds doc-operating-system-DragonFly-1.10 1.10
+.ds doc-operating-system-DragonFly-1.11 1.11
+.ds doc-operating-system-DragonFly-1.12 1.12
+.ds doc-operating-system-DragonFly-1.12.2 1.12.2
+.ds doc-operating-system-DragonFly-1.13 1.13
+.ds doc-operating-system-DragonFly-2.0 2.0
+.ds doc-operating-system-DragonFly-2.1 2.1
+.ds doc-operating-system-DragonFly-2.2 2.2
+.ds doc-operating-system-DragonFly-2.3 2.3
+.ds doc-operating-system-DragonFly-2.4 2.4
+.ds doc-operating-system-DragonFly-2.5 2.5
+.ds doc-operating-system-DragonFly-2.6 2.6
+.ds doc-operating-system-DragonFly-2.7 2.7
+.ds doc-operating-system-DragonFly-2.8 2.8
+.ds doc-operating-system-DragonFly-2.9 2.9
+.ds doc-operating-system-DragonFly-2.9.1 2.9.1
+.ds doc-operating-system-DragonFly-2.10 2.10
+.ds doc-operating-system-DragonFly-2.10.1 2.10.1
+.ds doc-operating-system-DragonFly-2.11 2.11
+.ds doc-operating-system-DragonFly-2.12 2.12
+.ds doc-operating-system-DragonFly-2.13 2.13
+.ds doc-operating-system-DragonFly-3.0 3.0
+.ds doc-operating-system-DragonFly-3.0.1 3.0.1
+.ds doc-operating-system-DragonFly-3.0.2 3.0.2
+.ds doc-operating-system-DragonFly-3.1 3.1
+.ds doc-operating-system-DragonFly-3.2 3.2
+.ds doc-operating-system-DragonFly-3.2.1 3.2.1
+.ds doc-operating-system-DragonFly-3.2.2 3.2.2
+.ds doc-operating-system-DragonFly-3.3 3.3
+.ds doc-operating-system-DragonFly-3.4 3.4
+.ds doc-operating-system-DragonFly-3.4.1 3.4.1
+.ds doc-operating-system-DragonFly-3.4.2 3.4.2
+.ds doc-operating-system-DragonFly-3.4.3 3.4.3
+.ds doc-operating-system-DragonFly-3.5 3.5
+.ds doc-operating-system-DragonFly-3.6 3.6
+.ds doc-operating-system-DragonFly-3.6.1 3.6.1
+.ds doc-operating-system-DragonFly-3.6.2 3.6.2
+.ds doc-operating-system-DragonFly-3.7 3.7
+.ds doc-operating-system-DragonFly-3.8 3.8
+.ds doc-operating-system-DragonFly-3.8.1 3.8.1
+.ds doc-operating-system-DragonFly-3.8.2 3.8.2
+.ds doc-operating-system-DragonFly-4.0 4.0
+.ds doc-operating-system-DragonFly-4.0.1 4.0.1
+.ds doc-operating-system-DragonFly-4.0.2 4.0.2
+.ds doc-operating-system-DragonFly-4.0.3 4.0.3
+.ds doc-operating-system-DragonFly-4.0.4 4.0.4
+.ds doc-operating-system-DragonFly-4.0.5 4.0.5
+.ds doc-operating-system-DragonFly-4.0.6 4.0.6
+.ds doc-operating-system-DragonFly-4.1 4.1
+.ds doc-operating-system-DragonFly-4.2 4.2
+.ds doc-operating-system-DragonFly-4.2.1 4.2.1
+.ds doc-operating-system-DragonFly-4.2.2 4.2.2
+.ds doc-operating-system-DragonFly-4.2.3 4.2.3
+.ds doc-operating-system-DragonFly-4.2.4 4.2.4
+.ds doc-operating-system-DragonFly-4.3 4.3
+.ds doc-operating-system-DragonFly-4.4 4.4
+.ds doc-operating-system-DragonFly-4.4.1 4.4.1
+.ds doc-operating-system-DragonFly-4.4.2 4.4.2
+.ds doc-operating-system-DragonFly-4.4.3 4.4.3
+.ds doc-operating-system-DragonFly-4.5 4.5
+.ds doc-operating-system-DragonFly-4.6 4.6
+.ds doc-operating-system-DragonFly-4.6.1 4.6.1
+.ds doc-operating-system-DragonFly-4.6.2 4.6.2
+.ds doc-operating-system-DragonFly-4.7 4.7
+.ds doc-operating-system-DragonFly-4.8 4.8
+.ds doc-operating-system-DragonFly-4.8.1 4.8.1
+.ds doc-operating-system-DragonFly-4.9 4.9
+.ds doc-operating-system-DragonFly-5.0 5.0
+.ds doc-operating-system-DragonFly-5.0.1 5.0.1
+.ds doc-operating-system-DragonFly-5.0.2 5.0.2
+.ds doc-operating-system-DragonFly-5.1 5.1
+.ds doc-operating-system-DragonFly-5.2 5.2
+.ds doc-operating-system-DragonFly-5.2.1 5.2.1
+.ds doc-operating-system-DragonFly-5.2.2 5.2.2
+.ds doc-operating-system-DragonFly-5.3 5.3
+.ds doc-operating-system-DragonFly-5.4 5.4
+.ds doc-operating-system-DragonFly-5.4.1 5.4.1
+.ds doc-operating-system-DragonFly-5.4.2 5.4.2
+.ds doc-operating-system-DragonFly-5.4.3 5.4.3
+.ds doc-operating-system-DragonFly-5.5 5.5
+.ds doc-operating-system-DragonFly-5.6 5.6
+.ds doc-operating-system-DragonFly-5.6.1 5.6.1
+.ds doc-operating-system-DragonFly-5.6.2 5.6.2
+.
+.eo
+.de Os
+. ie "\$1"" \
+. ds doc-operating-system "\*[doc-default-operating-system]
+. el \{ .ie "\$1"ATT" \{\
+. ds doc-operating-system AT&T
+. if \A'\$2' \{\
+. ie d doc-operating-system-ATT-\$2 \
+. as doc-operating-system " \*[doc-operating-system-ATT-\$2]
+. el \
+. as doc-operating-system " UNIX
+. \}\}
+. el \{ .ie "\$1"BSD" \{\
+. if \A'\$2' \{\
+. ie d doc-operating-system-BSD-\$2 \
+. ds doc-operating-system "\*[doc-operating-system-BSD-\$2]
+. el \
+. tm mdoc warning: .Os: Unknown BSD version '\$2' (#\n[.c])
+. \}\}
+. el \{ .ie "\$1"FreeBSD" \{\
+. ds doc-operating-system FreeBSD
+. if \A'\$2' \{\
+. ie d doc-operating-system-FreeBSD-\$2 \
+. as doc-operating-system \~\*[doc-operating-system-FreeBSD-\$2]
+. el \
+. tm mdoc warning: .Os: Unknown FreeBSD version '\$2' (#\n[.c])
+. \}\}
+. el \{ .ie "\$1"DragonFly" \{\
+. ds doc-operating-system DragonFly
+. if \A'\$2' \{\
+. ie d doc-operating-system-DragonFly-\$2 \
+. as doc-operating-system \~\*[doc-operating-system-DragonFly-\$2]
+. el \
+. tm mdoc warning: .Os: Unknown DragonFly version '\$2' (#\n[.c])
+. \}\}
+. el \{ .ie "\$1"NetBSD" \{\
+. ds doc-operating-system NetBSD
+. if \A'\$2' \{\
+. ie d doc-operating-system-NetBSD-\$2 \
+. as doc-operating-system \~\*[doc-operating-system-NetBSD-\$2]
+. el \
+. tm mdoc warning: .Os: Unknown NetBSD version '\$2' (#\n[.c])
+. \}\}
+. el \{ .ie "\$1"OpenBSD" \{\
+. ds doc-operating-system OpenBSD
+. if \A'\$2' \{\
+. ie d doc-operating-system-OpenBSD-\$2 \
+. as doc-operating-system \~\*[doc-operating-system-OpenBSD-\$2]
+. el \
+. tm mdoc warning: .Os: Unknown OpenBSD version '\$2' (#\n[.c])
+. \}\}
+. el \{ .ie "\$1"Darwin" \{\
+. ds doc-operating-system Darwin
+. if \A'\$2' \{\
+. ie d doc-operating-system-Darwin-\$2 \
+. as doc-operating-system \~\*[doc-operating-system-Darwin-\$2]
+. el \
+. tm mdoc warning: .Os: Unknown Darwin version '\$2' (#\n[.c])
+. \}\}
+. el \{\
+. ds doc-operating-system \$1
+. if !"\$2"" \
+. as doc-operating-system " \$2
+. \}\}\}\}\}\}\}\}
+.
+. doc-set-up-titles
+.
+. if '\*[.T]'pdf' \
+. pdfbookmark 1 "\*[doc-page-topic](\*[doc-section])"
+.
+. doc-header
+. nr doc-need-titles-reset 1
+..
+.ec
+.
+.
+.\" NS doc-hyphen-flags global register
+.\" NS the parameter for the '.hy' request
+.ie \n[HY] \{\
+. ie \n[cR] .nr doc-hyphen-flags \n[\*[locale]*hyphenation-mode-base]
+. el .nr doc-hyphen-flags \n[\*[locale]*hyphenation-mode-trap]
+.\}
+.el .nr doc-hyphen-flags 0
+.
+.
+.\" NS doc-header macro
+.\" NS print page header
+.\" NS
+.\" NS local variables:
+.\" NS doc-xref
+.\" NS doc-abbv
+.\" NS doc-reg-dh
+.\" NS doc-reg-dh1
+.\" NS doc-hs-len
+.\" NS doc-hs-len-prev
+.
+.eo
+.de doc-header
+. ds doc-xref \*[doc-page-topic-font]\*[doc-page-topic]\f[]\"
+. as doc-xref \*[doc-page-section-font](\*[doc-section])\f[]\"
+. ds doc-abbv \*[doc-page-topic]\"
+. ev doc-env-dh
+. doc-setup-page-layout
+. ie \n[cR] .pl +1v
+. el .sp .5i
+. nr doc-reg-dh \w'\*[doc-page-topic-font]\*[doc-xref]\f[]'
+. nr doc-reg-dh1 \w'\*[doc-volume]'
+. if (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
+. while (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
+. ds doc-xref \*[doc-page-topic-font]\*[doc-abbv]\f[]\"
+. as doc-xref \*[doc-page-section-font](\*[doc-section])\f[]\"
+. length doc-abbv-len-prev \*[doc-abbv]
+. substring doc-abbv 0 -2
+. length doc-abbv-len \*[doc-abbv]
+. nr doc-reg-dh \w'\*[doc-page-topic-font]\*[doc-abbv]\|.\|.\|.\f[]'
+. \" If header string didn't actually get shorter, stop trying.
+. if (\n[doc-abbv-len-prev] <= \n[doc-abbv-len]) \
+. break
+. \}
+. rr doc-abbv-len
+. rr doc-abbv-len-prev
+. as doc-abbv \|.\|.\|.
+. \}
+. tl '\*[doc-xref]'\*[doc-volume]\f[]'\*[doc-xref]'
+. ie \n[cR] \{\
+. pl +1v
+. sp 1v
+. \}
+. el .sp |1i
+. ev
+. ns
+. rm doc-xref
+. rm doc-abbv
+..
+.ec
+.
+.
+.\" NS doc-break-body-text
+.\" NS Schedule a page break when the next output line is written (not
+.\" NS called if continuously rendering).
+.de doc-break-body-text
+' bp
+..
+.
+.
+.\" NS doc-footer macro
+.\" NS print page footer
+.\"
+.\" NS local variables:
+.\" NS doc-xref
+.\" NS doc-page-id
+.
+.eo
+.de doc-footer
+. ds doc-xref \*[doc-page-topic-font]\*[doc-page-topic]\f[]\"
+. as doc-xref \*[doc-page-section-font](\*[doc-section])\f[]\"
+. ds doc-page-id \n[%]
+. if r X \{\
+. if (\n[%] > \n[X]) \{\
+. nr doc-page-letter (\n[%] - \n[X])
+. ds doc-page-id \n[X]\n[doc-page-letter]\"
+. \}
+. \}
+. ev doc-caption-enviroment
+. doc-setup-page-layout
+. ie \n[D] \{\
+. ie e \
+. tl '%'\*[doc-date-string]'\*[doc-operating-system]'
+. el \
+. tl '\*[doc-operating-system]'\*[doc-date-string]'\*[doc-page-id]'
+. \}
+. el \{\
+. ie \n[cR] \
+. tl '\*[doc-operating-system]'\*[doc-date-string]'\*[doc-xref]'
+. el \
+. tl '\*[doc-operating-system]'\*[doc-date-string]'\*[doc-page-id]'
+. \}
+. if !\n[cR] .bp
+. ev
+. rm doc-page-id
+. rm doc-xref
+..
+.ec
+.
+.
+.\" NS doc-check-depth macro
+.\" NS check paired macros
+.
+.eo
+.de doc-check-depth
+. if \n[doc-list-depth] \{\
+. tm mdoc warning: A .Bl directive has no matching .El (#\n[.c])
+. nr doc-list-depth 0
+. \}
+. if \n[doc-display-depth] \{\
+. tm mdoc warning: A .Bd directive has no matching .Ed (#\n[.c])
+. nr doc-display-depth 0
+. \}
+. if \n[doc-fontmode-depth] \{\
+. tm mdoc warning: A .Bf directive has no matching .Ef (#\n[.c])
+. nr doc-fontmode-depth 0
+. \}
+..
+.ec
+.
+.
+.\" NS doc-end-macro macro
+.\" NS finish output
+.\" NS
+.\" NS modifies:
+.\" NS doc-need-titles-reset
+.
+.eo
+.de doc-end-macro
+. doc-check-depth
+.
+. if \n[cR] \{\
+. \" We might have a pending output line that is not yet broken, and
+. \" also be 1v from the bottom of the page. If we break (or flush)
+. \" the output line now, the page will get ejected afterward and
+. \" troff will exit because we're in an end-of-input macro--our
+. \" footer will never be output. So, if that is the case, further
+. \" extend the page length by 1v.
+. if ((\n[.p] - \n[nl]) <= \n[.V]) .pl +1v
+. br
+. pl +1v
+. sp 1v
+. doc-footer
+. \" If we're processing multiple documents and have started a new
+. \" one, draw a line between this footer and the next header.
+. if !'\n[.F]'' \{\
+. pl +1v
+. nf
+. ti 0
+\D'l \n[doc-line-length]u 0'
+. fi
+. \}
+. \" suppress empty lines after the footer
+. pl \n[nl]u
+. \}
+. ch doc-header
+. doc-break-page-with-new-number
+.
+. \" Reset strings to reduce info leaks from one man page to the next.
+. ds doc-date-string UNDATED\"
+. ds doc-page-topic UNTITLED\"
+. ds doc-volume LOCAL\"
+. ds doc-section \" empty
+. ds doc-operating-system \" empty
+. ds doc-topic-name \" empty
+..
+.ec
+.
+.
+.\" NS doc-break-page-with-new-number macro
+.\" NS Break the page and update its number depending on the C
+.\" NS (consecutive numbering) register.
+.\" NS
+.\" NS Corner case: if formatting multiple documents and P (starting
+.\" NS page number) is defined but C is not set, start numbering each
+.\" NS document at \n[P]. Not strictly necessary if not switching
+.\" NS macro packages.
+.
+.eo
+.de doc-break-page-with-new-number
+. ie \n[C] .bp (\n[%] + 1) \" argument NOT redundant before page 1
+. el \{\
+. ie r P .bp \n[P]
+. el .bp 1
+. \}
+..
+.ec
+.
+.
+.\" NS doc-paragraph macro
+.\" NS insert a paragraph
+.
+.eo
+.de doc-paragraph
+. sp \n[doc-paragraph-space]u
+. if !\n[cR] \
+. ne 2
+. ns
+..
+.ec
+.
+.
+.\" NS Pp user macro (not parsed, not callable)
+.\" NS new paragraph
+.\" NS
+.\" NS width register 'Pp' set above
+.
+.als Pp doc-paragraph
+.
+.
+.\" NS Lp user macro (not parsed, not callable)
+.\" NS same as .Pp
+.\" NS
+.\" NS width register 'Lp' set above
+.
+.als Lp doc-paragraph
+.
+.
+.eo
+.de LP
+. tm Not a \-mdoc command: .LP (#\n[.c])
+..
+.ec
+.
+.
+.eo
+.de PP
+. tm Not a \-mdoc command: .PP (#\n[.c])
+..
+.ec
+.
+.
+.eo
+.de pp
+. tm Not a \-mdoc command: .pp (#\n[.c])
+..
+.ec
+.
+.
+.eo
+.de SH
+. tm Not a \-mdoc command: .SH (#\n[.c])
+..
+.ec
+.
+.
+.\" NS Nd user macro (not parsed, not callable)
+.\" NS print name description
+.\" NS
+.\" NS width register 'Nd' set above
+.
+.eo
+.de Nd
+. nop \[em] \$*
+..
+.ec
+.
+.
+.\" NS doc-in-name-section global register (bool)
+.\" NS whether we are in the 'name' section
+.
+.nr doc-in-name-section 0
+.
+.
+.\" NS doc-in-synopsis-section global register (bool)
+.\" NS whether we are in the 'synopsis' section
+.
+.nr doc-in-synopsis-section 0
+.
+.
+.\" NS doc-in-library-section global register (bool)
+.\" NS whether we are in the 'library' section
+.
+.nr doc-in-library-section 0
+.
+.
+.\" NS doc-in-see-also-section global register (bool)
+.\" NS whether we are in the 'see also' section
+.
+.nr doc-in-see-also-section 0
+.
+.
+.\" NS doc-in-files-section global register (bool)
+.\" NS whether we are in the 'files' section
+.
+.nr doc-in-files-section 0
+.
+.
+.\" NS doc-in-authors-section global register (bool)
+.\" NS whether we are in the 'authors' section
+.
+.nr doc-in-authors-section 0
+.
+.
+.\" NS doc-need-titles-reset global register (bool)
+.\" NS whether the strings that set header and footer text need to be
+.\" NS reconfigured
+.\" NS
+.\" NS This happens when batch-rendering and starting a new page.
+.
+.nr doc-need-titles-reset 0
+.
+.
+.\" NS doc-first-parameter macro
+.\" NS return first parameter
+.\" NS
+.\" NS local variables:
+.\" NS doc-str-dfp
+.
+.eo
+.de doc-first-parameter
+. ds doc-str-dfp "\$1
+..
+.ec
+.
+.
+.\" NS doc-prepare-section-heading macro
+.\" NS define `doc-sec-head`, `macro` prepared for string matching
+.\"
+.\" NS
+.\" NS local variables:
+.\" NS doc-str-tmp1
+.\" NS doc-str-tmp2
+.\" NS doc-tmp-strlen
+.
+.eo
+.de doc-prepare-section-heading
+. ds doc-str-tmp1 "\$*
+. ds doc-str-tmp2 "\$*
+. length doc-tmp-strlen \$*
+. \" Leave (nonstandard) section headings of length 0 or 1 unchanged.
+. ie \n[doc-tmp-strlen]>1 \{\
+. substring doc-str-tmp1 0 0
+. substring doc-str-tmp2 1
+. stringdown doc-str-tmp2
+. ds doc-sec-head \*[doc-str-tmp1]\*[doc-str-tmp2]\"
+. \}
+. el \
+. ds doc-sec-head "\$*
+. rm doc-str-tmp1
+. rm doc-str-tmp2
+. rr doc-tmp-strlen
+..
+.ec
+.
+.
+.\" NS Sh user macro (not callable)
+.\" NS section headers
+.\" NS
+.\" NS modifies:
+.\" NS doc-func-args-processed
+.\" NS doc-func-count
+.\" NS doc-in-authors-section
+.\" NS doc-in-files-section
+.\" NS doc-in-library-section
+.\" NS doc-in-name-section
+.\" NS doc-in-see-also-section
+.\" NS doc-in-synopsis-section
+.\" NS doc-indent-synopsis
+.\" NS doc-indent-synopsis-active
+.\" NS doc-is-func
+.\" NS doc-num-func-args
+.\" NS
+.\" NS local variables:
+.\" NS doc-reg-Sh
+.\" NS doc-reg-Sh1
+.\" NS doc-section-XXX
+.\" NS
+.\" NS width register 'Sh' set in doc-common
+.
+.ds doc-section-name Name\"
+.ds doc-section-synopsis Synopsis\"
+.ds doc-section-library Library\"
+.ds doc-section-description Description\"
+.ds doc-section-see-also See also\"
+.ds doc-section-files Files\"
+.ds doc-section-authors Authors\"
+.
+.eo
+.de Sh
+. \" Tell doc-print-recursive whether to force capitalization.
+. nr doc-do-capitalize \n[CS]
+.
+. \" Normalize capitalization of section heading.
+. doc-prepare-section-heading \$*
+.
+. ie "\*[doc-sec-head]"\*[doc-section-name]" \
+. nr doc-in-name-section 1
+. el \
+. nr doc-in-name-section 0
+.
+. ie \n[doc-arg-count] \{\
+. \" we only allow 'Sh' within 'Sh'; it will change the font back to
+. \" 'doc-Sh-font'
+. ie "\*[doc-macro-name]"Sh" \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-arg-count] >= \n[doc-arg-ptr]) \{\
+. nr doc-curr-font \n[.f]
+. nop \*[doc-Sh-font]\c
+. doc-print-recursive
+. \}
+. el \{\
+. tm Usage: .Sh section_name ... (#\n[.c])
+. doc-reset-args
+. \}\}
+. el \{\
+. tm Usage: .Sh not callable by other macros (#\n[.c])
+. doc-reset-args
+. \}\}
+. el \{\
+. if !\n[.$] \{\
+. tm Usage: .Sh section_name ... (#\n[.c])
+. return
+. \}
+.
+. ds doc-macro-name Sh
+. doc-parse-args \$@
+.
+. ad \*[AD]
+.
+. ie "\*[doc-sec-head]"\*[doc-section-name]" \{\
+. doc-set-up-titles
+. in 0
+. \}
+. el \{\
+. nr doc-in-name-section 0
+. nr doc-in-synopsis-section 0
+. nr doc-in-library-section 0
+. nr doc-in-see-also-section 0
+. nr doc-in-files-section 0
+. nr doc-in-authors-section 0
+.
+. ie "\*[doc-sec-head]"\*[doc-section-synopsis]" \{\
+. if t \
+. na
+. nr doc-in-synopsis-section 1
+. nr doc-indent-synopsis 0
+. nr doc-indent-synopsis-active 0
+. \}
+. el \{ .ie "\*[doc-sec-head]"\*[doc-section-library]" \{\
+. nr doc-in-library-section 1
+. \}
+. el \{ .ie "\*[doc-sec-head]"\*[doc-section-description]" \{\
+. nr doc-is-func 0
+. nr doc-func-count 0
+. nr doc-func-args-processed 0
+. nr doc-num-func-args 0
+. \}
+. el \{ .ie "\*[doc-sec-head]"\*[doc-section-see-also]" \{\
+. if t \
+. na
+. nr doc-in-see-also-section 1
+. \}
+. el \{ .ie "\*[doc-sec-head]"\*[doc-section-files]" \
+. nr doc-in-files-section 1
+. el .if "\*[doc-sec-head]"\*[doc-section-authors]" \
+. nr doc-in-authors-section 1
+. \}\}\}\}
+.
+. in 0
+. nr doc-have-author 0
+. \}
+.
+. doc-setup-page-layout
+. sp \n[doc-paragraph-space]u
+. ns
+. ta T .5i
+. if !\n[cR] \
+. ne 3
+. fi
+.
+. if '\*[.T]'pdf' \
+. pdfbookmark 2 "\*[doc-sec-head]"
+.
+. if t \{\
+. nr doc-reg-Sh \n[.ss]
+. nr doc-reg-Sh1 \n[.sss]
+. ss (\n[.ss] * 5 / 3) (\n[.sss] * 5 / 3)
+. \}
+.
+. if \n[doc-remap-I-style-in-headings] \
+. ftr \*[doc-heading-family]I \*[doc-heading-family]BI
+.
+. nr doc-arg-ptr +1
+. nr doc-curr-font \n[.f]
+. nop \*[doc-Sh-font]\c
+. doc-print-recursive
+.
+. if t \
+. ss \n[doc-reg-Sh] \n[doc-reg-Sh1]
+.
+. in \n[IN]u
+. ns
+.
+. doc-check-depth
+. if \n[doc-remap-I-style-in-headings] \
+. ftr \*[doc-heading-family]I \*[doc-heading-family]I
+. \}
+.
+.
+. \" Don't let doc-print-recursive force caps on anything else.
+. nr doc-do-capitalize 0
+..
+.ec
+.
+.
+.\" NS Ss user macro (not callable)
+.\" NS subsection
+.\" NS
+.\" NS modifies:
+.\" NS doc-subsection-heading
+.\" NS
+.\" NS local variable:
+.\" NS doc-reg-Ss
+.\" NS doc-reg-Ss1
+.\" NS
+.\" NS width register 'Ss' set above
+.
+.eo
+.de Ss
+. ie \n[doc-arg-count] \{\
+. \" we only allow 'Ss' within 'Ss'; it will change the font back to
+. \" 'doc-Sh-font'
+. ie "\*[doc-macro-name]"Ss" \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-arg-count] >= \n[doc-arg-ptr]) \{\
+. nr doc-curr-font \n[.f]
+. nop \*[doc-Sh-font]\c
+. doc-print-recursive
+. \}
+. el \{\
+. tm Usage: .Ss subsection_name ... (#\n[.c])
+. doc-reset-args
+. \}\}
+. el \{\
+. tm Usage: .Ss not callable by other macros (#\n[.c])
+. doc-reset-args
+. \}\}
+. el \{\
+. if !\n[.$] \{\
+. tm Usage: .Ss subsection_name ... (#\n[.c])
+. return
+. \}
+.
+. ds doc-macro-name Ss
+. doc-parse-args \$@
+.
+. ds doc-subsection-heading \$*
+.
+. sp \n[doc-paragraph-space]u
+. if !\n[cR] \
+. ne 3
+. in \n[SN]u
+.
+. if '\*[.T]'pdf' \
+. pdfbookmark 3 "\*[doc-subsection-heading]"
+.
+. nr doc-reg-Ss \n[.ss]
+. nr doc-reg-Ss1 \n[.sss]
+. ss (\n[.ss] * 5 / 4) (\n[.sss] * 5 / 4)
+.
+. if \n[doc-remap-I-style-in-headings] \
+. ftr \*[doc-heading-family]I \*[doc-heading-family]BI
+.
+. nr doc-arg-ptr +1
+. nr doc-curr-font \n[.f]
+. nop \*[doc-Sh-font]\c
+. doc-print-recursive
+.
+. ss \n[doc-reg-Ss] \n[doc-reg-Ss1]
+.
+. ta T .5i
+. in
+. if !\n[cR] \
+. ne 2
+. br
+. ns
+.
+. doc-check-depth
+. if \n[doc-remap-I-style-in-headings] \
+. ftr \*[doc-heading-family]I \*[doc-heading-family]I
+. \}
+.
+..
+.ec
+.
+.
+.\" NS Rd macro (not parsed, not callable)
+.\" NS print global register dump to stderr
+.\" NS
+.\" NS local variables:
+.\" NS doc-reg-Rd
+.
+.eo
+.de Rd
+. tm MDOC GLOBAL REGISTER DUMP
+. tm doc-macro-name == '\*[doc-macro-name]'
+. tm doc-arg-count == \n[doc-arg-count]
+. tm doc-num-args == \n[doc-num-args]
+. tm doc-arg-ptr == \n[doc-arg-ptr]
+.
+. nr doc-reg-Rd 1
+. while (\n[doc-reg-Rd] <= \n[doc-arg-count]) \{\
+. tm doc-arg\n[doc-reg-Rd] == '\*[doc-arg\n[doc-reg-Rd]]'
+. tm doc-type\n[doc-reg-Rd] == \n[doc-type\n[doc-reg-Rd]]
+. tm doc-space\n[doc-reg-Rd] == '\*[doc-space\n[doc-reg-Rd]]'
+. nr doc-reg-Rd +1
+. \}
+.
+. tm doc-curr-font == \n[doc-curr-font]
+. tm doc-indent-synopsis == \n[doc-indent-synopsis]
+. tm doc-indent-synopsis-active == \n[doc-indent-synopsis-active]
+. tm doc-have-decl == \n[doc-have-decl]
+. tm doc-have-var == \n[doc-have-var]
+. tm doc-topic-name == '\*[doc-topic-name]'
+. tm doc-quote-left == '\*[doc-quote-left]'
+. tm doc-quote-right == '\*[doc-quote-right]'
+. tm doc-nesting-level == \n[doc-nesting-level]
+. tm doc-in-list == \n[doc-in-list]
+. tm doc-space == '\*[doc-space]'
+. tm doc-saved-space == '\*[doc-saved-space]'
+. tm doc-space-mode == \n[doc-space-mode]
+. tm doc-have-space == \n[doc-have-space]
+. tm doc-have-slot == \n[doc-have-slot]
+. tm doc-keep-type == \n[doc-keep-type]
+. tm doc-display-depth == \n[doc-display-depth]
+. tm doc-is-compact == \n[doc-is-compact]
+.
+. nr doc-reg-Rd 0
+. while (\n[doc-reg-Rd] <= \n[doc-display-depth]) \{\
+. tm doc-display-type-stack\n[doc-reg-Rd] == '\*[doc-display-type-stack\n[doc-reg-Rd]]'
+. tm doc-display-indent-stack\n[doc-reg-Rd] == \n[doc-display-indent-stack\n[doc-reg-Rd]]
+. tm doc-display-ad-stack\n[doc-reg-Rd] == \n[doc-display-ad-stack\n[doc-reg-Rd]]
+. tm doc-display-fi-stack\n[doc-reg-Rd] == \n[doc-display-fi-stack\n[doc-reg-Rd]]
+. tm doc-display-ft-stack\n[doc-reg-Rd] == \n[doc-display-ft-stack\n[doc-reg-Rd]]
+. tm doc-display-ps-stack\n[doc-reg-Rd] == \n[doc-display-ps-stack\n[doc-reg-Rd]]
+. nr doc-reg-Rd +1
+. \}
+.
+. tm doc-fontmode-depth == \n[doc-fontmode-depth]
+.
+. nr doc-reg-Rd 1
+. while (\n[doc-reg-Rd] <= \n[doc-fontmode-depth]) \{\
+. tm doc-fontmode-font-stack\n[doc-reg-Rd] == '\n[doc-fontmode-font-stack\n[doc-reg-Rd]]'
+. tm doc-fontmode-size-stack\n[doc-reg-Rd] == '\n[doc-fontmode-size-stack\n[doc-reg-Rd]]'
+. nr doc-reg-Rd +1
+. \}
+.
+. tm doc-list-depth == \n[doc-list-depth]
+.
+. nr doc-reg-Rd 1
+. while (\n[doc-reg-Rd] <= \n[doc-list-depth]) \{\
+. tm doc-list-type-stack\n[doc-reg-Rd] == '\*[doc-list-type-stack\n[doc-reg-Rd]]'
+. tm doc-list-have-indent-stack\n[doc-reg-Rd] == \n[doc-list-have-indent-stack\n[doc-reg-Rd]]
+. tm doc-list-indent-stack\n[doc-reg-Rd] == \n[doc-list-indent-stack\n[doc-reg-Rd]]
+. tm doc-compact-list-stack\n[doc-reg-Rd] == \n[doc-compact-list-stack\n[doc-reg-Rd]]
+. tm doc-tag-prefix-stack\n[doc-reg-Rd] == '\*[doc-tag-prefix-stack\n[doc-reg-Rd]]'
+. tm doc-tag-width-stack\n[doc-reg-Rd] == '\*[doc-tag-width-stack\n[doc-reg-Rd]]'
+. tm doc-list-offset-stack\n[doc-reg-Rd] == \n[doc-list-offset-stack\n[doc-reg-Rd]]
+. tm doc-enum-list-count-stack\n[doc-reg-Rd] == \n[doc-enum-list-count-stack\n[doc-reg-Rd]]
+. nr doc-reg-Rd +1
+. \}
+.
+. tm doc-saved-Pa-font == '\*[doc-saved-Pa-font]'
+. tm doc-curr-type == \n[doc-curr-type]
+. tm doc-curr-arg == '\*[doc-curr-arg]'
+. tm doc-diag-list-input-line-count == \n[doc-diag-list-input-line-count]
+. tm doc-num-columns == \n[doc-num-columns]
+. tm doc-column-indent-width == \n[doc-column-indent-width]
+. tm doc-is-func == \n[doc-is-func]
+. tm doc-have-old-func == \n[doc-have-old-func]
+. tm doc-func-arg-count == \n[doc-func-arg-count]
+. tm doc-func-arg == '\*[doc-func-arg]'
+. tm doc-num-func-args == \n[doc-num-func-args]
+. tm doc-func-args-processed == \n[doc-func-args-processed]
+. tm doc-have-func == \n[doc-have-func]
+. tm doc-is-reference == \n[doc-is-reference]
+. tm doc-reference-count == \n[doc-reference-count]
+. tm doc-author-count == \n[doc-author-count]
+.
+. nr doc-reg-Rd 0
+. while (\n[doc-reg-Rd] <= \n[doc-author-count]) \{\
+. tm doc-author-name\n[doc-reg-Rd] == '\*[doc-author-name\n[doc-reg-Rd]]'
+. nr doc-reg-Rd +1
+. \}
+.
+. tm doc-book-count == \n[doc-book-count]
+. tm doc-book-name == '\*[doc-book-name]'
+. tm doc-date-count == \n[doc-date-count]
+. tm doc-date == '\*[doc-date]'
+. tm doc-publisher-count == \n[doc-publisher-count]
+. tm doc-publisher-name == '\*[doc-publisher-name]'
+. tm doc-journal-count == \n[doc-journal-count]
+. tm doc-journal-name == '\*[doc-journal-name]'
+. tm doc-issue-count == \n[doc-issue-count]
+. tm doc-issue-name == '\*[doc-issue-name]'
+. tm doc-optional-count == \n[doc-optional-count]
+. tm doc-optional-string == '\*[doc-optional-string]'
+. tm doc-page-number-count == \n[doc-page-number-count]
+. tm doc-page-number-string == '\*[doc-page-number-string]'
+. tm doc-corporate-count == \n[doc-corporate-count]
+. tm doc-corporate-name == '\*[doc-corporate-name]'
+. tm doc-report-count == \n[doc-report-count]
+. tm doc-report-name == '\*[doc-report-name]'
+. tm doc-reference-title-count == \n[doc-reference-title-count]
+. tm doc-reference-title-name == '\*[doc-reference-title-name]'
+. tm doc-reference-title-name-for-book == '\*[doc-reference-title-name-for-book]'
+. tm doc-url-count == \n[doc-url-count]
+. tm doc-url-name == '\*[doc-url-name]'
+. tm doc-volume-count == \n[doc-volume-count]
+. tm doc-volume-name == '\*[doc-volume-name]'
+. tm doc-have-author == \n[doc-have-author]
+.
+. tm doc-page-topic == '\*[doc-page-topic]'
+. tm doc-volume == '\*[doc-volume]'
+. tm doc-section == '\*[doc-section]'
+. tm doc-operating-system == '\*[doc-operating-system]'
+. tm doc-date-string == '\*[doc-date-string]'
+. tm doc-display-vertical == \n[doc-display-vertical]
+. tm doc-in-name-section == \n[doc-in-name-section]
+. tm doc-in-synopsis-section == \n[doc-in-synopsis-section]
+. tm doc-in-library-section == \n[doc-in-library-section]
+. tm doc-in-see-also-section == \n[doc-in-see-also-section]
+. tm doc-in-files-section == \n[doc-in-files-section]
+. tm doc-in-authors-section == \n[doc-in-authors-section]
+.
+. tm END OF GLOBAL REGISTER DUMP
+..
+.ec
+.
+.
+.\" Local Variables:
+.\" mode: nroff
+.\" fill-column: 72
+.\" End:
+.\" vim: set filetype=groff textwidth=72:
diff --git a/tmac/mdoc/doc-ditroff b/tmac/mdoc/doc-ditroff
new file mode 100644
index 0000000..96cb2f7
--- /dev/null
+++ b/tmac/mdoc/doc-ditroff
@@ -0,0 +1,287 @@
+.\" Copyright (c) 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
+.\" 4. Neither the name of the University nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS"
+.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+.\" PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+.\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)doc-ditroff 8.1 (Berkeley) 06/08/93
+.
+.
+.\" Use -rS={11,12} to change the font size from 10pt to 11pt or 12pt.
+.if !r S .nr S 10
+.
+.ie (\n[S] == 11) \{\
+. ps 10.95z
+. vs 13.6p
+.\}
+.el \{ .ie (\n[S] == 12) \{\
+. ps 12z
+. vs 14.5p
+.\}
+.el \{\
+. ps 10z
+. vs 12p
+.\}\}
+.
+.
+.\" the 'doc-xx-font' strings must not be empty!
+.
+.ds doc-page-topic-font \f[I]
+.ds doc-page-section-font \f[R]
+.ds doc-Ad-font \f[I]
+.ds doc-Ar-font \f[CI]
+.ds doc-Cm-font \f[CR]
+.ds doc-Em-font \f[I]
+.ds doc-Er-font \f[CR]
+.ds doc-Ev-font \f[CR]
+.ds doc-Fa-font \f[CI]
+.ds doc-Fd-font \f[CB]
+.ds doc-Fl-font \f[CR]
+.ds doc-Fn-font \f[CB]
+.ds doc-Ft-font \f[CI]
+.ds doc-Ic-font \f[CB]
+.ds doc-Li-font \f[CR]
+.ds doc-Lk-font \f[R]\"
+.ds doc-Me-font \f[B]
+.ds doc-Nm-font \f[CB]
+.ds doc-No-font \f[R]
+.ds doc-Pa-font \f[I]
+.ds doc-Sh-font \f[\*[HF]]\"
+.ds doc-Sy-font \f[B]
+.ds doc-Tn-font \f[R]
+.ds doc-Va-font \f[I]
+.ds doc-Xr-font \f[I]
+.
+.ds doc-left-parenthesis \f[R](\f[]
+.ds doc-right-parenthesis \f[R])\f[]
+.ds lp \f[R](\f[]
+.ds rp \f[R])\f[]
+.ds doc-left-bracket \f[R][\f[]
+.ds doc-right-bracket \f[R]]\f[]
+.
+.tr *\[**]
+.
+.\" miscellaneous
+.nr doc-paragraph-space .4v
+.
+.nr doc-digit-width \w'\0'u
+.nr doc-fixed-width \w'\f[CR]0'
+.
+.
+.\" NS doc-display-vertical global register
+.\" NS vertical space between list elements etc.
+.
+.nr doc-display-vertical 0
+.
+.
+.\" NS doc-setup-page-layout macro
+.\" NS set up page layout
+.\" NS
+.\" NS modifies:
+.\" NS doc-display-vertical
+.\" NS doc-line-length
+.
+.eo
+.de doc-setup-page-layout
+. ie r LL \
+. ll \n[LL]u
+. el \
+. ll \n[.l]u
+.
+. ie r LT \
+. lt \n[LT]u
+. el \
+. lt \n[.l]u
+.
+. po 1i
+.
+. nr doc-display-vertical .5v
+. nr doc-line-length \n[.l]
+..
+.ec
+.
+.
+.ds doc-left-singlequote \[oq]
+.ds doc-right-singlequote \[cq]
+.
+.\" the following strings are 'official'
+.ds <= \[<=]
+.ds >= \[>=]
+.ds Lq \[lq]
+.ds Rq \[rq]
+.ds ua \[ua]
+.ds aa \[aa]
+.ds ga \[ga]
+.ds q \[dq]
+.ds Pi \[*p]
+.ds Ne \[!=]
+.ds Le \[<=]
+.ds Ge \[>=]
+.ds Lt <
+.ds Gt >
+.ds Pm \[+-]
+.ds If \[if]
+.ds Na \f[I]NaN\f[]
+.ds Ba \f[R]|\f[]
+.ds Am &
+.
+.
+.\" NS doc-get-width macro
+.\" NS computes the width of a string as a multiple of
+.\" NS 'doc-fixed-width': '.doc-get-width string'
+.\" NS
+.\" NS modifies:
+.\" NS doc-width
+.
+.eo
+.de doc-get-width
+. nr doc-width \w'\f[CR]\$1'
+. ie (\n[doc-width] >= \n[doc-fixed-width]) \{\
+. ie (\n[doc-width] % \n[doc-fixed-width]) \
+. nr doc-width ((\n[doc-width] / \n[doc-fixed-width]) + 1)
+. el \
+. nr doc-width (\n[doc-width] / \n[doc-fixed-width])
+. \}
+. el \{\
+. ie \n[doc-width] \
+. nr doc-width 1
+. el \
+. nr doc-width 0
+. \}
+..
+.ec
+.
+.
+.\" NS doc-get-arg-width macro
+.\" NS computes the width of an argument as a multiple of
+.\" NS 'doc-fixed-width': '.doc-get-arg-width arg-index'
+.\" NS
+.\" NS modifies:
+.\" NS doc-width
+.
+.eo
+.de doc-get-arg-width
+. nr doc-width \w'\f[CR]\*[doc-arg\$1]'
+. ie (\n[doc-width] >= \n[doc-fixed-width]) \{\
+. ie (\n[doc-width] % \n[doc-fixed-width]) \
+. nr doc-width ((\n[doc-width] / \n[doc-fixed-width]) + 1)
+. el \
+. nr doc-width (\n[doc-width] / \n[doc-fixed-width])
+. \}
+. el \{\
+. ie \n[doc-width] \
+. nr doc-width 1
+. el \
+. nr doc-width 0
+. \}
+..
+.ec
+.
+.
+.\" NS Ql user macro
+.\" NS quoted literal define
+.\" NS
+.\" NS modifies:
+.\" NS doc-argXXX
+.\" NS doc-arg-count
+.\" NS doc-arg-ptr
+.\" NS doc-macro-name
+.\" NS doc-spaceXXX
+.\" NS doc-typeXXX
+.\" NS doc-quote-left
+.\" NS doc-quote-right
+.\" NS
+.\" NS local variables:
+.\" NS doc-reg-Ql
+.\" NS doc-reg-Ql1
+.\" NS doc-reg-Ql2
+.\" NS
+.\" NS width register 'Ql' set in doc-common
+.
+.eo
+.de Ql
+. if !\n[doc-arg-count] \{\
+. ie \n[.$] \{\
+. ds doc-macro-name Ql
+. doc-parse-args \$@
+. \}
+. el \
+. tm Usage: .Ql argument ... (#\n[.c])
+. \}
+.
+. nr doc-reg-Ql (\n[doc-arg-ptr] + 1)
+. doc-get-arg-width \n[doc-reg-Ql]
+.
+. \" don't use quotes if we have more than two succeeding string
+. \" arguments
+. nr doc-reg-Ql +1
+. if (\n[doc-arg-count] >= \n[doc-reg-Ql]) \
+. if (\n[doc-type\n[doc-reg-Ql]] == 2) \
+. nr doc-width 3
+.
+. \" make a difference in quotation style for strings longer
+. \" than two characters
+. ie (\n[doc-width] > 2) \
+. Li
+. el \{\
+. ie \n[doc-arg-ptr] \{\
+. \" we replace 'Ql' with 'Li'
+. ds doc-arg\n[doc-arg-ptr] Li
+. nr doc-arg-ptr -1
+. \}
+. el \{\
+. \" if .Ql has been called directly, we must shift all elements in
+. \" the argument vector to the right so that we can insert 'Li'
+. nr doc-reg-Ql \n[doc-arg-count]
+. nr doc-reg-Ql1 (\n[doc-arg-count] + 1)
+. while \n[doc-reg-Ql] \{\
+. rn doc-arg\n[doc-reg-Ql] doc-arg\n[doc-reg-Ql1]
+. rnn doc-type\n[doc-reg-Ql] doc-type\n[doc-reg-Ql1]
+. rn doc-space\n[doc-reg-Ql] doc-space\n[doc-reg-Ql1]
+. nr doc-reg-Ql -1
+. nr doc-reg-Ql1 -1
+. \}
+. ds doc-arg1 Li
+. nr doc-type1 1
+. ds doc-space1
+. nr doc-arg-count +1
+. \}
+.
+. ds doc-quote-left "\*[doc-left-singlequote]
+. ds doc-quote-right "\*[doc-right-singlequote]
+. doc-enclose-string
+. \}
+..
+.ec
+.
+.
+.\" Local Variables:
+.\" mode: nroff
+.\" fill-column: 72
+.\" End:
+.\" vim: set filetype=groff textwidth=72:
diff --git a/tmac/mdoc/doc-nroff b/tmac/mdoc/doc-nroff
new file mode 100644
index 0000000..5167af3
--- /dev/null
+++ b/tmac/mdoc/doc-nroff
@@ -0,0 +1,229 @@
+.\" Copyright (c) 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
+.\" 4. Neither the name of the University nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS"
+.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+.\" PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+.\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)doc-nroff 8.1 (Berkeley) 06/08/93
+.
+.
+.\" nroff devices can't change the type size; this value is notional.
+.nr S 10
+.
+.\" Map monospaced fonts to standard styles.
+.ftr CR R
+.ftr CI I
+.ftr CB B
+.ftr CBI BI
+.
+.\" the 'doc-xx-font' strings must not be empty!
+.
+.ds doc-page-topic-font \f[I]
+.ds doc-page-section-font \f[R]
+.ds doc-Ad-font \f[I]
+.ds doc-Ar-font \f[I]
+.ds doc-Cm-font \f[B]
+.ds doc-Em-font \f[I]
+.ds doc-Er-font \f[R]
+.ds doc-Ev-font \f[R]
+.ds doc-Fa-font \f[I]
+.ds doc-Fd-font \f[B]
+.ds doc-Fl-font \f[B]
+.ds doc-Fn-font \f[B]
+.ds doc-Ft-font \f[I]
+.ds doc-Ic-font \f[B]
+.ds doc-Li-font \f[B]
+.ds doc-Lk-font \f[R]\"
+.ds doc-Me-font \f[B]
+.ds doc-Nm-font \f[B]
+.ds doc-No-font \f[R]
+.ds doc-Pa-font \f[I]
+.ds doc-Sh-font \f[\*[HF]]\"
+.ds doc-Sy-font \f[B]
+.ds doc-Tn-font \f[R]
+.ds doc-Va-font \f[I]
+.ds doc-Xr-font \f[I]
+.
+.ds doc-left-parenthesis \f[R](\f[]
+.ds doc-right-parenthesis \f[R])\f[]
+.ds lp \f[R](\f[]
+.ds rp \f[R])\f[]
+.ds doc-left-bracket \f[R][\f[]
+.ds doc-right-bracket \f[R]]\f[]
+.
+.\" miscellaneous
+.nr doc-paragraph-space 1v
+.
+.nr doc-digit-width \w'\0\0'u
+.nr doc-fixed-width \w'0'
+.
+.
+.\" NS doc-display-vertical global register
+.\" NS vertical space between list elements etc.
+.
+.nr doc-display-vertical 0
+.
+.
+.\" NS doc-setup-page-layout macro
+.\" NS set up page layout
+.\" NS
+.\" NS modifies:
+.\" NS doc-display-vertical
+.\" NS doc-line-length
+.
+.eo
+.de doc-setup-page-layout
+. ie r LL \
+. ll \n[LL]u
+. el \
+. ll 78n
+.
+. ie r LT \
+. lt \n[LT]u
+. el \
+. lt \n[.l]u
+.
+. po 0i
+.
+. nr doc-display-vertical 1v
+. nr doc-line-length \n[.l]
+..
+.ec
+.
+.ds doc-left-singlequote \[oq]
+.ds doc-right-singlequote \[cq]
+.
+.\" the following strings are 'official'
+.ds <= \[<=]
+.ds >= \[>=]
+.ds aa \[aa]
+.ds ga \[ga]
+.ds q \[dq]
+.ds Lq \[lq]
+.ds Rq \[rq]
+.ds Ne \[!=]
+.ds Le \[<=]
+.ds Ge \[>=]
+.ds Lt <
+.ds Gt >
+.ds Pm \[+-]
+.ds Na \f[I]NaN\f[]
+.ds Ba \f[R]|\f[]
+.ds Am &
+.
+.\" Unicode TTYs have all glyph forms; for other TTY character sets we
+.\" need character representations which are different from GNU troff's
+.\" standard forms.
+.ie '\*[.T]'utf8' \{\
+. ds ua \[ua]
+. ds Pi \[*p]
+. ds If \[if]
+.\}
+.el \{\
+. ds ua ^
+. ds Pi pi
+. ds If infinity
+.\}
+.
+.
+.\" NS doc-get-width macro
+.\" NS computes the width of a string as a multiple of
+.\" NS 'doc-fixed-width': '.doc-get-width string'
+.\" NS
+.\" NS modifies:
+.\" NS doc-width
+.
+.eo
+.de doc-get-width
+. nr doc-width \w'\$1'
+. ie (\n[doc-width] >= \n[doc-fixed-width]) \{\
+. ie (\n[doc-width] % \n[doc-fixed-width]) \
+. nr doc-width ((\n[doc-width] / \n[doc-fixed-width]) + 1)
+. el \
+. nr doc-width (\n[doc-width] / \n[doc-fixed-width])
+. \}
+. el \
+. nr doc-width 0
+..
+.ec
+.
+.
+.\" NS doc-get-arg-width macro
+.\" NS computes the width of an argument as a multiple of
+.\" NS 'doc-fixed-width': '.doc-get-arg-width arg-index'
+.\" NS
+.\" NS modifies:
+.\" NS doc-width
+.
+.eo
+.de doc-get-arg-width
+. nr doc-width \w'\*[doc-arg\$1]'
+. ie (\n[doc-width] >= \n[doc-fixed-width]) \{\
+. ie (\n[doc-width] % \n[doc-fixed-width]) \
+. nr doc-width ((\n[doc-width] / \n[doc-fixed-width]) + 1)
+. el \
+. nr doc-width (\n[doc-width] / \n[doc-fixed-width])
+. \}
+. el \
+. nr doc-width 0
+..
+.ec
+.
+.
+.\" NS Ql user macro
+.\" NS quoted literal define
+.\" NS
+.\" NS modifies:
+.\" NS doc-macro-name
+.\" NS doc-quote-left
+.\" NS doc-quote-right
+.\" NS
+.\" NS width register 'Ql' set in doc-common
+.
+.eo
+.de Ql
+. if !\n[doc-arg-count] \{\
+. ie \n[.$] \
+. ds doc-macro-name Ql
+. el \
+. tm Usage: .Ql argument ... (#\n[.c])
+. \}
+.
+. ds doc-quote-left "\*[doc-left-singlequote]
+. ds doc-quote-right "\*[doc-right-singlequote]
+.
+. doc-enclose-string \$@
+..
+.ec
+.
+.
+.\" Local Variables:
+.\" mode: nroff
+.\" fill-column: 72
+.\" End:
+.\" vim: set filetype=groff textwidth=72:
diff --git a/tmac/mdoc/doc-syms b/tmac/mdoc/doc-syms
new file mode 100644
index 0000000..8f5998c
--- /dev/null
+++ b/tmac/mdoc/doc-syms
@@ -0,0 +1,908 @@
+.\" Copyright (c) 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\" 3. [Deleted. See
+.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
+.\" 4. Neither the name of the University nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS"
+.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+.\" PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+.\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)doc-syms 8.1 (Berkeley) 06/08/93
+.
+.
+.\" NS Ux user macro
+.\" NS format Unix
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-str-Ux
+.\" NS
+.\" NS width register 'Ux' defined in doc-common
+.
+.eo
+.de Ux
+. nr doc-curr-font \n[.f]
+. ds doc-str-Ux \f[\n[doc-curr-font]]
+.
+. if !\n[doc-arg-count] \
+. if \n[.$] \{\
+. ds doc-macro-name Ux
+. doc-parse-args \$@
+. \}
+.
+. \" replace current argument with result
+. ds doc-arg\n[doc-arg-ptr] Unix\*[doc-str-Ux]
+. rm doc-str-Ux
+. nr doc-type\n[doc-arg-ptr] 2
+. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
+.
+. \" recompute space vector for remaining arguments
+. nr doc-num-args (\n[doc-arg-count] - \n[doc-arg-ptr])
+. nr doc-arg-count \n[doc-arg-ptr]
+. if \n[doc-num-args] \
+. doc-parse-space-vector
+.
+. doc-print-recursive
+..
+.ec
+.
+.
+.\" NS Bx user macro
+.\" NS print BSD (fix smaller nroff version)
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-str-Bx
+.\" NS doc-str-Bx1
+.\" NS doc-str-Bx-XXX
+.\" NS
+.\" NS width register 'Bx' defined in doc-common
+.
+.ds doc-str-Bx-Reno \-Reno
+.ds doc-str-Bx-reno \-Reno
+.ds doc-str-Bx-Tahoe \-Tahoe
+.ds doc-str-Bx-tahoe \-Tahoe
+.ds doc-str-Bx-Lite \-Lite
+.ds doc-str-Bx-lite \-Lite
+.ds doc-str-Bx-Lite2 \-Lite2
+.ds doc-str-Bx-lite2 \-Lite2
+.
+.eo
+.de Bx
+. nr doc-curr-font \n[.f]
+. ds doc-str-Bx \f[\n[doc-curr-font]]
+.
+. \" default value if no argument
+. ds doc-str-Bx1 BSD\*[doc-str-Bx]
+.
+. if !\n[doc-arg-count] \
+. if \n[.$] \{\
+. ds doc-macro-name Bx
+. doc-parse-args \$@
+. \}
+.
+. if (\n[doc-arg-count] > \n[doc-arg-ptr]) \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
+. ie "\*[doc-arg\n[doc-arg-ptr]]"-alpha" \
+. as doc-str-Bx1 " (currently in alpha test)
+. el \{ .ie "\*[doc-arg\n[doc-arg-ptr]]"-beta" \
+. as doc-str-Bx1 " (currently in beta test)
+. el \{ .ie "\*[doc-arg\n[doc-arg-ptr]]"-devel" \
+. as doc-str-Bx1 " (currently under development)
+. el \{\
+. ds doc-str-Bx1 \&\*[doc-arg\n[doc-arg-ptr]]\^
+. as doc-str-Bx1 BSD\*[doc-str-Bx]
+.
+. if (\n[doc-arg-count] > \n[doc-arg-ptr]) \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
+. ie d doc-str-Bx-\*[doc-arg\n[doc-arg-ptr]] \
+. as doc-str-Bx1 "\*[doc-str-Bx-\*[doc-arg\n[doc-arg-ptr]]]
+. el \
+. nr doc-arg-ptr -1
+. \}
+. el \
+. nr doc-arg-ptr -1
+. \}
+. el \
+. nr doc-arg-ptr -1
+. \}\}\}\}\}
+. el \
+. nr doc-arg-ptr -1
+. \}
+.
+. \" replace current argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Bx1]
+. nr doc-type\n[doc-arg-ptr] 2
+. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
+.
+. \" recompute space vector for remaining arguments
+. nr doc-num-args (\n[doc-arg-count] - \n[doc-arg-ptr])
+. nr doc-arg-count \n[doc-arg-ptr]
+. if \n[doc-num-args] \
+. doc-parse-space-vector
+.
+. doc-print-recursive
+..
+.ec
+.
+.
+.\" NS Ud user macro (not parsed, not callable)
+.\" NS print "currently under development" (HISTORY section)
+.\" NS
+.\" NS width register 'Ud' defined in doc-common
+.
+.eo
+.de Ud
+. nop \&currently under development.
+..
+.ec
+.
+.
+.\" NS At user macro
+.\" NS print AT&T UNIX
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-str-At
+.\" NS doc-str-At1
+.\" NS doc-str-At-XXX
+.\" NS
+.\" NS width register 'At' defined in doc-common
+.
+.eo
+.ds doc-str-At-32v \&Version\~7
+.as doc-str-At-32v " AT&T UNIX\*[doc-str-At]/32V
+.ds doc-str-At-v1 \&Version\~1
+.as doc-str-At-v1 " AT&T UNIX\*[doc-str-At]
+.ds doc-str-At-v2 \&Version\~2
+.as doc-str-At-v2 " AT&T UNIX\*[doc-str-At]
+.ds doc-str-At-v3 \&Version\~3
+.as doc-str-At-v3 " AT&T UNIX\*[doc-str-At]
+.ds doc-str-At-v4 \&Version\~4
+.as doc-str-At-v4 " AT&T UNIX\*[doc-str-At]
+.ds doc-str-At-v5 \&Version\~5
+.as doc-str-At-v5 " AT&T UNIX\*[doc-str-At]
+.ds doc-str-At-v6 \&Version\~6
+.as doc-str-At-v6 " AT&T UNIX\*[doc-str-At]
+.ds doc-str-At-v7 \&Version\~7
+.as doc-str-At-v7 " AT&T UNIX\*[doc-str-At]
+.ds doc-str-At-III AT&T\*[doc-str-At] System\~III
+.as doc-str-At-III " UNIX\*[doc-str-At]
+.ds doc-str-At-V AT&T\*[doc-str-At] System\~V
+.as doc-str-At-V " UNIX\*[doc-str-At]
+.ds doc-str-At-V.1 AT&T\*[doc-str-At] System\~V Release\~1
+.as doc-str-At-V.1 " UNIX\*[doc-str-At]
+.ds doc-str-At-V.2 AT&T\*[doc-str-At] System\~V Release\~2
+.as doc-str-At-V.2 " UNIX\*[doc-str-At]
+.ds doc-str-At-V.3 AT&T\*[doc-str-At] System\~V Release\~3
+.as doc-str-At-V.3 " UNIX\*[doc-str-At]
+.ds doc-str-At-V.4 AT&T\*[doc-str-At] System\~V Release\~4
+.as doc-str-At-V.4 " UNIX\*[doc-str-At]
+.
+.de At
+. nr doc-curr-font \n[.f]
+. ds doc-str-At \f[\n[doc-curr-font]]
+.
+. \" default value if no argument
+. ds doc-str-At1 AT&T UNIX\*[doc-str-At]
+.
+. if !\n[doc-arg-count] \
+. if \n[.$] \{\
+. ds doc-macro-name At
+. doc-parse-args \$@
+. \}
+.
+. if (\n[doc-arg-count] > \n[doc-arg-ptr]) \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
+. ie \A'\*[doc-arg\n[doc-arg-ptr]]' \{\
+. ie d doc-str-At-\*[doc-arg\n[doc-arg-ptr]] \
+. ds doc-str-At1 "\*[doc-str-At-\*[doc-arg\n[doc-arg-ptr]]]
+. el \{\
+. tmc mdoc warning: .At: Unknown AT&T UNIX version
+. tm1 " '\*[doc-arg\n[doc-arg-ptr]]' (#\n[.c])
+. nr doc-arg-ptr -1
+. \}\}
+. el \
+. nr doc-arg-ptr -1
+. \}
+. el \
+. nr doc-arg-ptr -1
+. \}
+.
+. \" replace current argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-At1]
+. nr doc-type\n[doc-arg-ptr] 2
+. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
+.
+. \" recompute space vector for remaining arguments
+. nr doc-num-args (\n[doc-arg-count] - \n[doc-arg-ptr])
+. nr doc-arg-count \n[doc-arg-ptr]
+. if \n[doc-num-args] \
+. doc-parse-space-vector
+.
+. doc-print-recursive
+..
+.ec
+.
+.
+.\" NS Dx user macro
+.\" NS print DragonFly
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-str-Dx
+.\" NS doc-str-Dx1
+.\" NS
+.\" NS width register 'Dx' defined in doc-common
+.
+.\" we use the doc-operating-system-DragonFly-* strings defined in
+.\" doc-common
+.
+.eo
+.de Dx
+. nr doc-curr-font \n[.f]
+. ds doc-str-Dx \f[\n[doc-curr-font]]
+.
+. \" default value if no argument
+. ds doc-str-Dx1 \%DragonFly\*[doc-str-Dx]
+.
+. if !\n[doc-arg-count] \
+. if \n[.$] \{\
+. ds doc-macro-name Dx
+. doc-parse-args \$@
+. \}
+.
+. if (\n[doc-arg-count] > \n[doc-arg-ptr]) \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
+. ie \A'\*[doc-arg\n[doc-arg-ptr]]' \{\
+. ie d doc-operating-system-DragonFly-\*[doc-arg\n[doc-arg-ptr]] \
+. as doc-str-Dx1 \~\*[doc-operating-system-DragonFly-\*[doc-arg\n[doc-arg-ptr]]]
+. el \{\
+. tmc mdoc warning: .Dx: Unknown DragonFly version
+. tm1 " '\*[doc-arg\n[doc-arg-ptr]]' (#\n[.c])
+. as doc-str-Dx1 \~\*[doc-arg\n[doc-arg-ptr]]
+. \}\}
+. el \
+. as doc-str-Dx1 \~\*[doc-arg\n[doc-arg-ptr]]
+. \}
+. el \
+. nr doc-arg-ptr -1
+. \}
+.
+. \" replace current argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Dx1]
+. nr doc-type\n[doc-arg-ptr] 2
+. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
+.
+. \" recompute space vector for remaining arguments
+. nr doc-num-args (\n[doc-arg-count] - \n[doc-arg-ptr])
+. nr doc-arg-count \n[doc-arg-ptr]
+. if \n[doc-num-args] \
+. doc-parse-space-vector
+.
+. doc-print-recursive
+..
+.ec
+.
+.
+.\" NS Fx user macro
+.\" NS print FreeBSD
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-str-Fx
+.\" NS doc-str-Fx1
+.\" NS
+.\" NS width register 'Fx' defined in doc-common
+.
+.\" we use the doc-operating-system-FreeBSD-* strings defined in
+.\" doc-common
+.
+.eo
+.de Fx
+. nr doc-curr-font \n[.f]
+. ds doc-str-Fx \f[\n[doc-curr-font]]
+.
+. \" default value if no argument
+. ds doc-str-Fx1 \%FreeBSD\*[doc-str-Fx]
+.
+. if !\n[doc-arg-count] \
+. if \n[.$] \{\
+. ds doc-macro-name Fx
+. doc-parse-args \$@
+. \}
+.
+. if (\n[doc-arg-count] > \n[doc-arg-ptr]) \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
+. ie \A'\*[doc-arg\n[doc-arg-ptr]]' \{\
+. ie d doc-operating-system-FreeBSD-\*[doc-arg\n[doc-arg-ptr]] \
+. as doc-str-Fx1 \~\*[doc-operating-system-FreeBSD-\*[doc-arg\n[doc-arg-ptr]]]
+. el \{\
+. tmc mdoc warning: .Fx: Unknown FreeBSD version
+. tm1 " '\*[doc-arg\n[doc-arg-ptr]]' (#\n[.c])
+. as doc-str-Fx1 \~\*[doc-arg\n[doc-arg-ptr]]
+. \}\}
+. el \
+. as doc-str-Fx1 \~\*[doc-arg\n[doc-arg-ptr]]
+. \}
+. el \
+. nr doc-arg-ptr -1
+. \}
+.
+. \" replace current argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Fx1]
+. nr doc-type\n[doc-arg-ptr] 2
+. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
+.
+. \" recompute space vector for remaining arguments
+. nr doc-num-args (\n[doc-arg-count] - \n[doc-arg-ptr])
+. nr doc-arg-count \n[doc-arg-ptr]
+. if \n[doc-num-args] \
+. doc-parse-space-vector
+.
+. doc-print-recursive
+..
+.ec
+.
+.
+.\" NS Nx user macro
+.\" NS print NetBSD
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-str-Nx
+.\" NS doc-str-Nx1
+.\" NS
+.\" NS width register 'Nx' defined in doc-common
+.
+.\" we use the doc-operating-system-NetBSD-* strings defined in
+.\" doc-common
+.
+.eo
+.de Nx
+. nr doc-curr-font \n[.f]
+. ds doc-str-Nx \f[\n[doc-curr-font]]
+.
+. \" default value if no argument
+. ds doc-str-Nx1 \%Net
+. as doc-str-Nx1 BSD\*[doc-str-Nx]
+.
+. if !\n[doc-arg-count] \
+. if \n[.$] \{\
+. ds doc-macro-name Nx
+. doc-parse-args \$@
+. \}
+.
+. if (\n[doc-arg-count] > \n[doc-arg-ptr]) \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
+. ie \A'\*[doc-arg\n[doc-arg-ptr]]' \{\
+. ie d doc-operating-system-NetBSD-\*[doc-arg\n[doc-arg-ptr]] \
+. as doc-str-Nx1 \~\*[doc-operating-system-NetBSD-\*[doc-arg\n[doc-arg-ptr]]]
+. el \{\
+. tmc mdoc warning: .Nx: Unknown NetBSD version
+. tm1 " '\*[doc-arg\n[doc-arg-ptr]]' (#\n[.c])
+. as doc-str-Nx1 \~\*[doc-arg\n[doc-arg-ptr]]
+. \}\}
+. el \
+. as doc-str-Nx1 \~\*[doc-arg\n[doc-arg-ptr]]
+. \}
+. el \
+. nr doc-arg-ptr -1
+. \}
+.
+. \" replace current argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Nx1]
+. nr doc-type\n[doc-arg-ptr] 2
+. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
+.
+. \" recompute space vector for remaining arguments
+. nr doc-num-args (\n[doc-arg-count] - \n[doc-arg-ptr])
+. nr doc-arg-count \n[doc-arg-ptr]
+. if \n[doc-num-args] \
+. doc-parse-space-vector
+.
+. doc-print-recursive
+..
+.ec
+.
+.
+.\" NS Ox user macro
+.\" NS print OpenBSD
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-str-Ox
+.\" NS doc-str-Ox1
+.\" NS
+.\" NS width register 'Ox' defined in doc-common
+.
+.eo
+.de Ox
+. nr doc-curr-font \n[.f]
+. ds doc-str-Ox \f[\n[doc-curr-font]]
+.
+. \" default value if no argument
+. ds doc-str-Ox1 \%OpenBSD\*[doc-str-Ox]
+.
+. if !\n[doc-arg-count] \
+. if \n[.$] \{\
+. ds doc-macro-name Ox
+. doc-parse-args \$@
+. \}
+.
+. if (\n[doc-arg-count] > \n[doc-arg-ptr]) \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \
+. as doc-str-Ox1 \~\*[doc-arg\n[doc-arg-ptr]]
+. el \
+. nr doc-arg-ptr -1
+. \}
+.
+. \" replace current argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Ox1]
+. nr doc-type\n[doc-arg-ptr] 2
+. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
+.
+. \" recompute space vector for remaining arguments
+. nr doc-num-args (\n[doc-arg-count] - \n[doc-arg-ptr])
+. nr doc-arg-count \n[doc-arg-ptr]
+. if \n[doc-num-args] \
+. doc-parse-space-vector
+.
+. doc-print-recursive
+..
+.ec
+.
+.
+.\" NS Bsx user macro
+.\" NS print BSD/OS
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-str-Bsx
+.\" NS doc-str-Bsx1
+.\" NS
+.\" NS width register 'Bsx' defined in doc-common
+.
+.eo
+.de Bsx
+. nr doc-curr-font \n[.f]
+. ds doc-str-Bsx \f[\n[doc-curr-font]]
+.
+. \" default value if no argument
+. ds doc-str-Bsx1 BSD/OS\*[doc-str-Bsx]
+.
+. if !\n[doc-arg-count] \
+. if \n[.$] \{\
+. ds doc-macro-name Bsx
+. doc-parse-args \$@
+. \}
+.
+. if (\n[doc-arg-count] > \n[doc-arg-ptr]) \{\
+. nr doc-arg-ptr +1
+. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \
+. as doc-str-Bsx1 \~\*[doc-arg\n[doc-arg-ptr]]
+. el \
+. nr doc-arg-ptr -1
+. \}
+.
+. \" replace current argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Bsx1]
+. nr doc-type\n[doc-arg-ptr] 2
+. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
+.
+. \" recompute space vector for remaining arguments
+. nr doc-num-args (\n[doc-arg-count] - \n[doc-arg-ptr])
+. nr doc-arg-count \n[doc-arg-ptr]
+. if \n[doc-num-args] \
+. doc-parse-space-vector
+.
+. doc-print-recursive
+..
+.ec
+.
+.
+.\" The Bt macro should go away now
+.
+.\" NS Bt user macro (not parsed, not callable)
+.\" NS print "is currently in beta test." (HISTORY section)
+.\" NS
+.\" NS width register 'Bt' defined in doc-common
+.
+.eo
+.de Bt
+. nop \&is currently in beta test.
+..
+.ec
+.
+.
+.\" NS Px user macro
+.\" NS print POSIX
+.
+.eo
+.ds Px \%POSIX
+.ec
+.
+.
+.\" NS Ai user macro
+.\" NS print ANSI
+.
+.eo
+.ds Ai \%ANSI
+.ec
+.
+.
+.\" NS St user macro
+.\" NS standards (posix, ansi - formal standard names)
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-reg-St
+.\" NS doc-str-St
+.\" NS doc-str-St1
+.\" NS doc-str-St-XXX
+.\" NS
+.\" NS width register 'St' defined in doc-common
+.
+.\" ANSI/ISO C
+.eo
+.ds doc-str-St--ansiC-89 \*[Ai] \*[doc-str-St]X\^3.159-1989
+.as doc-str-St--ansiC-89 " (\*[Lq]\)\*[Ai]\~C89\*[doc-str-St]\*[Rq])
+.als doc-str-St--ansiC doc-str-St--ansiC-89
+.ds doc-str-St--isoC ISO/IEC\*[doc-str-St] 9899:1990
+.as doc-str-St--isoC " (\*[Lq]ISO\~C\^90\*[doc-str-St]\*[Rq])
+.als doc-str-St--isoC-90 doc-str-St--isoC
+.ds doc-str-St--isoC-2011 ISO/IEC\*[doc-str-St] 9899:2011
+.as doc-str-St--isoC-2011 " (\*[Lq]ISO\~C\^11\*[doc-str-St]\*[Rq])
+.ds doc-str-St--isoC-99 ISO/IEC\*[doc-str-St] 9899:1999
+.as doc-str-St--isoC-99 " (\*[Lq]ISO\~C\^99\*[doc-str-St]\*[Rq])
+.ds doc-str-St--isoC-amd1 ISO/IEC\*[doc-str-St] 9899/AMD1:1995
+.as doc-str-St--isoC-amd1 " (\*[Lq]ISO\~C\^90\*[doc-str-St], Amendment 1\*[Rq])
+.ds doc-str-St--isoC-tcor1 ISO/IEC\*[doc-str-St] 9899/TCOR1:1994
+.as doc-str-St--isoC-tcor1 " (\*[Lq]ISO\~C\^90\*[doc-str-St], Technical Corrigendum 1\*[Rq])
+.ds doc-str-St--isoC-tcor2 ISO/IEC\*[doc-str-St] 9899/TCOR2:1995
+.as doc-str-St--isoC-tcor2 " (\*[Lq]ISO\~C\^90\*[doc-str-St], Technical Corrigendum 2\*[Rq])
+.ec
+.
+.\" POSIX Part 1: System API
+.eo
+.ds doc-str-St--p1003.1 \%IEEE\*[doc-str-St] Std 1003.1
+.as doc-str-St--p1003.1 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1b \%IEEE\*[doc-str-St] Std 1003.1b
+.as doc-str-St--p1003.1b " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1-88 \%IEEE\*[doc-str-St] Std 1003.1-1988
+.as doc-str-St--p1003.1-88 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1-90 ISO/IEC\*[doc-str-St] 9945-1:1990
+.as doc-str-St--p1003.1-90 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.als doc-str-St--iso9945-1-90 doc-str-St--p1003.1-90
+.ds doc-str-St--p1003.1b-93 \%IEEE\*[doc-str-St] Std 1003.1b-1993
+.as doc-str-St--p1003.1b-93 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1c-95 \%IEEE\*[doc-str-St] Std 1003.1c-1995
+.as doc-str-St--p1003.1c-95 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1i-95 \%IEEE\*[doc-str-St] Std 1003.1i-1995
+.as doc-str-St--p1003.1i-95 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1-96 ISO/IEC\*[doc-str-St] 9945-1:1996
+.as doc-str-St--p1003.1-96 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.als doc-str-St--iso9945-1-96 doc-str-St--p1003.1-96
+.ds doc-str-St--p1003.1g-2000 \%IEEE\*[doc-str-St] Std 1003.1g-2000
+.as doc-str-St--p1003.1g-2000 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1-2001 \%IEEE\*[doc-str-St] Std 1003.1-2001
+.as doc-str-St--p1003.1-2001 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1-2004 \%IEEE\*[doc-str-St] Std 1003.1-2004
+.as doc-str-St--p1003.1-2004 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ds doc-str-St--p1003.1-2008 \%IEEE\*[doc-str-St] Std 1003.1-2008
+.as doc-str-St--p1003.1-2008 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])
+.ec
+.
+.\" POSIX Part 2: Shell and Utilities
+.eo
+.ds doc-str-St--p1003.2 \%IEEE\*[doc-str-St] Std 1003.2
+.as doc-str-St--p1003.2 " (\*[Lq]\)\*[Px]\*[doc-str-St].2\*[Rq])
+.ds doc-str-St--p1003.2-92 \%IEEE\*[doc-str-St] Std 1003.2-1992
+.as doc-str-St--p1003.2-92 " (\*[Lq]\)\*[Px]\*[doc-str-St].2\*[Rq])
+.ds doc-str-St--p1003.2a-92 \%IEEE\*[doc-str-St] Std 1003.2a-1992
+.as doc-str-St--p1003.2a-92 " (\*[Lq]\)\*[Px]\*[doc-str-St].2\*[Rq])
+.ds doc-str-St--iso9945-2-93 ISO/IEC\*[doc-str-St] 9945-2:1993
+.as doc-str-St--iso9945-2-93 " (\*[Lq]\)\*[Px]\*[doc-str-St].2\*[Rq])
+.ec
+.
+.\" X/Open
+.eo
+.ds doc-str-St--susv1 Version\~1 of the Single UNIX\*[doc-str-St] Specification
+.as doc-str-St--susv1 " (\*[Lq]SUSv1\*[doc-str-St]\*[Rq])
+.ds doc-str-St--susv2 Version\~2 of the Single UNIX\*[doc-str-St] Specification
+.as doc-str-St--susv2 " (\*[Lq]SUSv2\*[doc-str-St]\*[Rq])
+.ds doc-str-St--susv3 Version\~3 of the Single UNIX\*[doc-str-St] Specification
+.as doc-str-St--susv3 " (\*[Lq]SUSv3\*[doc-str-St]\*[Rq])
+.ds doc-str-St--susv4 Version\~4 of the Single UNIX\*[doc-str-St] Specification
+.as doc-str-St--susv4 " (\*[Lq]SUSv4\*[doc-str-St]\*[Rq])
+.ds doc-str-St--svid4 System\~V Interface Definition, Fourth Edition
+.as doc-str-St--svid4 " (\*[Lq]SVID\*[doc-str-St]\^4\*[Rq])
+.ds doc-str-St--xbd5 X/Open\*[doc-str-St] Base Definitions Issue\~5
+.as doc-str-St--xbd5 " (\*[Lq]XBD\*[doc-str-St]\^5\*[Rq])
+.ds doc-str-St--xcu5 X/Open\*[doc-str-St] Commands and Utilities Issue\~5
+.as doc-str-St--xcu5 " (\*[Lq]XCU\*[doc-str-St]\^5\*[Rq])
+.ds doc-str-St--xcurses4.2 X/Open\*[doc-str-St] Curses Issue\~4, Version\~2
+.as doc-str-St--xcurses4.2 " (\*[Lq]XCURSES\*[doc-str-St]\^4.2\*[Rq])
+.ds doc-str-St--xns5 X/Open\*[doc-str-St] Networking Services Issue\~5
+.as doc-str-St--xns5 " (\*[Lq]XNS\*[doc-str-St]\^5\*[Rq])
+.ds doc-str-St--xns5.2 X/Open\*[doc-str-St] Networking Services Issue\~5.2
+.as doc-str-St--xns5.2 " (\*[Lq]XNS\*[doc-str-St]\^5.2\*[Rq])
+.ds doc-str-St--xpg3 X/Open\*[doc-str-St] Portability Guide Issue\~3
+.as doc-str-St--xpg3 " (\*[Lq]XPG\*[doc-str-St]\^3\*[Rq])
+.ds doc-str-St--xpg4 X/Open\*[doc-str-St] Portability Guide Issue\~4
+.as doc-str-St--xpg4 " (\*[Lq]XPG\*[doc-str-St]\^4\*[Rq])
+.ds doc-str-St--xpg4.2 X/Open\*[doc-str-St] Portability Guide Issue\~4, Version\~2
+.as doc-str-St--xpg4.2 " (\*[Lq]XPG\*[doc-str-St]\^4.2\*[Rq])
+.ds doc-str-St--xsh5 X/Open\*[doc-str-St] System Interfaces and Headers Issue\~5
+.as doc-str-St--xsh5 " (\*[Lq]XSH\*[doc-str-St]\^5\*[Rq])
+.ec
+.
+.\" Miscellaneous
+.eo
+.ds doc-str-St--ieee754 \%IEEE\*[doc-str-St] Std 754-1985
+.ds doc-str-St--ieee1275-94 \%IEEE\*[doc-str-St] Std 1275-1994
+.as doc-str-St--ieee1275-94 " (\*[Lq]Open Firmware\*[doc-str-St]\*[Rq])
+.ds doc-str-St--iso8601 ISO\*[doc-str-St] 8601
+.ds doc-str-St--iso8802-3 ISO/IEC\*[doc-str-St] 8802-3:1989
+.ec
+.
+.eo
+.de St
+. if !\n[doc-arg-count] \{\
+. ie \n[.$] \{\
+. ds doc-macro-name St
+. doc-parse-args \$@
+. \}
+. el \
+. doc-St-usage
+. \}
+.
+. if !\n[doc-arg-count] \
+. return
+.
+. nr doc-arg-ptr +1
+. ie (\n[doc-arg-count] >= \n[doc-arg-ptr]) \{\
+. nr doc-curr-font \n[.f]
+. ds doc-str-St \f[\n[doc-curr-font]]
+.
+. ds doc-str-St1
+. ie \A'\*[doc-arg\n[doc-arg-ptr]]' \{\
+. ie d doc-str-St-\*[doc-arg\n[doc-arg-ptr]] \
+. ds doc-str-St1 "\*[doc-str-St-\*[doc-arg\n[doc-arg-ptr]]]
+. el \{\
+. tmc "mdoc warning: .St: Unknown standard abbreviation
+. tm1 " '\*[doc-arg\n[doc-arg-ptr]]' (#\n[.c])
+. tm1 " Please refer to the groff_mdoc(7) manpage for a
+. tm1 " list of available standard abbreviations.
+. \}\}
+. el \
+. doc-St-usage
+.
+. \" replacing argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-St1]
+.
+. doc-print-recursive
+. \}
+. el \{\
+. doc-St-usage
+. doc-reset-args
+. \}
+..
+.ec
+.
+.
+.\" NS doc-St-usage macro
+.
+.eo
+.de doc-St-usage
+. tm1 "Usage: .St standard (#\n[.c])
+. tm1 " Please refer to the groff_mdoc(7) manpage for a list of
+. tm1 " available standard abbreviations.
+..
+.ec
+.
+.
+.\" NS Lb user macro
+.\" NS formal library names for LIBRARY sections
+.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-macro-name
+.\" NS
+.\" NS local variable:
+.\" NS doc-reg-Lb
+.\" NS doc-str-Lb
+.\" NS doc-str-Lb1
+.\" NS doc-str-Lb-XXX
+.\" NS
+.\" NS width register 'Lb' defined in doc-common
+.
+.eo
+.ds doc-str-Lb-libarchive Reading and Writing Streaming Archives Library (libarchive, \-larchive)
+.ds doc-str-Lb-libarm ARM Architecture Library (libarm, \-larm)
+.ds doc-str-Lb-libarm32 ARM32 Architecture Library (libarm32, \-larm32)
+.ds doc-str-Lb-libbluetooth Bluetooth Library (libbluetooth, \-lbluetooth)
+.ds doc-str-Lb-libbsm Basic Security Module Library (libbsm, \-lbsm)
+.ds doc-str-Lb-libc Standard C\~Library (libc, \-lc)
+.ds doc-str-Lb-libc_r Reentrant C\~Library (libc_r, \-lc_r)
+.ds doc-str-Lb-libcalendar Calendar Arithmetic Library (libcalendar, \-lcalendar)
+.ds doc-str-Lb-libcam Common Access Method User Library (libcam, \-lcam)
+.ds doc-str-Lb-libcdk Curses Development Kit Library (libcdk, \-lcdk)
+.ds doc-str-Lb-libcipher FreeSec Crypt Library (libcipher, \-lcipher)
+.ds doc-str-Lb-libcompat Compatibility Library (libcompat, \-lcompat)
+.ds doc-str-Lb-libcrypt Crypt Library (libcrypt, \-lcrypt)
+.ds doc-str-Lb-libcurses Curses Library (libcurses, \-lcurses)
+.ds doc-str-Lb-libdevinfo Device and Resource Information Utility Library (libdevinfo, \-ldevinfo)
+.ds doc-str-Lb-libdevstat Device Statistics Library (libdevstat, \-ldevstat)
+.ds doc-str-Lb-libdisk Interface to Slice and Partition Labels Library (libdisk, \-ldisk)
+.ds doc-str-Lb-libdwarf DWARF Access Library (libdwarf, \-ldwarf)
+.ds doc-str-Lb-libedit Command Line Editor Library (libedit, \-ledit)
+.ds doc-str-Lb-libelf ELF Access Library (libelf, \-lelf)
+.ds doc-str-Lb-libevent Event Notification Library (libevent, \-levent)
+.ds doc-str-Lb-libfetch File Transfer Library for URLs (libfetch, \-lfetch)
+.ds doc-str-Lb-libform Curses Form Library (libform, \-lform)
+.ds doc-str-Lb-libgeom Userland API Library for kernel GEOM subsystem (libgeom, \-lgeom)
+.ds doc-str-Lb-libgpib General-Purpose Instrument Bus (GPIB) library (libgpib, \-lgpib)
+.ds doc-str-Lb-libi386 i386 Architecture Library (libi386, \-li386)
+.ds doc-str-Lb-libintl Internationalized Message Handling Library (libintl, \-lintl)
+.ds doc-str-Lb-libipsec IPsec Policy Control Library (libipsec, \-lipsec)
+.ds doc-str-Lb-libipx IPX Address Conversion Support Library (libipx, \-lipx)
+.ds doc-str-Lb-libiscsi iSCSI protocol library (libiscsi, \-liscsi)
+.ds doc-str-Lb-libjail Jail Library (libjail, \-ljail)
+.ds doc-str-Lb-libkiconv Kernel side iconv library (libkiconv, \-lkiconv)
+.ds doc-str-Lb-libkse N:M Threading Library (libkse, \-lkse)
+.ds doc-str-Lb-libkvm Kernel Data Access Library (libkvm, \-lkvm)
+.ds doc-str-Lb-libm Math Library (libm, \-lm)
+.ds doc-str-Lb-libm68k m68k Architecture Library (libm68k, \-lm68k)
+.ds doc-str-Lb-libmagic Magic Number Recognition Library (libmagic, \-lmagic)
+.ds doc-str-Lb-libmd Message Digest (MD4, MD5, etc.) Support Library (libmd, \-lmd)
+.ds doc-str-Lb-libmemstat Kernel Memory Allocator Statistics Library (libmemstat, \-lmemstat)
+.ds doc-str-Lb-libmenu Curses Menu Library (libmenu, \-lmenu)
+.ds doc-str-Lb-libnetgraph Netgraph User Library (libnetgraph, \-lnetgraph)
+.ds doc-str-Lb-libnetpgp Netpgp signing, verification, encryption and decryption (libnetpgp, \-lnetpgp)
+.ds doc-str-Lb-libossaudio OSS Audio Emulation Library (libossaudio, \-lossaudio)
+.ds doc-str-Lb-libpam Pluggable Authentication Module Library (libpam, \-lpam)
+.ds doc-str-Lb-libpcap Packet Capture Library (libpcap, \-lpcap)
+.ds doc-str-Lb-libpci PCI Bus Access Library (libpci, \-lpci)
+.ds doc-str-Lb-libpmc Performance Counters Library (libpmc, \-lpmc)
+.ds doc-str-Lb-libposix \*[Px] \*[doc-str-Lb]Compatibility Library (libposix, \-lposix)
+.ds doc-str-Lb-libprop Property Container Object Library (libprop, \-lprop)
+.ds doc-str-Lb-libpthread \*[Px] \*[doc-str-Lb]Threads Library (libpthread, \-lpthread)
+.ds doc-str-Lb-libpuffs puffs Convenience Library (libpuffs, \-lpuffs)
+.ds doc-str-Lb-librefuse File System in Userspace Convenience Library (librefuse, \-lrefuse)
+.ds doc-str-Lb-libresolv DNS Resolver Library (libresolv, \-lresolv)
+.ds doc-str-Lb-librpcsec_gss RPC GSS-API Authentication Library (librpcsec_gss, \-lrpcsec_gss)
+.ds doc-str-Lb-librpcsvc RPC Service Library (librpcsvc, \-lrpcsvc)
+.ds doc-str-Lb-librt \*[Px] \*[doc-str-Lb]Real-time Library (librt, \-lrt)
+.ds doc-str-Lb-libsdp Bluetooth Service Discovery Protocol User Library (libsdp, \-lsdp)
+.ds doc-str-Lb-libssp Buffer Overflow Protection Library (libssp, \-lssp)
+.ds doc-str-Lb-libSystem System Library (libSystem, \-lSystem)
+.ds doc-str-Lb-libtermcap Termcap Access Library (libtermcap, \-ltermcap)
+.ds doc-str-Lb-libterminfo Terminal Information Library (libterminfo, \-lterminfo)
+.ds doc-str-Lb-libthr 1:1 Threading Library (libthr, \-lthr)
+.ds doc-str-Lb-libufs UFS File System Access Library (libufs, \-lufs)
+.ds doc-str-Lb-libugidfw File System Firewall Interface Library (libugidfw, \-lugidfw)
+.ds doc-str-Lb-libulog User Login Record Library (libulog, \-lulog)
+.ds doc-str-Lb-libusbhid USB Human Interface Devices Library (libusbhid, \-lusbhid)
+.ds doc-str-Lb-libutil System Utilities Library (libutil, \-lutil)
+.ds doc-str-Lb-libvgl Video Graphics Library (libvgl, \-lvgl)
+.ds doc-str-Lb-libx86_64 x86_64 Architecture Library (libx86_64, \-lx86_64)
+.ds doc-str-Lb-libz Compression Library (libz, \-lz)
+.ec
+.
+.eo
+.de Lb
+. if !\n[doc-arg-count] \{\
+. ie \n[.$] \{\
+. ds doc-macro-name Lb
+. doc-parse-args \$@
+. \}
+. el \
+. tm Usage: .Lb library_name ... (#\n[.c])
+. \}
+.
+. if !\n[doc-arg-count] \
+. return
+.
+. nr doc-arg-ptr +1
+. ie (\n[doc-arg-count] >= \n[doc-arg-ptr]) \{\
+. nr doc-curr-font \n[.f]
+. ds doc-str-Lb \f[\n[doc-curr-font]]
+.
+. ie d doc-str-Lb-\*[doc-arg\n[doc-arg-ptr]] \
+. ds doc-str-Lb1 "\*[doc-str-Lb-\*[doc-arg\n[doc-arg-ptr]]]
+. el \{\
+. tmc "mdoc warning: .Lb: no description for library
+. tm1 " '\*[doc-arg\n[doc-arg-ptr]]' available (#\n[.c])
+. ds doc-str-Lb1 library \*[Lq]\*[doc-arg\n[doc-arg-ptr]]\*[Rq]
+. \}
+.
+. \" replacing argument with result
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Lb1]
+.
+. if \n[doc-in-library-section] \
+. br
+. doc-print-recursive
+. if \n[doc-in-library-section] \
+. br
+. \}
+. el \{\
+. tm Usage: .Lb library_name ... (#\n[.c])
+. doc-reset-args
+. \}
+..
+.ec
+.
+.
+.\" Local Variables:
+.\" mode: nroff
+.\" fill-column: 72
+.\" End:
+.\" vim: set filetype=groff textwidth=72: