.\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Copyright 1999-2025 Free Software Foundation, Inc. .\" .\" 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 . . .\" The following strings are part of mdoc(7)'s documented interface. .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 Am & .ds Na \f[I]NaN\f[] .ds Ba \f[R]|\f[] .\" See doc-{ditroff,nroff} for `ua`, `Pi`, and `If`. . .\" 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 . .\" Macros that are part of the external interface (Dd, Sh, Pp, etc.) or .\" that are called by traps of any kind must be defined with `de1` .\" because they might be called from a context where compatibility mode .\" is enabled. For other macros, `de` suffices. . .eo .de1 doc-bp . if \n[.br] .br .. .ec . . .\" In continuous rendering mode, make page breaks less potent and the .\" page length "infinite". .if \n[cR] \{\ . rn bp doc-real-bp . rn doc-bp bp . pl \n[.R]u/1v .\} . . .\" header assembly macros . .\" NS doc-page-identifier global string .\" NS the title of the manual page . .ds doc-page-identifier 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 - 1v) . wh \n[doc-footer-location]u doc-footer . wh (\n[doc-footer-location]u - .5i) doc-break-body-text . rr doc-footer-location . \} .. .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-end-previous-document] \{\ . if \n[cR] .doc-end-document . . \" Clear the page header trap so it is not sprung with stale . \" information. . ch doc-header . if !\n[cR] .doc-break-page-with-new-number . \} . if \n[C] .rr P . . \" When rendering multiple documents, we want to clear any page-local . \" manipulation of hyphenation and adjustment modes from the previous . \" document. . rr HY . rm AD . . doc-reset-titles . doc-reset-hyphenation-mode \n[andoc*HY] . doc-reset-adjustment-mode \*[andoc*AD] . . if !\n[.$] \ . doc-warn .Dd directive expects an argument . 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-identifier .\" 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[.$] \ . doc-warn .Dt directive expects one or more arguments . if !"\$1"" \ . ds doc-page-identifier "\$1 . . if \n[CT] \ . stringup doc-page-identifier . . 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 Debian\" . . .\" 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 doc-page-tag .\" 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 \ . doc-warn .Os: Unknown BSD version '\$2' . \}\} . 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 \ . doc-warn .Os: Unknown FreeBSD version '\$2' . \}\} . 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 \ . doc-warn .Os: Unknown DragonFly version '\$2' . \}\} . 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 \ . doc-warn .Os: Unknown NetBSD version '\$2' . \}\} . 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 \ . doc-warn .Os: Unknown OpenBSD version '\$2' . \}\} . 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 \ . doc-warn .Os: Unknown Darwin version '\$2' . \}\} . el \{\ . ds doc-operating-system \$1 . if !"\$2"" \ . as doc-operating-system " \$2 . \}\}\}\}\}\}\}\} . . doc-set-up-titles . . if '\*[.T]'pdf' \{\ . ds doc-page-tag "\*[doc-page-identifier](\*[doc-section])\" . pdfbookmark -T "\*[doc-page-tag]" 1 "\*[doc-page-tag]" . rm doc-page-tag . \} . . doc-header . nr doc-end-previous-document 1 .. .ec . . .\" 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 .de1 doc-header . ds doc-xref \f[\*[doc-page-identifier-font]]\*[doc-page-identifier]\f[]\" . as doc-xref \f[\*[doc-page-section-font]](\*[doc-section])\f[]\" . ds doc-abbv \*[doc-page-identifier]\" . ev doc-env-dh . doc-setup-page-layout . ie \n[cR] .pl +1v . el .sp |(.5i - .5m) . nr doc-reg-dh \w'\f[\*[doc-page-identifier-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 \f[\*[doc-page-identifier-font]]\*[doc-abbv]\f[]\" . as doc-xref \f[\*[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'\f[\*[doc-page-identifier-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 .5i . 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). .de1 doc-break-body-text ' bp .. . . .\" NS doc-footer macro .\" NS print page footer .\" .\" NS local variables: .\" NS doc-xref .\" NS doc-page-id . .eo .de1 doc-footer . ds doc-xref \f[\*[doc-page-identifier-font]]\*[doc-page-identifier]\f[]\" . as doc-xref \f[\*[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] \{\ . doc-warn A .Bl directive has no matching .El . nr doc-list-depth 0 . \} . if \n[doc-display-depth] \{\ . doc-warn A .Bd directive has no matching .Ed . nr doc-display-depth 0 . \} . if \n[doc-fontmode-depth] \{\ . doc-warn A .Bf directive has no matching .Ef . nr doc-fontmode-depth 0 . \} .. .ec . . .\" NS doc-reset-titles macro .\" NS prepare for a new mdoc(7) document . .eo .de doc-reset-titles . \" Reset strings to reduce info leaks from one man page to the next. . ds doc-date-string UNDATED\" . ds doc-page-identifier UNTITLED\" . ds doc-volume LOCAL\" . ds doc-section \" empty . ds doc-operating-system \" empty . ds doc-topic-name \" empty .. .ec . . .\" NS doc-reset-adjustment-mode .\" NS Repair output line adjustment after man page meddling. .\" .\" Resetting the adjustment mode is a complicated dance. .\" 1. Man pages sometimes disable adjustment--when they do, they .\" often forget to put it back the way it was. .\" 2. When they do remember to put it back, they often fail to do .\" so correctly because of the `ad` request's quirky semantics .\" starting from Seventh Edition Unix troff/nroff. Briefly, the .\" `ad` request without arguments turns adjustment back on after .\" an `na` even if the previous adjustment mode was `l` (align to .\" the left with NO adjustment). .\" 3. The default adjustment mode historically has not been .\" predictable; it can depend on nroff vs. troff mode and on the .\" vendor of the *roff system in use. .\" 4. It's possible (and portable) to obtain the previous adjustment .\" mode via the `.j` register so that it can be saved prior to .\" meddling and restored later, but in practice man page authors .\" neglect to do so. .\" 5. groff mdoc(7)'s `AD` string isn't supported everywhere. .\" 6. We want user preferences, if expressed, to override the page .\" author's. .\" 7. Even if we didn't want (6), one page author's can override .\" another's when formatting multiple mdoc(7) documents in .\" sequence--we thus keep track of the initial adjustment mode. .\" .\" So we recover the "page's" preferred adjustment mode, if expressed .\" via `AD`, at every paragraph (and (sub)sectioning) macro call; and .\" recover the user's preferred adjustment mode at each new document by .\" accepting it as an argument (see the `Dd` macro definition). Also .\" see the initialization logic in "tmac/doc.tmac". .\" .\" This macro is at pains to distinguish alignment from adjustment. . .eo .de doc-reset-adjustment-mode . if \n[.$] .ds AD \$1\" . nr doc-want-adjustment 1 . if d AD .if '\?\*[AD]\?'\?l\?' .nr doc-want-adjustment 0 . if d AD .if '\?\*[AD]\?'\?c\?' .nr doc-want-adjustment 0 . if d AD .if '\?\*[AD]\?'\?r\?' .nr doc-want-adjustment 0 . ie \n[doc-want-adjustment] .ds doc-adjustment-mode b . el .ds doc-adjustment-mode l . ad \*[doc-adjustment-mode] . rr doc-want-adjustment .. .ec . . .\" NS doc-reset-hyphenation-mode .\" NS Repair automatic hyphenation after man page meddling. .\" .\" Resetting the hyphenation mode is a complicated dance. .\" 1. Man pages sometimes disable automatic hyphenation--when they .\" do, they nearly always forget to put it back the way it was. .\" 2. In AT&T troff there was no register exposing the hyphenation .\" mode (nor the enablement status of automatic hyphenation), so .\" no idioms for performing such restoration have arisen. .\" 3. groff mdoc(7)'s `HY` register isn't supported everywhere. .\" 4. We want user preferences, if expressed, to override the page .\" author's. .\" 5. Even if we didn't want (4), one page author's can override .\" another's when formatting multiple mdoc(7) documents in .\" sequence--we thus keep track of the initial hyphenation mode. .\" .\" So we recover the "page's" preferred hyphenation mode, if expressed .\" via `HY`, at every paragraph (and (sub)sectioning) macro call; and .\" recover the user's preferred hyphenation mode at each new document .\" by accepting it as an argument (see the `Dd` macro definition). .\" Also see the initialization logic in "tmac/doc.tmac". . .eo .de doc-reset-hyphenation-mode . if \n[.$] .if \B'\$1' .nr HY \$1 . nr doc-want-hyphenation 1 . if r HY .ie !\n[HY] .nr doc-want-hyphenation 0 . ie \n[doc-want-hyphenation] \ . nr doc-hyphenation-mode \n[\*[locale]*hyphenation-mode-trap] . el .nr doc-hyphenation-mode 0 . hy \n[doc-hyphenation-mode] . rr doc-want-hyphenation .. .ec . . .\" NS doc-end-document macro .\" NS Finish document output. .\" NS .\" NS modifies: .\" NS doc-end-previous-document . .eo .de1 doc-end-document . doc-check-depth . . if \n[cR] \{\ . 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 . nop \D'l \n[doc-line-length]u 0' . fi . \} . \} . ch doc-header . \" At the end of the last document, the file name becomes empty; . \" force the page length to match the vertical drawing position in . \" continuous rendering mode. . ie \n[cR] .if '\n[.F]'' .pl \n[nl]u . el .doc-break-page-with-new-number .. .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 . doc-warn \$0 is not an mdoc macro name .. .ec . . .eo .de PP . doc-warn \$0 is not an mdoc macro name .. .ec . . .eo .de pp . doc-warn \$0 is not an mdoc macro name .. .ec . . .eo .de SH . doc-warn \$0 is not an mdoc macro name .. .ec . . .\" NS Nd user macro (not parsed, not callable) .\" NS print name description .\" NS .\" NS width register 'Nd' set above . .eo .de Nd . doc-reset-adjustment-mode . doc-reset-hyphenation-mode . 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-end-previous-document 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 document. . .nr doc-end-previous-document 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 \f[\*[doc-Sh-font]]\c . doc-print-recursive . \} . el \{\ . doc-report-usage .Sh section_name ... . doc-reset-args . \}\} . el \{\ . doc-report-usage .Sh not callable by other macros . doc-reset-args . \}\} . el \{\ . if !\n[.$] \{\ . doc-report-usage .Sh section_name ... . return . \} . \} . . ds doc-macro-name Sh . doc-parse-args \$@ . . 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]" \{\ . 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]" \{\ . 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 . \} . . ie \n[doc-in-synopsis-section] \{\ . na . nh . \} . el \{\ . doc-reset-adjustment-mode . doc-reset-hyphenation-mode . \} . . 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 \f[\*[doc-Sh-font]]\c . doc-print-recursive . . if t \ . ss \n[doc-reg-Sh] \n[doc-reg-Sh1] . . in \n[BP]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 \f[\*[doc-Sh-font]]\c . doc-print-recursive . \} . el \{\ . doc-report-usage .Ss subsection_name ... . doc-reset-args . \}\} . el \{\ . doc-report-usage .Ss not callable by other macros . doc-reset-args . \}\} . el \{\ . if !\n[.$] \{\ . doc-report-usage .Ss subsection_name ... . return . \} . \} . . ds doc-macro-name Ss . doc-parse-args \$@ . . ds doc-subsection-heading \$* . . ie \n[doc-in-synopsis-section] \{\ . na . nh . \} . el \{\ . doc-reset-adjustment-mode . doc-reset-hyphenation-mode . \} . . 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 \f[\*[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-identifier == '\*[doc-page-identifier]' . 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: