diff options
-rw-r--r-- | share/tmac/mdoc/Makefile | 24 | ||||
-rw-r--r-- | share/tmac/mdoc/README | 145 | ||||
-rw-r--r-- | share/tmac/mdoc/doc | 3456 | ||||
-rw-r--r-- | share/tmac/mdoc/doc-common | 432 | ||||
-rw-r--r-- | share/tmac/mdoc/doc-ditroff | 269 | ||||
-rw-r--r-- | share/tmac/mdoc/doc-nroff | 225 | ||||
-rw-r--r-- | share/tmac/mdoc/doc-syms | 238 |
7 files changed, 4789 insertions, 0 deletions
diff --git a/share/tmac/mdoc/Makefile b/share/tmac/mdoc/Makefile new file mode 100644 index 00000000000..40614074535 --- /dev/null +++ b/share/tmac/mdoc/Makefile @@ -0,0 +1,24 @@ +# @(#)Makefile 8.1 (Berkeley) 6/8/93 + +FILES= tmac.r tmac.andoc tmac.s tmac.e +MSRCS= doc doc-ditroff doc-common doc-nroff doc-syms + +LINKS= ${BINDIR}/tmac/tmac.andoc ${BINDIR}/tmac/tmac.an +NOOBJ= noobj + +# old macros not currently installed... +# OFILES= tmac.a tmac.cp + +all clean cleandir depend lint tags: + +beforeinstall: + for i in ${MSRCS}; do \ + sed -f strip.sed < $$i > ${DESTDIR}${BINDIR}/tmac/tmac.$$i; \ + chown ${BINOWN}.${BINGRP} ${DESTDIR}${BINDIR}/tmac/tmac.$$i; \ + chmod 444 ${DESTDIR}${BINDIR}/tmac/tmac.$$i; \ + done + install -c -o ${BINOWN} -g ${BINOWN} -m 444 ${FILES} \ + ${DESTDIR}${BINDIR}/tmac + + +.include <bsd.prog.mk> diff --git a/share/tmac/mdoc/README b/share/tmac/mdoc/README new file mode 100644 index 00000000000..a15dcaf5a8f --- /dev/null +++ b/share/tmac/mdoc/README @@ -0,0 +1,145 @@ +# @(#)README 8.1 (Berkeley) 6/8/93 + +-mdoc stuff + doc-* files are unstripped tmac.doc-* files + +Site specific string and register names (for doc-{common,nroff,ditroff}) + +.\" tmac.doc-nroff +.\" +.\" Default fonts +.\" FONT DITROFF style TROFF Style NROFF Style +.\" Default Times Roman Times Roman Printer Dependent +.\" Default bold Times Bold Times Bold Printer Dependent +.\" Default italic Times Italic Times Italic Underline +.\" Const width lit Courier Times ? Printer Dependent +.\" Const width bold Courier Bold ? Printer Dependent +.\" Const width ital Courier Oblique ? Printer Dependent +.\" +.\" Default point size 10 (vs 12), Section Header point size 12 (vs 14) +.\" +.\" STRING CONSTANTS +.\" NS aD string (site) Address Style +.\" NS aR string (site) Argument Reference Style +.\" NS cM string (site) Interactive Comand Modifier (flag) +.\" NS eM string (site) Emphasis (in the English sense - usually italics) +.\" NS eR string (site) Errno Style +.\" NS eV string (site) Environment Variable Style +.\" NS fA string (site) Function Argument Style +.\" NS fL string (site) Command Line Flag Style +.\" NS fN string (site) Function Name Style +.\" NS Hs string (site) Header String Style +.\" NS iC string (site) Interactive Command Style +.\" NS lI string (site) Literal Style +.\" NS lp string (site) Left Function Parenthesis Style +.\" NS rp string (site) Right Function Parenthesis Style +.\" NS lP string (site) Left Parenthesis Style +.\" NS rP string (site) Right Parenthesis Style +.\" NS lB string (site) Bracket Open Style +.\" NS rB string (site) Bracket Close Style +.\" NS mL string (site) Diagnostic Message List Style +.\" NS nM string (site) Name (subject of manpage) Style +.\" NS nO string (site) normal font (default) +.\" NS lO string (site) Options Open Bracket Style +.\" NS rO string (site) Options Close Bracket Style +.\" NS pA string (site) Pathname Style +.\" NS Pu string (site) Accepted punctuation string for -mdoc syntax +.\" NS rA string (site) Reference Author Style +.\" NS rT string (site) Reference Title Style +.\" NS sH string (site) Section Header Style +.\" NS sY string (site) Symbolic Emphasis (boldface) +.\" NS sX string (site) Section Header Cross References +.\" NS tN string (site) Trade Name Style +.\" NS vA string (site) Generic Variable Style +.\" NS Vs string (site) Volume Title Style +.\" NS xR string (site) Cross Reference STyle (man page only) +.\" MISCELLANEOUS +.\" NS lS string (site) list-label-sep (list-types hang, number, bullet, diag) +.\" NS iV string soft space (can be split on a newline or padded in adjust mode) +.\" NS sV string manipulable space +.\" NS hV string hard space (cannot be split on newline or padded) +.\" NS tV string tab space (for column function) +.\" NS sI register (site) subheader indent +.\" NS tI register (site) text indent +.\" NS cR register nroff crt flag (1 for crt/online, 0 for printer) +.\" NS Pp register (site) paragraph vertical spacing +.\" NS dI register flag (Bd) +.\" INDENT WIDTHS (used for tag widths, and argument tests) +.\" NS Ad register (site) Width Needed for Address Tag (indented amount) +.\" NS Ac register (site) Angle Quote Close Value +.\" NS Ao register (site) Angle Quote Open Width +.\" NS Aq register (site) Angle Quote Width +.\" NS Bc register (site) Bracket Quote Close Value +.\" NS Bl register (site) Bullet List Macro Value +.\" NS Bo register (site) Bracket Quote Open Width +.\" NS Bq register (site) Bracket Quote Width +.\" NS Ar register (site) Width Needed for Argument +.\" NS Cm register (site) Width neeeded for Interactive Command Modifier +.\" NS Co register (site) Width Needed for Column offset +.\" NS Cx register (site) Width Needed for Complex Expressions +.\" NS Ds register (site) Width Needed for Display (right and left margins) +.\" NS Dc register (site) Double Quote Close Value +.\" NS Do register (site) Double Quote Open Width +.\" NS Dq register (site) Double Quote Width +.\" NS Dv register (site) Defined (#define) variable (markup) +.\" NS tI register (site) tI is dependent on Ds and used by .Dp +.\" NS Ec register (site) Enclose Quote Close Value +.\" NS El register (site) Enumerated List Macro Value +.\" NS Eo register (site) Enclose Quote Open Width +.\" NS Em register (site) Width Needed for Display +.\" NS Eq register (site) Enclose Quote Width +.\" NS Er register (site) Width Needed for Errno Types +.\" NS Ev register (site) Width Needed for Environment Variables +.\" NS Ex register (site) Width Needed for Example Indent +.\" NS Fa register (site) Width Needed for Function Argument +.\" NS Fl register (site) Width Needed for Flag +.\" NS Fc register (site) Funtion Quote Close Value +.\" NS Fn register (site) Width Needed for Function +.\" NS Fo register (site) Funtion Quote Open Width +.\" NS Hl register (site) Hypehnated List Macro Value (sub bullet list) +.\" NS I1, I2, I3 register (site) Indent values +.\" NS Ic register (site) Width neeeded for Interactive Command Name +.\" NS Li register (site) Width Needed for Literal Constant +.\" NS Ms register (site) Width Needed for Math Symbol ? not sure if needed +.\" NS Nm register (site) Width Needed for Name +.\" NS No register (site) Width Needed for Name +.\" NS Ns register (site) No Space Macro Value +.\" NS Oo register (site) Width Needed for Option Open +.\" NS Oc register (site) Width Needed for Option Close +.\" NS Op register (site) Width Needed for Option (one line) +.\" NS Pa register (site) Width Needed for Pathname +.\" NS Pf register (site) Prefix Macro Value +.\" NS Pq register (site) Parenthesis Quote Width +.\" NS Ql register (site) Width Needed for Quoted Literal +.\" NS Sc register (site) Single Quote Close Value +.\" NS So register (site) Single Quote Open Width +.\" NS Sq register (site) Single Quote Width +.\" NS Sy register (site) Width Needed for Symbols, Modes or Masks +.\" NS Sx register (site) Width Needed for Section Header Cross References +.\" NS Ra register (site) Reference Author +.\" NS Rj register (site) Reference Journal Name +.\" NS Rn register (site) Reference Issue Number +.\" NS Ro register (site) Reference Optional Information +.\" NS Rr register (site) Reference Technical Report Name +.\" NS Rt register (site) Reference Book or Article title Title +.\" NS Rv register (site) Reference Volume +.\" NS Ta register (site) Tab macro register +.\" NS Tn register (site) Trade Name Macro Value +.\" NS Tv register (site) Tab Macro Value +.\" NS Tx register (site) Width needed for default or unknown text width +.\" NS Va register (site) Width Needed for Generic Variable +.\" NS Xc register (site) Extended Argument List Close Value +.\" NS Xo register (site) Extended Argument List Open Width +.\" NS Xr register (site) Width Needed for Cross Reference. +.\" .nr %A 1 +.\" .nr %J 1 +.\" .nr %N 1 +.\" .nr %O 1 +.\" .nr %R 1 +.\" .nr %T 1 +.\" .nr %V 1 +.\" PAGE LAYOUT +.\" NS pL macro - page layout +.\" NS Hm register header margin +.\" NS Fm register footer margin +.\" NS vV register vertical distance (from Section headers/Lists/Subsections) diff --git a/share/tmac/mdoc/doc b/share/tmac/mdoc/doc new file mode 100644 index 00000000000..609b9c1bcea --- /dev/null +++ b/share/tmac/mdoc/doc @@ -0,0 +1,3456 @@ +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 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 8.1 (Berkeley) 6/8/93 +.\" +.\" .mdoc-parse - attempt to parse troff request arguments +.\" %beginstrip% +.if \n(.g \{\ +.cp 0 +.ftr C CR +.\} +.if t \{\ +. so /usr/share/tmac/tmac.doc-ditroff +.\} +.if n \{\ +. so /usr/share/tmac/tmac.doc-nroff +.\} +.so /usr/share/tmac/tmac.doc-common +.so /usr/share/tmac/tmac.doc-syms +.\" NS Db macro - start/stop DEBUG MODE +.\" NS Db register DEBUG MODE +.\" NS iN register DEBUG MODE (inline if 1, to stderr if 0 (default)) +.nr Db 0 +.de Db +.ie \\n(.$==0 \{\ +. ie \\n(Db==0 \{\ +.tm DEBUGGING ON +. nr Db 1 +. \} +. el \{\ +.tm DEBUGGING OFF +. nr Db 0 +. \} +.\} +.el \{\ +. if "\\$1"on" \{\ +.tm DEBUGGING ON +. nr Db 1 +. \} +. if "\\$1"off" \{\ +.tm DEBUGGING OFF +. nr Db 0 +. \} +.\} +.. +.\" NS aV macro - parse argument vector (recursive) (.aV arg ... ) +.\" NS fV macro - parse argument vector (recursive) (.fV) +.\" NS aC register argument counter (aV/fV) +.\" NS fV register argument counter (must set to \\n(.$ prior to reuqest) (fV) +.\" NS A[0-9] argument vector (aV/fV) +.\" NS C[0-9] reg. arg type(1=macro, 2=arg, 3=punct-suf, 4=punct-pre) (aV/fV) +.\" NS S[0-9] space vector (sV) +.\" NS aP register argument pointer (aV) +.\" NS yU local string used for debugging +.\" NS iI local register (indent for inline debug mode) +.\" NS mN name of calling request (set in each user requestable macro) +.de aV +.nr aC \\n(aC+1 +.ie "\\$1"|" \{\ +. if "\\*(mN"Op" .ds A\\n(aC \fR\\$1\fP +. if "\\*(mN"Ar" .ds A\\n(aC \fR\\$1\fP +. if "\\*(mN"Fl" .ds A\\n(aC \fR\\$1\fP +. if "\\*(mN"Cm" .ds A\\n(aC \fR\\$1\fP +. if "\\*(mN"It" .ds A\\n(aC \fR\\$1\fP +.\} +.el .ds A\\n(aC \\$1 +.aU \\n(aC +.nr C\\n(aC \\n(aT +.s\\n(aT +.if \\n(Db \{\ +. if \\n(aT==1 .ds yU Executable +. if \\n(aT==2 .ds yU String +. if \\n(aT==3 .ds yU Closing Punctuation or suffix +. if \\n(aT==4 .ds yU Opening Punctuation or prefix +. if \\n(iN==1 \{\ +. br +. nr iI \\n(.iu +. in -\\n(iIu +. if \\n(aC==1 \{\ +\&\fBDEBUG(argv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c +. \} +\&\t\fBArgc:\fP \\n(aC \fBArgv:\fP `\\*(A\\n(aC' \fBLength:\fP \\n(sW +\&\t\fBSpace:\fP `\\*(S\\n(aC' \fBClass:\fP \\*(yU +. \} +. if \\n(iN==0 \{\ +. if \\n(aC==1 \{\ +. tm DEBUG(argv) MACRO: `.\\*(mN' Line #: \\n(.c +. \} +. tm \tArgc: \\n(aC Argv: `\\*(A\\n(aC' Length: \\n(sW +. tm \tSpace: `\\*(S\\n(aC' Class: \\*(yU +. \} +.\} +.ie \\n(.$==1 \{\ +. nr aP 0 +. ie \\n(dZ==1 \{\ +. if \\n(oM>1 .as b1 \\*(S0 +. \} +. el \{\ +. if \\n(oM>0 \{\ +. if \\n(fC==0 .as b1 \\*(S0 +. \} +. \} +. ds S0 \\*(S\\n(aC +. if \\n(Db \{\ +. if \\n(iN==1 \{\ +\&MACRO REQUEST: \t.\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 +. br +. in \\n(iIu +. \} +. if \\n(iN==0 \{\ +.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 +. \} +. \} +.\} +.el .aV \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.de fV +.nr aC \\n(aC+1 +.if "\\*(A\\n(aC"|" \{\ +. if "\\*(mN"Op" .ds A\\n(aC \fR\\*(A\\n(aC\fP +. if "\\*(mN"Ar" .ds A\\n(aC \fR\\*(A\\n(aC\fP +. if "\\*(mN"Fl" .ds A\\n(aC \fR\&\\*(A\\n(aC\fP +. if "\\*(mN"Cm" .ds A\\n(aC \fR\\*(A\\n(aC\fP +. if "\\*(mN"It" .ds A\\n(aC \fR\\*(A\\n(aC\fP +.\} +.aU \\n(aC +.nr C\\n(aC \\n(aT +.s\\n(aT +.if \\n(Db \{\ +. if \\n(aT==1 .ds yU Executable +. if \\n(aT==2 .ds yU String +. if \\n(aT==3 .ds yU Closing Punctuation or suffix +. if \\n(aT==4 .ds yU Opening Punctuation or prefix +. if \\n(iN==1 \{\ +. br +. nr iI \\n(.iu +. in -\\n(iIu +. if \\n(aC==1 \{\ +\&\fBDEBUG(fargv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c +. \} +\&\t\fBArgc:\fP \\n(aC \fBArgv:\fP `\\*(A\\n(aC' \fBLength:\fP \\n(sW +\&\t\fBSpace:\fP `\\*(S\\n(aC' \fBClass:\fP \\*(yU +. \} +. if \\n(iN==0 \{\ +. if \\n(aC==1 \{\ +. tm DEBUG(fargv) MACRO: `.\\*(mN' Line #: \\n(.c +. \} +. tm \tArgc: \\n(aC Argv: `\\*(A\\n(aC' Length: \\n(sW +. tm \tSpace: `\\*(S\\n(aC' Class: \\*(yU +. \} +.\} +.ie \\n(fV==1 \{\ +. nr aP 0 +. ie \\n(dZ==1 \{\ +. if \\n(oM>1 .as b1 \\*(S0 +. \} +. el \{\ +. if \\n(oM>0 \{\ +. if \\n(fC==0 .as b1 \\*(S0 +. \} +. \} +. ds S0 \\*(S\\n(aC +. nr fV 0 +. if \\n(Db \{\ +. ie \\n(iN \{\ +\&\tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 +. br +. in \\n(iIu +. \} +. el \{\ +.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 +. \} +. \} +.\} +.el \{\ +. nr fV \\n(fV-1 +. fV +.\} +.. +.\" NS aX macro - stuff saved strings into `b1' (used by -diag list) +.de aX +.nr aP \\n(aP+1 +.as b1 \&\\*(A\\n(aP +.ie \\n(fV==1 \{\ +. nr aP 0 +. nr fV 0 +.\} +.el \{\ +. as b1 \&\\*(sV +. nr fV \\n(fV-1 +. aX +.\} +.. +.\" NS aI macro - append arg to arg vector: .aI [arg] [type] (used by .En only) +.de aI +.ie \\n(aC<9 \{\ +. nr aC \\n(aC+1 +. ds A\\n(aC \\$1 +. nr C\\n(aC \\$2 +. s\\$2 +. ds xV S\\n(aC +.\} +.el \{\ +. tm Usage: Too many arguments (maximum of 8 accepted) (#\\n(.c) +. tm \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 +.\} +.. +.\" +.\" NS aZ macro - print buffer (pB) and clean up arg vectors (aY) +.de aZ +.pB +.aY +.. +.\" NS aY macro - clean up arg vector +.de aY +.rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 +.rm A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 +.rm S1 S2 S3 S4 S5 S6 S7 S8 S9 +.nr aC 0 +.nr aP 0 +.. +.\" NS pB macro - test for end of vector (eol) (print b1 buffer or divert) +.de pB +.ie \\n(dZ==1 \{\ +. if \\n(oM==1 \{\&\\*(b1 +. rm S0 +. ds b1 +. \} +. if \\n(oM==0 \{\ +. x2 +. \} +.\} +.el \{\ +. ie \\n(oM==0 \{\&\\*(b1 +. rm S0 +. ds b1 +. \} +. el \{\ +. if ((\\n(sM==1)&(\\n(tP==0)) \{\ +. x1 +. \} +. \} +.\} +.hy +.. +.\" NS x1 macro - save buffer and divert if tP flag set +.\" NS eB diversion string +.\" NS b2 string save of buffer +.\" NS lK register count of lines read from input file +.de x1 +.nr dZ \\n(dZ+1 +.ds b2 \\*(b1 +.ds b1 +.nr lK \\n(.c +.ev 2 +.fi +.di eB +.. +.\" +.\" NS x2 macro - end diversion and print +.\" NS b0 string local temporary +.de x2 +.br +.di +.ev +.ie (\\n(.c-\\n(lK>1) \{\ +. ds b0 \&\\*(eB\\ +. ds b1 \\*(b2\\*(b0\\*(b1 +.\} +.el .ds b1 \\*(b2\\*(b1 +\&\\*(b1 +.rm eB b2 b0 b1 +.nr dZ \\n(dZ-1 +.. +.\" NS Fl macro - flags (appends - and prints flags) +.\" NS cF register save current font +.\" NS cZ register save current font size +.de Fl +.as b1 \&\\*(fL +.if \\n(aC==0 \{\ +. ie \\n(.$==0 \{\ +. as b1 \&\|\-\|\fP\s0 +. pB +. \} +. el \{\ +. ds mN Fl +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>0 \{\ +. ie (\\n(aC-\\n(aP)==0 \{\ +. as b1 \&\|\-\fP\s0 +. aZ +. \} +. el \{\ +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==1 \{\ +. as b1 \&\|\-\fP\s0 +. \\*(A\\n(aP +. \} +. el \{\ +. nr cF \\n(.f +. nr cZ \\n(.s +. if \\n(C\\n(aP==3 \{\ +. as b1 \&\|\-\| +. \} +. fR +. \} +. \} +.\} +.. +.\" +.\" NS fR macro - Fl flag recursion routine (special handling) +.\" NS jM local register +.\" NS jN local register +.\" +.de fR +.hy 0 +.nr jM \\n(C\\n(aP +.ie \\n(jM==1 \{\ +. as b1 \&\fP\s0 +. \\*(A\\n(aP +.\} +.el \{\ +. nr jN \\n(aP +. ie \\n(jM==2 \{\ +. ie !"\\*(A\\n(aP"\\*(Ba" \{\ +. ie !"\\*(A\\n(aP"\fR|\fP" \{\ +. ie "\\*(A\\n(aP"-" .as b1 \&\|\-\^\-\| +. el .as b1 \&\|\-\\*(A\\n(aP +. \} +. el .as b1 \&\\*(A\\n(aP +. \} +. el .as b1 \&\\*(A\\n(aP +. \} +. el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0 +. ie \\n(aC==\\n(aP \{\ +. if \\n(jM==4 .as b1 \&\|\- +. as b1 \&\fP\s0 +. aZ +. \} +. el \{\ +. nr aP \\n(aP+1 +. ie ((\\n(C\\n(aP==3)&(\\n(C\\n(jN==4)) .as b1 \&\|\- +. el .as b1 \&\\*(S\\n(jN +. fR \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.rr jM jN +.. +.\" +.\" NS nR macro - general name recursion routine +.\" NS jM local register +.\" NS jN local register +.de nR +.hy 0 +.nr jM \\n(C\\n(aP +.ie \\n(jM==1 \{\ +. as b1 \&\f\\n(cF\s\\n(cZ +. \\*(A\\n(aP +.\} +.el \{\ +. nr jN \\n(aP +. ie \\n(jM==2 .as b1 \&\\*(A\\n(aP +. el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0 +. ie \\n(aC==\\n(aP \{\ +. as b1 \&\f\\n(cF\s\\n(cZ +. aZ +. \} +. el \{\ +. nr aP \\n(aP+1 +. as b1 \&\\*(S\\n(jN +. nR +. \} +.\} +.rr jM jN +.. +.\" NS Ar macro - command line `argument' macro +.\" +.de Ar +.as b1 \\*(aR +.if \\n(aC==0 \{\ +. ie \\n(.$==0 \{\ +. as b1 file\ ...\fP\s0 +. pB +. \} +. el \{\ +. ds mN Ar +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>0 \{\ +. ie (\\n(aC-\\n(aP)==0 \{\ +. as b1 \&file\ ...\fP\s0 +. aZ +. \} +. el \{\ +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==1 \{\ +. as b1 \&file\ ...\fP\s0 +. \\*(A\\n(aP +. \} +. el \{\ +. nr cF \\n(.f +. nr cZ \\n(.s +. if \\n(C\\n(aP==3 \{\ +. as b1 \&file\ ... +. \} +. nR +. \} +. \} +.\} +.. +.\" NS Ad macro - Addresses +.de Ad +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Ad address ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Ad +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(aD +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Cd macro - Config declaration (for section 4 SYNOPSIS) (not callable) +.\" needs work - not very translatable +.de Cd +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Cd Configuration file declaration (#\\n(.c) +. el \{\ +. ds mN Cd +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.br +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(nM +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. ie \\n(nS \{\ +. if "\\*(mN"Cd" \{\ +. rs +. ie \\n(nS>1 .br +. el \{\ +. if \\n(iS==0 .nr iS \\n(Dsu +. \} +. in +\\n(iSu +. ti -\\n(iSu +. nr nS \\n(nS+1 +. \} +. nR +. in -\\n(iSu +. \} +. el .nR +.\} +.. +.\" NS Cm macro - Interactive command modifier (flag) +.de Cm +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Cm Interactive command modifier ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Cm +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(cM +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Dv macro - define variable +.de Dv +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Dv define_variable ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Dv +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(eR +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Em macro - Emphasis +.de Em +.if \\n(aC==0 \{\ +. ie \\n(.$==0 \{\ +. tm Usage: .Em text ... \\*(Pu (#\\n(.c) +. \} +. el \{\ +. ds mN Em +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(eM +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Er macro - Errnotype +.de Er +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Er ERRNOTYPE ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Er +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(eR +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Ev macro - Environment variable +.de Ev +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Ev ENVIRONMENT_VARIABLE ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Ev +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(eV +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Fd macro - function declaration - not callable (& no err check) +.\" NS fD register subroutine test (in synopsis only) +.\" NS fY register subroutine count (in synopsis only) (fortran only) +.\" NS fZ register also subroutine count (in synopsis only) +.de Fd +.ds mN Fd +.if \\n(nS>0 \{\ +.\" if a variable type was the last thing given, want vertical space +. if \\n(fX>0 \{\ +. Pp +. nr fX 0 +. \} +.\" if a subroutine was the last thing given, want vertical space +. if \\n(fZ>0 \{\ +. ie \\n(fD==0 \{\ +. Pp +. rs +. \} +. el .br +. \} +. nr fD \\n(fD+1 +.\} +.nr cF \\n(.f +.nr cZ \\n(.s +\&\\*(fD\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.br +.ft \\n(cF +.fs \\n(cZ +.. +.\" NS Fr macro - function return value - not callable (at the moment) +.de Fr +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Fr Function_return_value... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Fr +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(aR +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Ic macro - Interactive command +.de Ic +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Ic Interactive command ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Ic +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(iC +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Li macro - literals +.de Li +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage .Li argument ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Li +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(lI +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Or macro - Pipe symbol (OR) +.de Or +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Or ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Or +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(iC +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Ms macro - Math symbol +.de Ms +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Ms Math symbol ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Ms +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(sY +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Nm macro - Name of command or page topic +.\" NS n1 string - save first invocation of .Nm +.\" NS iS register - indent second command line in a synopsis +.de Nm +.if \\n(aC==0 \{\ +. ie \\n(.$==0 \{\ +. ie "\\*(n1"" .tm Usage: .Nm Name(s) ... \\*(Pu (#\\n(.c) +. el \&\\*(nM\\*(n1\fP\s0 +. \} +. el \{\ +. ds mN Nm +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>0 \{\ +. ie \\n(aC==\\n(aP \{\ +. as b1 \&\\*(nM\\*(n1\fP\s0 +. aZ +. \} +. el \{\ +. as b1 \\*(nM +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==1 \{\ +. as b1 \&\\*(n1\fP\s0 +. \\*(A\\n(aP +. \} +. el \{\ +. nr cF \\n(.f +. nr cZ \\n(.s +. if \\n(nS \{\ +. if "\\*(mN"Nm" \{\ +. rs +. in -\\n(iSu +. ie \\n(nS>1 .br +. el \{\ +. if \\n(iS==0 \{\ +. sw \\$1 +. nr iS ((\\n(sWu+1)*\\n(fW)u +. \} +. \} +. in +\\n(iSu +. ti -\\n(iSu +. nr nS \\n(nS+1 +. \} +. \} +. if "\\*(n1"" .ds n1 \\*(A\\n(aP +. nR +. \} +. \} +.\} +.. +.\" NS Pa macro - Pathname +.de Pa +.if \\n(aC==0 \{\ +. ie \\n(.$==0 \&\\*(pA~\fP\s0 +. el \{\ +. ds mN Pa +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(pA +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Sy macro - Symbolics +.de Sy +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Sy symbolic_text ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Sy +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(sY +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Tn macro - Trade Name Macro +.de Tn +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Tn +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(tN\\*(tF +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS nN macro - Trade Name Macro for inside of reference +.de nN +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Tn +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(tN +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS Va macro - variable name macro +.de Va +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Va variable_name(s) ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Va +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. as b1 \\*(vA +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" +.\" NS No macro - Normal text macro (default text style if mess up) +.de No +.as b1 \\*(nO +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .No must be called with arguments (#\\n(.c) +. el \{\ +. ds mN No +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==1 \{\ +. \\*(A\\n(aP +. \} +. el \{\ +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +. \} +.\} +.. +.\"------------------------------------------------------------------------ +.\" NS Op macro - Option Expression +.de Op +.if \\n(aC==0 \{\ +. ds mN Op +.\} +.\" .ds qL \&\\*(lO +.\" .ds qR \&\\*(rO +.ds qL \&\\*(lB +.ds qR \&\\*(rB +.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 +.. +.\" NS Aq macro - Enclose string in angle brackets +.de Aq +.if \\n(aC==0 .ds mN Aq +.ds qL \&< +.ds qR \&> +.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Bq macro - Enclose string in square brackets +.de Bq +.if \\n(aC==0 .ds mN Bq +.ds qL \&\\*(lB +.ds qR \&\\*(rB +.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Dq macro - Enclose string in double quotes +.de Dq +.if \\n(aC==0 .ds mN Dq +.ds qL \&\\*(Lq +.ds qR \&\\*(Rq +.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Eq macro - Enclose string in double quotes +.de Eq +.if \\n(aC==0 .ds mN Eq +.ds qL \\$1 +.ds qR \\$2 +.En \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Pq macro - Enclose string in parenthesis +.de Pq +.if \\n(aC==0 .ds mN Pq +.ds qL \&\\*(lP +.ds qR \&\\*(rP +.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Ql macro - Quoted literal is in file mdoc-[dit|n|g]roff (too large +.\" an if-else to carry along recursively for `if n ...') +.\" +.\" NS Sq macro - Enclose string in single quotes +.de Qq +.if \\n(aC==0 .ds mN Qq +.ds qL \&\\*q +.ds qR \&\\*q +.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Sq macro - Enclose string in single quotes +.de Sq +.if \\n(aC==0 .ds mN Sq +.ds qL \&\\*(sL +.ds qR \&\\*(sR +.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" +.\" NS Es macro - Set up strings for .En call +.de Es +.if \\n(aC==0 \{\ +. ie \\n(.$>2 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. el \{\ +. ds qL \\$1 +. ds qR \\$2 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. ds qL \\*(A\\n(aP +. nr aP \\n(aP+1 +. ds qR \\*(A\\n(aP +. ie \\n(aC>\\n(aP .c\\n(C\\n(aP +. el .aZ +.\} +.. +.\" .tm En beg arg(A[\\n(aP])==\\*(A\\n(aP; +.\" .tm En oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC +.\" NS En macro - Enclose string with given args (eg [ and ] etc) +.\" NS qL string variable set by calling macro +.\" NS qR string variable set by calling macro +.\" NS aJ register (for vR) +.de En +.ie \\n(aC==0 \{\ +. ie \\n(.$==0 \{\ +. as b1 \&\\*(qL\\*(qR +. pB +. \} +. el \{\ +.\". as mN (En) +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. as b1 \&\\*(qL +. \} +.\} +.el \{\ +. as b1 \&\\*(qL +.\} +.if \\n(aC>0 \{\ +. ie (\\n(aC-\\n(aP)==0 \{\ +. as b1 \&\\*(qR +. aZ +. \} +. el \{\ +. ie \\n(C\\n(aC==3 \{\ +. nr aJ \\n(aC-1 +. vR +. nr aJ \\n(aJ+1 +. ds A\\n(aJ \&\\*(qR\\*(A\\n(aJ +. nr aJ 0 +. \} +. el .aI \&\\*(qR 3 +. nr aP \\n(aP+1 +. if \\n(C\\n(aP==1 .\\*(A\\n(aP +. if \\n(C\\n(aP>1 \{\ +. nr aP \\n(aP-1 +. No +. \} +. \} +.\} +.. +.\" NS vR macro - vector routine (for En, trace backwards past trail punct) +.de vR +.if \\n(C\\n(aJ==3 \{\ +. nr aJ \\n(aJ-1 +. vR +.\} +.. +.\"------------------------------------------------------------------------ +.\" NS Ao macro - Angle open +.de Ao +.if \\n(aC==0 .ds mN Ao +.ds qL \&< +.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Ac macro - Angle close +.de Ac +.if \\n(aC==0 .ds mN Ac +.ds qR \&> +.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Bo macro - Bracket open +.de Bo +.if \\n(aC==0 .ds mN Bo +.ds qL \&[ +.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Bc macro - Bracket close +.de Bc +.if \\n(aC==0 .ds mN Bc +.ds qR \&] +.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Do macro - Double Quote open +.de Do +.if \\n(aC==0 .ds mN Do +.ds qL \&\\*(Lq +.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Dc macro - Double Quote close +.de Dc +.if \\n(aC==0 .ds mN Dc +.ds qR \&\\*(Rq +.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Eo macro - Enclose open +.de Eo +.if \\n(aC==0 .ds mN Eo +.ds qL \\$1 +.eO \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Ec macro - Enclose close +.de Ec +.if \\n(aC==0 .ds mN Ec +.ds qR \\$1 +.eC \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Oo macro - Option open +.de Oo +.if \\n(aC==0 .ds mN Oo +.ds qL \&[ +.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Oc macro - Option close +.de Oc +.if \\n(aC==0 .ds mN Oc +.ds qR \&] +.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Po macro - Parenthesis open +.de Po +.if \\n(aC==0 .ds mN Po +.ds qL \&( +.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Pc macro - Parenthesis close +.de Pc +.if \\n(aC==0 .ds mN Pc +.ds qR \&) +.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Qo macro - Straight Double Quote open +.de Qo +.if \\n(aC==0 .ds mN Qo +.ds qL \&\\*q +.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Qc macro - Straight Double Quote close +.de Qc +.if \\n(aC==0 .ds mN Qc +.ds qR \&\\*q +.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS So macro - Single Quote open +.de So +.if \\n(aC==0 .ds mN So +.ds qL \&\\*(sL +.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Sc macro - Single Quote close +.de Sc +.if \\n(aC==0 .ds mN Sc +.ds qR \&\\*(sR +.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Xo macro - Extend open (continue) +.de Xo +.if \\n(aC==0 .ds mN Xo +.\" .nr mN 1 +.ds qL +.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Xe macro - Extend close (end) +.de Xc +.\" .nr mN 0 +.if \\n(aC==0 .ds mN Xc +.ds qR +.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS eO macro - enclose string open +.\" NS oM register (extension possible) +.de eO +.nr oM \\n(oM+1 +.\" .tm eO last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ; +.ie \\n(aC==0 \{\ +. ie \\n(.$>0 \{\ +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. as b1 \\*(qL +. \} +. el \{\ +. as b1 \\*(qL +. if (\\n(dZ==0)&(\\n(sM==1) \{\ +. nr dZ \\n(dZ+1 +. ds b2 \\*(b1 +. ds b1 +. nr lK \\n(.c +. ev 2 +. fi +. di eB +. \} +. \} +.\} +.el \{\ +. as b1 \\*(qL +.\} +.ie \\n(aC>0 \{\ +. if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==1 .\\*(A\\n(aP +. el \{\ +. nr aP \\n(aP-1 +. No +. \} +. \} +. if \\n(aC==\\n(aP \{\ +. if \\n(tP==1 \{\ +.\" .tm SETTING Xt!!! +. nr Xt 1 +. \} +.\".\" . ds S0 +.\"CHANGED ds S0 \\*(iV +. aY +. \} +.\} +.el \{\ +. if \\n(oM>1 .as b1 \\*(sV +.\} +.. +.\" +.\" NS eC macro - enclose string close +.\" NS aa local register +.de eC +.nr oM \\n(oM-1 +.\" tm eC last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ; +.as b1 \\*(qR +.if \\n(aC==0 \{\ +. ie \\n(.$>0 \{\ +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +. el \{\ +. ie "\\*(xB"" \{\ +. pB +. \} +. el \{\ +. pB +.\\*(L\\n(lC +. nr Xt 0 +. ds xB +. \} +. \} +.\} +.if \\n(aC>0 \{\ +. ie \\n(aC==\\n(aP \{\ +. ie \\n(oM==0 \{\ +. aZ +. \} +. el .aY +. \} +. el \{\ +. nr aa \\n(aP+1 +. if \\n(C\\n(aa==2 .as b1 \\*(S\\n(aC +.\" tm CURRENT arg (aP==\\*(A\\n(aP and ap+1==\\*(A\\n(aa) tP==\\n(tP Xt==\\n(Xt +. rr aa +. if \\n(tP>0 \{\ +.\" tm UNSETTING Xt==\\n(Xt!!!! +. if \\n(Xt>0 .nr Xt \\n(Xt-1 +.\" tm NOW Xt==\\n(Xt!!!! +. \} +. No +. \} +.\} +.. +.\"------------------------------------------------------------------------ +.\" NS Pf macro - Prefix (calls .pF) +.de Pf +.if \\n(aC==0 .ds mN Pf +.ds qL \&\\$1 +.pF \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS pF macro - Prefix (for prefixing open quotes, brackets etc) +.de pF +.ie \\n(aC==0 \{\ +. as b1 \&\\*(qL +. ie \\n(.$<2 \{\ +. tm Warning: Missing arguments - prefix .Pf) +. pB +. \} +. el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\} +.el \{\ +. ie (\\n(aC-\\n(aP)>1 \{\ +. nr aP \\n(aP+1 +. as b1 \&\\*(A\\n(aP +. \} +. el .tm Warning: .Pf: trailing prefix (#\\n(.c) +.\} +.if \\n(aC>0 \{\ +. ie (\\n(aC-\\n(aP)==0 .aZ +. el \{\ +. nr aP \\n(aP+1 +. c\\n(C\\n(aP +. \} +.\} +.. +.\" NS Ns macro - remove space (space remove done by .aV or .fV) +.de Ns +.if \\n(aC==0 \{\ +. ds mN Ns +. ie \\n(.$>0 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. el .tm Usage: .Ns must be called with arguments (#\\n(.c) +.\} +.No +.. +.de Ap +.if \\n(aC==0 \{\ +. ds mN Ap +. tm Usage: Ap "cannot be first request on a line (no .Ap)" (#\\n(.c) +.\} +.as b1 \&' +.No +.. +.\" NS Hv macro - Hard (unpaddable) Space vector +.\" NS iV string inter-vector space +.\" NS sV string inter-argument space +.de Hv +.ds iV \\*(sV +.ds sV \\*(hV +.. +.\" NS Sv macro - Soft Space vector (troff limitation) +.de Sv +.ds sV \\*(iV +.. +.\" NS Tv macro - Tab Space vector +.de Tv +.ds sV \\*(tV +.. +.\" NS Sm macro - Space mode +.\" NS sM register - default is one (space mode on) +.nr sM 1 +.de Sm +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm "Usage: .Sm [off | on]" (#\\n(.c) +. el \{\ +. ds mN Sm +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>0 \{\ +. nr aP \\n(aP+1 +. if "\\*(A\\n(aP"on" \{\ +. ds sV \\*(iV +. nr sM 1 +. \} +. if "\\*(A\\n(aP"off" \{\ +. ds sV +. rm S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 +. nr sM 0 +. \} +. ie \\n(aC>\\n(aP \{\ +. No +. \} +. el .aY +.\} +.. +.\"------------------------------------------------------------------------ +.\" Size and Argument type macros +.\" NS aT macro - argument type +.\" NS aU macro - argument type (same as .aT but uses A[1-9] strings +.\" NS aT register argument type +.if \n(.g \{\ +.de aT +.nr aT 0 +.ie \\n(sW>2:(\A'\\$1'==0) \{\ +. nr aT 2 +.\} +.el \{\ +. if \\n(sW==1 \{\ +. ie \\n(z\\$1>2 \{\ +. nr aT \\n(z\\$1 +. \} +. el .nr aT 2 +. \} +. if \\n(sW==2 \{\ +. ie \\n(\\$1 \{\ +. nr aT 1 +. \} +. el .nr aT 2 +. \} +.\} +.. +.de aU +.nr aT 0 +.aW \\$1 +.ie \\n(sW>2:(\A'\\*(A\\$1'==0) .nr aT 2 +.el \{\ +. if \\n(sW==1 \{\ +. ie \\n(z\\*(A\\$1>2 \{\ +. nr aT \\n(z\\*(A\\$1 +. \} +. el .nr aT 2 +. \} +. if \\n(sW==2 \{\ +. ie (\\n(\\*(A\\$1) \{\ +. nr aT 1 +. \} +. el .nr aT 2 +. \} +.\} +.. +.\} +.if !\n(.g \{\ +.de aT +.nr aT 0 +.ie \\n(sW>2 \{\ +. nr aT 2 +.\} +.el \{\ +. if \\n(sW==1 \{\ +. ie \\n(z\\$1>2 \{\ +. nr aT \\n(z\\$1 +. \} +. el .nr aT 2 +. \} +. if \\n(sW==2 \{\ +. ie \\n(\\$1 \{\ +. nr aT 1 +. \} +. el .nr aT 2 +. \} +.\} +.. +.de aU +.nr aT 0 +.aW \\$1 +.ie \\n(sW>2 .nr aT 2 +.el \{\ +. if \\n(sW==1 \{\ +. ie \\n(z\\*(A\\$1>2 \{\ +. nr aT \\n(z\\*(A\\$1 +. \} +. el .nr aT 2 +. \} +. if \\n(sW==2 \{\ +. ie (\\n(\\*(A\\$1) \{\ +. nr aT 1 +. \} +. el .nr aT 2 +. \} +.\} +.. +.\} +.\" NS s1 macro - set spacing for class type 1 +.\" NS s2 macro - set spacing for class type 2 +.\" NS s3 macro - set spacing for class type 3 +.\" NS s1 macro - set spacing for class type 1 +.\" NS s2 macro - set spacing for class type 2 +.\" NS s3 macro - set spacing for class type 3 +.\" NS s4 macro - set spacing for class type 4 +.\" NS S[0-9] string spacing +.\" NS xX local register +.\" NS aa local register +.de s0 +.tm MDOC-ERROR: bogus type 0 (can't set space '\\*(A\\n(aC') (#\\n(.c) +.. +.de s1 +.if \\n(\\*(A\\n(aC==3 \{\ +. nr xX \\n(aC-1 +. rm S\\n(xX +. ds S\\n(aC \\*(sV +.\} +.if \\n(\\*(A\\n(aC==2 \{\ +. nr xX \\n(aC-1 +.\" this kludge can probably go away, but need to double check first +. ie "\\*(A\\n(aC"Nb" .ds S\\n(xX \\*(hV +. el .rm S\\n(xX +.\} +.. +.de s2 +.ds S\\n(aC \\*(sV +.. +.de s3 +.if \\n(aC>1 \{\ +. nr xX \\n(aC-1 +. rm S\\n(xX +.\} +.ds S\\n(aC \\*(sV +.. +.de s4 +.nr aa 0 +.. +.\" Class switches (on current argument aP) +.\" NS c0 macro - catch errors (non-existent class type 0) +.\" NS c1 macro - call request if type 1 +.\" NS c2 macro - call .No if type 2 +.\" NS c3 macro - call .No if type 3 +.\" NS c4 macro - call .No if type 4 +.de c0 +.tm MDOC-ERROR: bogus class 0 (can't determine '\\*(A\\n(aC') (#\\n(.c) +.. +.de c1 +.\\*(A\\n(aP +.. +.de c2 +.nr aP \\n(aP-1 +.No +.. +.de c3 +.nr aP \\n(aP-1 +.No +.. +.de c4 +.nr aP \\n(aP-1 +.No +.. +.\" NS y1 macro - ignore if class 1 +.\" NS y2 macro - ignore if class 2 +.\" NS y3 macro - append if type 3 +.\" NS y4 macro - append if type 4 +.de y1 +.nr aa 1 +.. +.de y2 +.nr aa 1 +.. +.de y3 +.as b1 \\*(A\\n(aP +.nr aP \\n(aP+1 +.n\\C\\n(aP +.. +.de y4 +.as b1 \\*(A\\n(aP +.nr aP \\n(aP+1 +.n\\C\\n(aP +.. +.\"-------------------------------------------------------------------------- +.\" Ns Bf macro - Begin Font Mode (will be begin-mode/end-mode in groff & TeX) +.\" Ns Ef macro - End Font Mode +.de Bf +.ds mN Bf +.ie \\n(.$>0 \{\ +. nr bF \\n(.f +. nr bZ \\n(.s +. if "\\$1"Em" \&\\*(eM\c +. if "\\$1"Li" \&\\*(lI\c +. if "\\$1"Sy" \&\\*(sY\c +. if "\\$1"-emphasis" \&\\*(eM\c +. if "\\$1"-literal" \&\\*(lI\c +. if "\\$1"-symbolic" \&\\*(sY\c +.\} +.el .tm Usage .Bf [Em | emphasis | Li | literal | Sy | symbolic] (#\\n(.c) +.. +.de Ef +.ds mN Ef +.ie \\n(.$>0 .tm Usage .Ef (does not take arguments) (#\\n(.c) +.el \&\f\\n(bF\s\\n(bZ +.. +.\" Ns Bk macro - Begin Keep +.\" Ns Ek macro - End Keep +.\" Ns kS string - keep type +.de Bk +.ds mN Bk +.ie \\n(.$==0 \{\ +.tm Usage: .Bk [-lines | -words] (#\\n(.c) +.\} +.el \{\ +. if !"\\*(kS"" .tm .Bk: nesting keeps not implemented yet. (#\\n(.c) +. if "\\$1"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c) +. if "\\$1"-words" .Hv +. ds kS \\$1 +.\} +.. +.de Ek +.ds mN Ek +.ie \\n(.$>0 .tm Usage .Ek (does not take arguments) (#\\n(.c) +.el \{\ +. if "\\*(kS"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c) +. if "\\*(kS"-words" .Sv +. rm kS +.\} +.. +.\" NS Bd macro - Begin Display display-type [offset string] +.\" NS Ed macro - end Display +.\" NS O[0-9] registers - stack of indent +.\" NS d[0-9] registers - display-type stack +.de Bd +.ds mN Bd +.ie \\n(.$==0 \{\ +.tm Usage: .Bd [-literal | -filled | -ragged | -unfilled] [-offset [string]] [-compact] (#\\n(.c) +.\} +.el \{\ +. ds aa +. nr bV 0 +. nr iD 0 +. nr dP \\n(dP+1 +. if "\\$1"-literal" \{\ +. nr iD \\n(iD+1 +. ds d\\n(dP dL +. nr cF \\n(.f +. nr cZ \\n(.s +. ie t \{\&\\*(lI +' ta 9n 18n 27n 36n 45n 54n 63n 72n +. \} +. el \{\ +' ta 8n 16n 24n 32n 40n 48n 56n 64n 72n +. \} +. nf +. \} +. if "\\$1"-filled" \{\ +. nr iD \\n(iD+1 +. ds d\\n(dP dF +. br +. \} +. if "\\$1"-ragged" \{\ +. nr iD \\n(iD+1 +. ds d\\n(dP dR +. na +. \} +. if "\\$1"-unfilled" \{\ +. nr iD \\n(iD+1 +. ds d\\n(dP dU +. nf +. \} +.\" .tm Here is argc: \\n(.$ and here is iD \\n(iD +. if ((\\n(iD>=1)&(\\n(.$>\\n(iD)) \{\ +. bV \\$2 \\$3 \\$4 +. \} +. if \\n(O\\n(dP>0 'in \\n(.iu+\\n(O\\n(dPu +. if (\\n(bV==0) \{\ +. if (\\n(nS==0) \{\ +. ie "\\*(d\\n(dP"dR" .sp \\n(dVu +. el 'sp \\n(dVu +. \} +. \} +. if \\n(cR==0 .ne 2v +. nr bV 0 +. nr iD 0 +.\} +.. +.\" NS bV macro - resolve remaining .Bd arguments +.de bV +.\" .tm in bV with args: \\$1 \\$2 \\$3 +.nr iD 1 +.ds bY +.if "\\$1"-offset" \{\ +. ds bY \\$2 +. if "\\*(bY"left" \{\ +. nr iD \\n(iD+1 +. nr O\\n(dP 0 +. \} +. if "\\*(bY"right" \{\ +. nr iD \\n(iD+1 +. nr O\\n(dP (\\n(.l/3)u +. \} +. if "\\*(bY"center" \{\ +. nr iD \\n(iD+1 +. nr O\\n(dP (\\n(.l-\\n(.i)/4u +. \} +. if "\\*(bY"indent" \{\ +. nr iD \\n(iD+1 +. nr O\\n(dP \\n(dIu +. \} +. if "\\*(bY"indent-two" \{\ +. nr iD \\n(iD+1 +. nr O\\n(dP \\n(dIu+\\n(dIu +. \} +. if \\n(iD==1 \{\ +. nr iD \\n(iD+1 +. sW "\\*(bY" +. ie \\n(sW>2 \{\ +. ie ((\\*(bY>9n)&(\\*(bY<100n)) \{\ +. nr O\\n(dP \\*(bY +. \} +. el .nr O\\n(dP (\\n(sW)*\\n(fWu +. \} +. el \{\ +. if \\n(sW==2 .aT \\*(bY +. ie \\n(aT==1 \{\ +. nr O\\n(dP \\n(\\*(bY +. \} +. el .nr O\\n(dP \\*(bY +. \} +. \} +.\} +.if "\\$1"-compact" \{\ +. nr bV 1 +.\} +.if \\n(iD<\\n(.$ \{\ +. ie "\\*(bY"" \{\ +. bV \\$2 \\$3 +. \} +. el \{\ +. bV \\$3 +. \} +.\} +.. +.\" NS Ed macro - end display +.de Ed +.ds mN Ed +.br +.if \\n(dP==0 .tm mdoc: Extraneous .Ed +.if "\\*(d\\n(dP"dL" \{\ +. ft \\n(cF +. fz \\n(cZ +.\} +.in \\n(.iu-\\n(O\\n(dPu +.rr O\\n(dP +.rm d\\n(dP +.nr dP \\n(dP-1 +.fi +.if t .ad +.. +.\"-------------------------------------------------------------------------- +.\" NS Bl macro - begin list (.Bl list-type) +.\" NS L[0-9] registers - stack of list types +.de Bl +.ie \\n(.$==0 \{\ +.tm Usage: .Bl [[-hang | -tag] [-width]] [ -item | -enum | -bullet | -diag] (#\\n(.c) +.\} +.el \{\ +. ds mN Bl +. nr aP 0 +. nr lC \\n(lC+1 +. ds A1 \\$2 +. ds A2 \\$3 +. ds A3 \\$4 +. ds A4 \\$5 +. ds A5 \\$6 +. ds A6 \\$7 +. ds A7 \\$8 +. ds A8 \\$9 +. nr fV \\n(.$-1 +. if "\\$1"-hang" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC hL +. nr w\\n(lC 6n +. nr tC 1 +. \} +. if "\\$1"-tag" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC tL +. nr tC 1 +. \} +. if "\\$1"-item" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC iT +. nr tC 1 +. \} +. if "\\$1"-enum" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC nU +. nr w\\n(lC 3n +. nr tC 1 +. \} +. if "\\$1"-bullet" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC bU +. nr w\\n(lC 2n +. nr tC 1 +. \} +. if "\\$1"-dash" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC hU +. nr w\\n(lC 2n +. nr tC 1 +. \} +. if "\\$1"-hyphen" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC hU +. nr w\\n(lC 2n +. nr tC 1 +. \} +. if "\\$1"-inset" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC lL +. nr tC 1 +. \} +. if "\\$1"-diag" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC mL +. nr mL 1 +. \} +. if "\\$1"-ohang" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC oL +. nr tC 1 +. \} +. if "\\$1"-column" \{\ +. nr aP \\n(aP+1 +. ds L\\n(lC cL +. \} +. ie \\n(aP==0 \{\ +. tm \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. tm Usage: .Bl [[-inset|-tag] -width] [-item|-enum|-bullet|-diag] (#\\n(.c) +. \} +. el \{\ +. tY +. if (\\n(aP==1)&(\\n(aP<\\n(.$) \{\ +. nr aP 0 +. lV +. if "\\*(L\\n(lC"cL" \{\ +. W\\n(wV +. nr w\\n(lC 0 +' in -\\n(eWu +. ie \\n(v\\n(lC==1 \{\ +. nr aa 0 +. \} +. el \{\ +. sp \\n(dVu +. \} +. nf +. nr wV 0 +. \} +. \} +. \} +. nr aP 0 +.\" . ds b1 +. aY +.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC +.\} +.. +.if \n(.g \{\ +. nr i 10 +. while \ni<100 \{\ +. nr num!\nin 1 +. nr i +1 +. \} +.\} +.\" NS lV macro - resolve remaining .Bl arguments +.de lV +.nr aP \\n(aP+1 +.if \\n(fV>=\\n(aP \{\ +. nr iD 0 +. if "\\*(A\\n(aP"-compact" \{\ +. nr iD 1 +. nr v\\n(lC 1 +. \} +. if "\\*(A\\n(aP"-width" \{\ +. nr iD 1 +. nr aP \\n(aP+1 +. nr tW 1 +. ds t\\n(lC TagwidtH +. ds tS \\*(A\\n(aP +. aW \\n(aP +. ie \\n(sW>2 \{\ +. nr w\\n(lC (\\n(sW)*\\n(fWu +. if \\n(sW==3 \{\ +. ie \\n(.g \{\ +. if \A'\\*(tS' .if r num!\\*(tS \{\ +. nr w\\n(lC \\*(tS +. \} +. \} +. el \{\ +. if (\\*(tS>9n)&(\\*(tS<99n) \{\ +. nr w\\n(lC \\*(tSu +. \} +. \} +. \} +. \} +. el \{\ +. aT \\*(tS +. ie \\n(aT==1 \{\ +. nr w\\n(lC \\n(\\*(tS +. \} +. el \{\ +. nr w\\n(lC \\*(tSu +. \} +. \} +. \} +. if "\\*(A\\n(aP"-offset" \{\ +. nr iD 1 +. nr aP \\n(aP+1 +. ie "\\*(A\\n(aP"indent" \{\ +. nr o\\n(lC \\n(Dsu +. \} +. el \{\ +. ds tS \\*(A\\n(aP +. aW \\n(aP +. ie \\n(sW>2 \{\ +. nr o\\n(lC (\\n(sW)*\\n(fWu +. ie \\n(.g \{\ +. if \A'\\*(tS' .if r num!\\*(tS \{\ +. nr o\\n(lC \\*(tS +. \} +. \} +. el \{\ +. if (\\*(tS>9n)&(\\*(tS<100n) \{\ +. nr o\\n(lC \\*(tS +. \} +. \} +. \} +. el \{\ +. ie \\n(C\\n(aP==1 .nr o\\n(lC \\n(\\*(tS +. el .nr o\\n(lC \\*(tS +. \} +. \} +. \} +. if \\n(iD==0 \{\ +. if "\\*(L\\n(lC"cL" \{\ +. nr wV \\n(wV+1 +. ds A\\n(wV \\*(A\\n(aP +. \} +. \} +. if \\n(fV>\\n(aP .lV +.\} +.. +.\" NS El macro - end list +.\" NS iD local register +.de El +.ie \\n(.$>0 \{\ +. tm Usage: .El (#\\n(.c) +.\} +.el \{\ +. ds mN El +. nr iD 0 +. if "\\*(L\\n(lC"cL" \{\ +. nr iD 1 +. cC +. \} +. if "\\*(L\\n(lC"nU" \{\ +. nr nU 0 +. \} +. if \\n(mL>0 \{\ +. nr iD 1 +. nr mL 0 +. tZ +. nr lC \\n(lC-1 +. tY +. \} +. if "\\*(L\\n(lC"iT" \{\ +' in \\n(.iu-\\n(o\\n(lCu +. tZ +. nr lC \\n(lC-1 +. tY +. nr iD 1 +. \} +. if "\\*(L\\n(lC"oL" \{\ +' in \\n(.iu-\\n(o\\n(lCu +. tZ +. nr lC \\n(lC-1 +. tY +. nr iD 1 +. \} +. if "\\*(L\\n(lC"lL" \{\ +' in \\n(.iu-\\n(o\\n(lCu +. tZ +. nr lC \\n(lC-1 +. tY +. nr iD 1 +. \} +. if \\n(iD==0 \{\ +. lE +. \} +. br +. nr iD 0 +.\} +.. +.\" NS It macro - list item +.\" NS iD local register +.\" NS aA save pA font string for section FILES (no underline if nroff) +.de It +.if "\\*(L\\n(lC"" \{\ +. tm Usage .Bl -list-type [-width [string] | -compact | -offset [string]] (#\\n(.c) +. tm .It \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 +.\} +.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC +.ne 3v +.ie \\n(.$>0 \{\ +. ds mN It +. ds b1 +. nr iD 0 +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. if "\\*(L\\n(lC"mL" \{\ +. nr iD 1 +. nr aP 0 +. aX +. \\*(L\\n(lC +. \} +. if "\\*(L\\n(lC"cL" \{\ +. ds b1 +. nr aP 0 +. nr iD 1 +. \\*(L\\n(lC +. \} +. if "\\*(L\\n(lC"iT" \{\ +. nr aP 0 +. nr iD 1 +. \\*(L\\n(lC +. \} +. if \\n(iD==0 \{\ +. fV +.\" tm ------------------------------------------------------------------------ +.\" tm It list-type==\\*(L\\n(lC, aP==\\n(aP +.\" tm It beg arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC +. nr oM \\n(oM+1 +. nr tP 1 +. nr aP \\n(aP+1 +. nr tX \\n(C\\n(aP +. ds tX \\*(A\\n(aP +. if \\n(nF==1 \{\ +. ds aA \\*(pA +. if n .ds pA \\*(nO +. \} +. ie \\n(C\\n(aP==1 \{\ +. \\*(A\\n(aP +. \} +. el \{\ +. nr aP \\n(aP-1 +. No +. \} +.\" tm in It here is b1==\\*(b1 +.\" tm It mid arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC +. ie \\n(Xt==1 .ds xB \&\\*(L\\n(lC +. el .\\*(L\\n(lC +. \} +. nr iD 0 +.\} +.el .\\*(L\\n(lC +.. +.\" NS lL macro - .It item of list-type inset +.de lL +.lY +.br +\&\\*(b1 +.nr oM \\n(oM-1 +.nr tP 0 +.ds b1 +.aY +'fi +.. +.\" NS hL macro - .It item of list-type hanging label (as opposed to tagged) +.de hL +.lX +.nr bb \\n(w\\n(lCu+\\n(lSu +.ti -\\n(bbu +.ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1 +.el \&\\*(b1\h'|\\n(bbu'\c +.nr oM \\n(oM-1 +.ds b1 +.nr tP 0 +.aY +'fi +.. +.\" NS oL macro - .It item of list-type overhanging label +.de oL +.lY +\&\\*(b1 +.br +.nr oM \\n(oM-1 +.ds b1 +.nr tP 0 +.aY +'fi +.. +.\" NS iT macro - .It item of list-type [empty label] +.de iT +.lY +.br +.\" .ds b1 +.aY +'fi +.. +.\" NS nU macro - Enumerated list +.\" NS nU register count +.\" NS hU macro - Hyphen paragraph list (sub bullet list) +.\" NS bU macro - Bullet paragraph list +.de nU +.nr oM \\n(oM+1 +.nr nU \\n(nU+1 +.ds b1 \&\\n(nU. +.uL +.. +.de bU +.nr oM \\n(oM+1 +.nr bU \\n(bU+1 +.ds b1 \&\\*(sY\&\(bu\fP +.uL +.. +.de hU +.nr oM \\n(oM+1 +.nr bU \\n(bU+1 +.ds b1 \&\\*(sY\&\-\fP +.uL +.. +.\" NS uL macro - .It item of list-type enum/bullet/hyphen +.de uL +.lX +.nr bb \\n(w\\n(lCu+\\n(lSu +.ti -\\n(bbu +.ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1 +.el \&\\*(b1\h'|\\n(bbu'\c +.nr oM \\n(oM-1 +.\" .nr dZ \\n(dZ+1 +.ds b1 +.nr tP 0 +.aY +'fi +.. +.\" NS mL macro - .It item of list-type diagnostic-message +.de mL +.nr cF \\n(.f +.nr cZ \\n(.s +.ie \\n(mL==1 \{\ +. nr zB \\n(.c +. ie (\\n(zB-\\n(zA)>1 .Pp +. el .br +. nr zA \\n(zB +. nr zB 0 +.\} +.el \{\ +. nr zA \\n(.c +. br +.\} +\&\\*(sY\\*(b1\f\\n(cF\s\\n(cZ\\*(lS\c +.aY +.ds b1 +'fi +.. +.\" NS tL macro - .It item of list-type "tag" +.de tL +.\" tm in tL here is b1==\\*(b1 +.if \\n(tW==0 .lW +.lX +.nr bb \\n(w\\n(lCu+\\n(lSu +.ti -\\n(bbu +.ie (\w\\*(b1u)>(\\n(w\\n(lCu) \{\&\\*(b1 +. br +.\} +.el \&\\*(b1\h'|\\n(bbu'\c +.if \\n(nF==1 \{\ +. if n .ds pA \\*(aA +.\} +.nr oM \\n(oM-1 +.nr tP 0 +.\" .nr dZ \\n(dZ+1 +.ds b1 +.aY +'fi +.. +.\" NS lW macro - resolve unknown label/tag width (if .Bl [inset | tag] only) +.de lW +.if !"TagwidtH"\\*(t\\n(lC" \{\ +. ie \\n(tX==1 \{\ +. ds t\\n(lN \\*(tX +. nr w\\n(lN \\n(\\*(tX +. \} +. el \{\ +. ds t\\n(lN No +. nr w\\n(lN \\n(No +. \} +. if !"\\*(t\\n(lC"\\*(t\\n(lN" .nr tC 1 +.\} +.. +.\" NS lX macro - set up vertical spacing (if compact) and offset+indent (all) +.de lX +.ie \\n(tC \{\ +. nr tC 0 +. nr tW 0 +. if \\n(v\\n(lC==0 .sp \\n(dVu +. in \\n(.iu+\\n(w\\n(lCu+\\n(o\\n(lCu+\\n(lSu +.\} +.el \{\ +. ie \\n(v\\n(lC==1 \{\ +. nr aa 0 +. \} +. el \{\ +. sp \\n(dVu +. \} +.\} +.if !\\n(cR .ne 2v +.. +.\" NS lY macro - set up vertical spacing (if compact) and offset+indent (all) +.de lY +.ie \\n(tC \{\ +. nr tC 0 +. nr tW 0 +. if \\n(v\\n(lC==0 .sp \\n(dVu +. in \\n(.iu+\\n(o\\n(lCu +.\} +.el \{\ +. ie \\n(v\\n(lC==1 \{\ +. nr aa 0 +. \} +. el \{\ +. sp \\n(dVu +. \} +.\} +.if !\\n(cR .ne 2v +.. +.\" NS tS temporary string +.\" NS hL macro - hanging list function +.\" NS tS temporary string +.\" NS hL macro - hanging list function +.\" NS lT macro - tagged list function +.\" NS lE macro - list end function +.\" NS tX string (initial string) +.\" NS tX register (initial class) +.\" NS tC parameter change flag +.\" NS Xt save current list-type flag +.\" NS lC register - list type stack counter +.\" NS tP register tag flag (for diversions) +.\" NS w[0-9] register tag stack (nested tags) +.\" NS t[0-9] register tag string stack (nested tags) +.\" NS o[0-9] register offset stack (nested tags) +.\" NS v[0-9] register vertical tag break stack +.\" NS h[0-9] register horizontal tag stack (continuous if 1, break if 0) +.nr lC 0 +.nr wV 0 +.nr w1 0 +.nr o1 0 +.nr v1 0 +.nr h1 0 +.ds t\n(lC +.de lE +.\" IN lC o[\\n(lC]==\\n(o\\n(lC, w[\\n(lC]==\\n(w\\n(lC, +.ie \\n(o\\n(lC>0 \{\ +' in \\n(.iu-(\\n(w\\n(lCu)-(\\n(o\\n(lCu)-\\n(lSu +. rr o\\n(lC +.\} +.el 'in \\n(.iu-\\n(w\\n(lCu-\\n(lSu +.if \\n(lC<=0 .tm Extraneous .El call (#\\n(.c) +.tZ +.nr lC \\n(lC-1 +.tY +.. +.\" NS tY macro - set up next block for list +.\" NS tZ macro - decrement stack +.\" NS tY register (next possible lC value) +.de tY +.nr tY (\\n(lC+1) +.nr w\\n(tY 0 +.nr h\\n(tY 0 +.nr o\\n(tY 0 +.ds t\\n(tY \\*(t\\n(lC +.ds L\\n(tY +.nr v\\n(tY 0 +.. +.de tZ +.rm L\\n(tY +.rr w\\n(tY +.rr h\\n(tY +.rr o\\n(tY +.rm t\\n(tY +.rr v\\n(tY +.nr tY \\n(tY-1 +.. +.\" initial values +.nr w1 0 +.nr o1 0 +.nr h1 0 +.ds t1 +.nr v1 0 +.nr tY 1 +.\" NS Xr macro - cross reference (man page only) +.de Xr +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Xr +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==1 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c) +. el \{\ +. ie \\n(C\\n(aP>2 .y\\n(C\\n(aP +. el \{\ +. as b1 \&\\*(xR\\*(A\\n(aP\fP\s0 +. if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. if \\n(C\\n(aP==2 \{\ +. as b1 \&(\\*(A\\n(aP) +. nr aP \\n(aP+1 +. \} +. if \\n(aC>=\\n(aP \{\ +. c\\n(C\\n(aP +. \} +. \} +. \} +. aZ +. \} +.\} +.. +.\" NS Sx macro - cross section reference +.de Sx +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Sx Usage: .Sx Section Header \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Sx +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. as b1 \\*(sX +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS cC macro - column-list end-list +.\" NS eW macro - column indent width +.\" NS cI register - column indent width +.\" NS W[1-5] macro - establish tabs for list-type column +.de cC +'in \\n(.iu-\\n(o\\n(lCu-\\n(w\\n(lCu +.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i +.fi +.tZ +.nr lC \\n(lC-1 +.tY +.. +.de W1 +.ta \w\\*(A1 u +.nr eW \w\\*(A1 u +'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu +.. +.de W2 +.ta \w\\*(A1 u +\w\\*(A2 u +.nr eW \w\\*(A1 u+\w\\*(A2 u +'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu +.. +.de W3 +.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +.nr eW \w\\*(A1 u+\w\\*(A2 u+\w\\*(A3 u +'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu +.. +.de W4 +.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +.nr eW \w\\*(A1 u+\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu +.. +.de W5 +.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +.nr eW \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +' in \\n(.iu+\\n(eWu+\\n(o\\n(lCu +.. +.\" This is packed abnormally close, intercol width should be an option +.de W6 +.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6 +.nr eW \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6 +' in \\n(.iu+\\n(eWu+\\n(o\\n(lCu +.. +.\" NS cL macro - column items +.de cL +.if \\n(w\\n(lC==0 .nr w\\n(lC \\n(eWu +.if \\n(.u==0 \{\ +. fi +' in \\n(.iu+\\n(eWu +.\} +.ti -\\n(eWu +.fV +.nr aP \\n(aP+1 +.ie \\n(aC>=\\n(aP \{\ +. if "\\*(A\\n(aP"Ta" \{\ +. nr jJ \\n(aP-1 +. rm S\\n(jJ +. rr jJ +. \} +. c\\n(C\\n(aP +.\} +.el .tm Usage: .It column_string [Ta [column_string ...] ] (#\\n(.c) +.. +.\" NS Ta macro - append tab (\t) +.de Ta +.ie \\n(aC>0 \{\ +. nr aP \\n(aP+1 +. ie \\n(aC>=\\n(aP \{\ +. if "\\*(A\\n(aP"Ta" \{\ +. nr jJ \\n(aP-1 +. rm S\\n(jJ +. rr jJ +. \} +. as b1 \\t +. c\\n(C\\n(aP +. \} +. el \{\ +. as b1 \\t\\c +. rm S\\n(aP +. pB +. aY +.\" . ds b1 +. \} +.\} +.el \{\ +. tm Usage: Ta must follow column entry: e.g. (#\\n(.c) +. tm .It column_string [Ta [column_string ...] ] +.\} +.. +.\" +.\" NS Dl macro - display (one line) literal +.de Dl +'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i +.in \\n(.iu+\\n(Dsu +.ie \\n(aC==0 \{\ +. ie \\n(.$==0 \{\ +. tm Usage: .Dl argument ... (#\\n(.c) +. \} +. el \{\ +. ds mN Dl +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. Li +. \} +.\} +.el \{\ +. tm Usage: .Dl not callable by other macros (#\\n(.c) +.\} +.in \\n(.iu-\\n(Dsu +.. +.\" +.\" NS D1 macro - display (one line) +.de D1 +'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i +.in \\n(.iu+\\n(Dsu +.ie \\n(aC==0 \{\ +. ie \\n(.$==0 \{\ +. tm Usage: .D1 argument ... (#\\n(.c) +. \} +. el \{\ +. ds mN D1 +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==1 .\\*(A\\n(aP +. el .No +. \} +.\} +.el \{\ +. tm Usage: .D1 not callable by other macros (#\\n(.c) +.\} +.in \\n(.iu-\\n(Dsu +.. +.\" NS Ex macro - DEFUNCT +.de Ex +.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" +.\" NS Ex macro - DEFUNCT +.de Ex +.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" +.\" NS Vt macro - Variable type (for forcing old style variable declarations) +.\" this is not done in the same manner as .Ot for fortrash - clean up later +.de Vt +.\" if a function declaration was the last thing given, want vertical space +.if \\n(fD>0 \{\ +. Pp +. nr fD 0 +.\} +.\" if a subroutine was the last thing given, want vertical space +.if \\n(fZ>0 \{\ +. ie \\n(fX==0 \{\ +. Pp +. rs +. \} +. el .br +.\} +.nr fX \\n(fX+1 +.nr cF \\n(.f +.nr cZ \\n(.s +\\*(fT\&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.ie \\n(oT==0 .br +.el \&\ \& +.ft \\n(cF +.fs \\n(cZ +.. +.\" +.\" NS Ft macro - Function type +.nr fZ 0 +.de Ft +.if \\n(nS>0 \{\ +. if \\n(fZ>0 \{\ +. Pp +. nr fD 0 +. nr fX 0 +. \} +. if \\n(fD>0 \{\ +. Pp +. nr fD 0 +. nr fX 0 +. \} +. if \\n(fX>0 \{\ +. Pp +. nr fX 0 +. \} +. nr fY 1 +.\} +.nr cF \\n(.f +.nr cZ \\n(.s +\&\\*(fT\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.ft \\n(cF +.fs \\n(cZ +.\" .br +.. +.\" +.\" NS Ot macro - Old Function type (fortran - no newline) +.\" Ns oT register +.nr oT 0 +.de Ot +.nr oT 1 +.if \\n(nS>0 \{\ +. if \\n(fZ>0 \{\ +. Pp +. nr fD 0 +. nr fX 0 +. \} +. if \\n(fD>0 \{\ +. Pp +. nr fD 0 +. nr fX 0 +. \} +. if \\n(fX>0 \{\ +. Pp +. nr fX 0 +. \} +. nr fY 1 +.\} +.if \\n(.$==4 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3 \\$4 +.if \\n(.$==3 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3 +.if \\n(.$==2 .as b1 \&\\*(fT\&\\$1 \\$2 +.if \\n(.$==1 .as b1 \&\\*(fT\&\\$1 +.as b1 \&\ \fP +.. +.\" +.\" NS Fa macro - Function arguments +.de Fa +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Fa Function Arguments ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Fa +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.ie \\n(fC>0 \{\ +. fC +.\} +.el \{\ +. if \\n(aC>\\n(aP \{\ +. as b1 \\*(fA +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +. if \\n(nS>0 \{\ +. if \\n(fZ>0 .br +. \} +. \} +.\} +.. +.\" NS fC macro - interal .Fa for .FO and .Fc +.de fC +.ie \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +.\" . nr aa \\n(aP +.\" . if \\n(nS>0 \{\ +. ds Fb +. nr fB 0 +. nr Fb 0 +. fB \\*(A\\n(aP +. if \\n(fB>1 \{\ +. rm A\\n(aP +. rn Fb A\\n(aP +. \} +.\" . \} +. if \\n(fC>1 \{\ +. as b1 \&\f\\n(cF\s\\n(cZ\|,\\*(fA\\*(S\\n(aP\\*(A\\n(aP\fP\s0 +. \} +. if \\n(fC==1 \{\ +. as b1 \&\|\\*(fA\\*(A\\n(aP\fP\s0 +. \} +. nr fC \\n(fC+1 +. fC +.\} +.el \{\ +. aY +.\} +.. +.\" NS Fn macro - functions +.\" NS fY register - dick with old style function declarations (fortran) +.\" NS fZ register - break a line when more than one function in a synopsis +.\" +.de Fn +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Fn function_name function_arg(s) ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN Fn +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(nS>0 \{\ +.\" if there is/has been more than one subroutine declaration +. if \\n(fY==0 \{\ +. if \\n(fZ>0 \{\ +. Pp +. nr fX 0 +. nr fD 0 +. \} +. \} +. if \\n(fY==1 \{\ +. br +. nr fX 0 +. nr fD 0 +. nr fY 0 +. \} +. if \\n(fD>0 \{\ +. Pp +. nr fX 0 +. \} +. if \\n(fX>0 \{\ +. Pp +. nr fD 0 +. \} +. nr fZ \\n(fZ+1 +. nr fY 0 +. rs +. ie \\n(nS>1 .br +. el \{\ +. if \\n(iS==0 \{\ +. nr iS ((8)*\\n(fW)u +. \} +. \} +. in +\\n(iSu +. ti -\\n(iSu +. nr nS \\n(nS+1 +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp +. ie \\n(aC>\\n(aP \{\ +. as b1 \\*(fA +. nr aP \\n(aP+1 +. f\\n(C\\n(aP +. \} +. el \{\ +. ie \\n(nS>0 .as b1 \|\\*(rp\fR;\fP +. el .as b1 \|\\*(rp +. aZ +. \} +. if \\n(nS>0 \{\ +. in -\\n(iSu +. \} +.\} +.. +.\" +.\" NS f1 macro - class switch +.\" NS f2 macro - handle function arguments +.\" NS f3 macro - punctuation +.\" NS f4 macro - write out function +.de f1 +.ie \\n(nS>0 .as b1 \\*(rp\fR;\fP\f\\n(cF\s\\n(cZ +.el .as b1 \\*(rp\f\\n(cF\s\\n(cZ +.\\*(A\\n(aP +.. +.de f2 +.if \\n(nS>0 \{\ +. ds Fb +. nr fB 0 +. nr Fb 0 +. fB \\*(A\\n(aP +. if \\n(fB>1 \{\ +. rm A\\n(aP +. rn Fb A\\n(aP +. \} +.\} +.as b1 \\*(A\\n(aP +.ie \\n(aC>\\n(aP \{\ +. nr aa \\n(aP +. nr aP \\n(aP+1 +. if \\n(C\\n(aP==2 \{\ +. as b1 \&\|\f\\n(cF\s\\n(cZ,\\*(S\\n(aa\fP\s0\| +. \} +. f\\n(C\\n(aP +.\} +.el \{\ +. ie \\n(nS>0 .as b1 \\*(rp\fR;\fP\f\\n(cF\s\\n(cZ +. el .as b1 \\*(rp\f\\n(cF\s\\n(cZ +. aZ +.\} +.. +.de f3 +.ie \\n(nS>0 .as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(A\\n(aP +.el .as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(A\\n(aP +.ie \\n(aC>\\n(aP \{\ +. No +.\} +.el .aZ +.. +.de f4 +.ie \\n(nS>0 .as b1 \\*(rp\fR;\fP\f\\n(cF\s\\n(cZ\\*(S\\n(aP\\*(A\\n(aP +.el .as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(S\\n(aP\\*(A\\n(aP +.ie \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. No +.\} +.el .aZ +.. +.de Fo +.hy 0 +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .Fo function_name +. el \{\ +. ds mN Fo +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(nS>0 \{\ +.\" if there is/has been more than one subroutine declaration +. if \\n(fY==0 \{\ +. if \\n(fZ>0 \{\ +. Pp +. nr fX 0 +. nr fD 0 +. \} +. \} +. if \\n(fY==1 \{\ +. br +. nr fX 0 +. nr fD 0 +. nr fY 0 +. \} +. if \\n(fD>0 \{\ +. Pp +. nr fX 0 +. \} +. if \\n(fX>0 \{\ +. Pp +. nr fD 0 +. \} +. nr fZ \\n(fZ+1 +. nr fY 0 +. rs +. ie \\n(nS>1 .br +. el \{\ +. if \\n(iS==0 \{\ +. nr iS ((8)*\\n(fW)u +. \} +. \} +. in +\\n(iSu +. ti -\\n(iSu +. nr nS \\n(nS+1 +.\} +.if \\n(aC>\\n(aP \{\ +. nr oM \\n(oM+1 +. nr fC 1 +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp +. aY +.\} +.. +.de Fc +.if \\n(aC==0 \{\ +. if \\n(.$>0 \{\ +. ds mN Fo +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.nr fC 0 +.nr oM \\n(oM-1 +.ie \\n(nS>0 .as b1 \|\\*(rp\fR;\fP +.el .as b1 \|\\*(rp +.ie \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. \\*(A\\n(aP +.\} +.el \{\ +. aZ +.\} +.if \\n(nS>0 \{\ +. in -\\n(iSu +.\} +.hy +.. +.\" NS fb macro - if SYNOPSIS, set hard space inbetween function args +.\" NS fb register - count of words in a function argument +.\" NS Fb register - counter +.\" NS Fb string - temporary string +.de fB +.\" .tm fB==\\n(fB, Fb==\\n(Fb, 1==\\$1 2==\\$2 3==\\$3 4==\\$4 5==\\$5 6==\\$6 +.if \\n(fB==0 \{\ +. nr fB \\n(.$ +. nr Fb 0 +. ds Fb +.\} +.nr Fb \\n(Fb+1 +.as Fb \&\\$1 +.if \\n(Fb<\\n(fB \{\ +. as Fb \&\\*(hV +. fB \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\} +.. +.\" NS Fc - Function close - not implemented yet +.\" NS Fo - Function open - not implemented yet +.\" +.\" Very crude references, stash all reference info into strings (usual +.\" use of b1 buffer, then b1 contents copied to string of retrievable +.\" naming convention), print out reference on .Re request and clean up. +.\" Ordering very limited, no fancy citations, but can do articles, journals +.\" and books - need to add several missing options (like city etc). +.\" should be able to grab a refer entry, massage it a wee bit (prefix +.\" a `.' to the %[A-Z]) and not worry (ha!) +.\" +.\" NS Rs macro - Reference Start +.\" NS rS register - Reference Start flag +.\" NS rS string - Reference Start buffer name for next save (of b1 buffer) +.de Rs +.nr rS 1 +.rC +.if \\n(nA==1 .Pp +.nr Kl 0 +.. +.\" NS Re macro - Reference End +.de Re +.rZ +.rC +.nr rS 0 +.. +.\" NS rC macro - reference cleanup +.de rC +.nr uK 0 +.nr jK 0 +.nr iK 0 +.nr nK 0 +.nr oK 0 +.nr qK 0 +.nr rK 0 +.nr tK 0 +.nr vK 0 +.nr dK 0 +.nr pK 0 +.nr bK 0 +.ds rS +.rm U1 U2 U3 U4 U5 U6 U7 U8 +.rm uK jK iK nK oK rK qK tK vK dK pK bK +.. +.\" NS rZ macro - reference print +.de rZ +.if \\n(uK \{\&\\*(U1, +. nr aK 1 +. if (\\n(uK>1 \{\ +. aK +. \} +. nr Kl -\\n(uK +.\} +.if \\n(tK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \{\ +. ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q. +. \} +. el \{\&\\*(eM\\*(tK\\*(nO. +. \} +. \} +. if \\n(Kl>0 \{\ +. ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q, +. \} +. el \{\&\\*(eM\\*(tK\\*(nO, +. \} +. \} +.\} +.if \\n(bK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(eM\\*(bK\\*(nO. +. if \\n(Kl>0 \&\\*(eM\\*(bK\\*(nO, +.\} +.if \\n(iK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(eM\\*(iK\\*(nO. +. if \\n(Kl>0 \&\\*(eM\\*(iK\\*(nO, +.\} +.if \\n(jK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(eM\\*(jK\\*(nO. +. if \\n(Kl>0 \&\\*(eM\\*(jK\\*(nO, +.\} +.if \\n(rK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(rK. +. if \\n(Kl>0 \&\\*(rK, +.\} +.if \\n(nK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(nK. +. if \\n(Kl>0 \&\\*(nK, +.\} +.if \\n(vK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(vK. +. if \\n(Kl>0 \&\\*(vK, +.\} +.if \\n(pK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(pK. +. if \\n(Kl>0 \&\\*(pK, +.\} +.if \\n(qK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(qK. +. if \\n(Kl>0 \&\\*(qK, +.\} +.if \\n(dK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(dK. +. if \\n(Kl>0 \&\\*(dK, +.\} +.if \\n(oK \{\ +. nr Kl \\n(Kl-1 +. if \\n(Kl==0 \&\\*(oK. +. if \\n(Kl>0 \&\\*(oK, +.\} +.if \\n(Kl>0 .tm unresolved reference problem +.. +.\" NS aK macro - print out reference authors +.de aK +.nr aK \\n(aK+1 +.ie (\\n(uK-\\n(aK)==0 \{\&and \\*(U\\n(aK, +.\} +.el \{\&\\*(U\\n(aK, +. aK +.\} +.. +.\" NS %A macro - reference author(s) +.\" NS uK register - reference author(s) counter +.\" NS U[1-9] strings - reference author(s) names +.de %A +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%A Author_name (#\\n(.c) +. el \{\ +. nr uK \\n(uK+1 +. nr Kl \\n(Kl+1 +. ds rS U\\n(uK +. ds mN %A +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %B macro - [reference] Book Name +.\" NS bK string - Book Name +.\" NS bK register - Book Name flag +.de %B +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%B Book Name (#\\n(.c) +. el \{\ +. ds mN %B +. if \\n(rS>0 \{\ +. nr bK \\n(bK+1 +. nr Kl \\n(Kl+1 +. ds rS bK +. \} +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. ie \\n(rS==0 \{\ +. as b1 \&\\*(eM +. nR +. \} +. el .rR +.\} +.. +.\" NS %D macro - [reference] Date +.\" NS dK string - Date String +.\" NS dK register - Date flag +.de %D +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%D Date (#\\n(.c) +. el \{\ +. ds mN %D +. nr dK \\n(dK+1 +. nr Kl \\n(Kl+1 +. ds rS dK +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %I macro - [reference] Issuer/Publisher Name +.\" NS jK register - [reference] Issuer/Publisher Name flag +.\" NS jK string - [reference] Issuer/Publisher Name +.de %I +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%I Issuer/Publisher Name (#\\n(.c) +. el \{\ +. ds mN %I +. nr iK \\n(iK+1 +. ds rS iK +. nr Kl \\n(Kl+1 +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %J macro - [reference] Journal Name +.\" NS jK register - [reference] Journal Name flag +.\" NS jK string - [reference] Journal Name +.de %J +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%J Journal Name (#\\n(.c) +. el \{\ +. ds mN %J +. nr jK \\n(jK+1 +. ds rS jK +. nr Kl \\n(Kl+1 +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %N macro - [reference] issue number +.\" NS nK register - [reference] issue number flag +.\" NS nK string - [reference] issue number +.de %N +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%N issue number (#\\n(.c) +. el \{\ +. nr nK \\n(nK+1 +. nr Kl \\n(Kl+1 +. ds rS nK +. ds mN %N +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %O macro - [reference] optional information +.\" NS oK register - [reference] optional information flag +.\" NS oK string - [reference] optional information +.de %O +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%O optional information ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN %O +. nr oK \\n(oK+1 +. nr Kl \\n(Kl+1 +. ds rS oK +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %P macro - [reference] page numbers +.\" NS pK register - [reference] page number flag +.\" NS pK string - [reference] page number +.de %P +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%P page numbers ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN %P +. nr pK \\n(pK+1 +. nr Kl \\n(Kl+1 +. ds rS pK +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %Q macro - Corporate or Foreign Author +.\" NS qK string - Corporate or Foreign Author +.\" NS qK register - Corporate or Foreign Author flag +.de %Q +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%Q Corporate or Foreign Author (#\\n(.c) +. el \{\ +. ds mN %Q +. nr qK \\n(qK+1 +. nr Kl \\n(Kl+1 +. ds rS qK +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %R macro - [reference] report name +.\" NS rK string - [reference] report name +.\" NS rK register - [reference] report flag +.de %R +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%R reference report (#\\n(.c) +. el \{\ +. ds mN %R +. nr rK \\n(rK+1 +. nr Kl \\n(Kl+1 +. ds rS rK +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS %T macro - reference title +.\" NS tK string - reference title +.\" NS tK register - reference title flag +.de %T +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%T (#\\n(.c) +. el \{\ +. ds mN %T +. if \\n(rS>0 \{\ +. nr tK \\n(tK+1 +. nr Kl \\n(Kl+1 +. ds rS tK +. \} +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +.\" . ie \\n(jS==1 \{\ +.\" . nr cF \\n(.f +.\" . nr cZ \\n(.s +.\" . ds qL \&\\*(Lq\\*(rA +.\" . ds qR \&\\*(Rq\f\\n(cF\s\\n(cZ +.\" . En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\" . \} +.\" . el \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. ie \\n(rS==0 \{\ +. as b1 \&\\*(eM +. nR +. \} +. el .rR +.\" . \} +.\} +.. +.\" NS %V macro - reference volume +.\" NS vK string - reference volume +.\" NS vK register - reference volume flag +.de %V +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .%V Volume , ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN %V +. nr vK \\n(vK+1 +. nr Kl \\n(Kl+1 +. ds rS vK +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. rR +.\} +.. +.\" NS rR macro - reference recursion routine +.\" NS jM local register +.\" NS jN local register +.de rR +.hy 0 +.nr jM \\n(C\\n(aP +.ie \\n(jM==1 \{\ +.\" . as b1 \&\f\\n(cF\s\\n(cZ +. ie "\\*(A\\n(aP"Tn" \{\ +. nN +. \} +. el \{\ +. if \\n(aC>8 .tm Usage: \\*(mN - maximum 8 arguments (#\\n(.c) +. aI rR 1 +. \\*(A\\n(aP +. \} +.\} +.el \{\ +. nr jN \\n(aP +. ie \\n(jM==2 .as b1 \&\\*(A\\n(aP +. el .as b1 \&\\*(A\\n(aP +.\" . el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0 +. ie \\n(aC==\\n(aP \{\ +.\" . as b1 \&\f\\n(cF\s\\n(cZ +. rD +. \} +. el \{\ +. nr aP \\n(aP+1 +. as b1 \&\\*(S\\n(jN +. rR +. \} +.\} +.rr jM jN +.. +.\" NS rD macro - save b1 buffer in to appropriate name +.de rD +.as \\*(rS \\*(b1 +.ds b1 +.ds rS +.aY +.. +.\" NS Hf macro - source include header files. +.de Hf +.Pp +File: +.Pa \\$1 +.Pp +.nr cF \\n(.f +.nr cZ \\n(.s +.ie t \{\ +\&\\*(lI +.br +.ta +9n 18n 27n 36n 45n 54n 63n 72n +.\} +.el \{\ +.ta +8n 16n 24n 32n 40n 48n 56n 64n 72n +.\} +.nf +.so \\$1 +.fi +.ft \\n(cF +.fz \\n(cZ +.Pp +.. +.\" NS An macro - author name +.\" NS aN register +.nr aN 0 +.de An +.if \\n(nY==1 \{\ +. ie \\n(aN==1 \{\ +. br +. \} +. el \{\ +. nr aN 1 +. \} +.\} +.if \\n(aC==0 \{\ +. ie \\n(.$==0 .tm Usage: .An author_name ... \\*(Pu (#\\n(.c) +. el \{\ +. ds mN An +. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nr cF \\n(.f +. nr cZ \\n(.s +. nR +.\} +.. +.\" NS Sf macro -defunct +.de Sf +.tm .Sf defunct, use prefix or Ns +.. +.ds rV "function returns the value 0 if successful; otherwise the value -1 is returned and the global variable \\*(vAerrno\fP is set to indicate the error. +.\" Ns Rv macro - return values +.\" Ns rV string - standard return message +.de Rv +.ie \\n(.$==0 \{\ +.tm Usage: .Rv [-std] (#\\n(.c) +.\} +.el \{\ +. ds mN Rv +.\" . nr aP 0 +.\" . nr lR \\n(lR+1 +.\" . ds A1 \\$2 +.\" . ds A2 \\$3 +.\" . ds A3 \\$4 +.\" . ds A4 \\$5 +.\" . ds A5 \\$6 +.\" . ds A6 \\$7 +.\" . ds A7 \\$8 +.\" . ds A8 \\$9 +.\" . nr fV \\n(.$-1 +. if "\\$1"-std" \{\ +. nr cH \\*(cH +. if (\\n(cH<2):(\\n(cH>3) .tm Usage: .Rv -std sections 2 and 3 only +. br +\&The +.Fn \\$2 +\&\\*(rV +. \} +.\} +.. diff --git a/share/tmac/mdoc/doc-common b/share/tmac/mdoc/doc-common new file mode 100644 index 00000000000..a8aef9ed644 --- /dev/null +++ b/share/tmac/mdoc/doc-common @@ -0,0 +1,432 @@ +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 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) 6/8/93 +.\" +.\" %beginstrip% +.nr %A 1 +.nr %J 1 +.nr %N 1 +.nr %O 1 +.nr %R 1 +.nr %T 1 +.nr %V 1 +.nr Ad 12n +.nr Ac 3 +.nr Ao 12n +.nr An 12n +.nr Aq 12n +.nr Ar 12n +.nr Bc 3 +.nr Bl 1 +.nr Bo 12n +.nr Bq 12n +.nr Cd 12n +.nr Cm 10n +.nr Dc 3 +.nr Do 10n +.nr Dq 12n +.nr Ds 6n +.nr Dq 12n +.nr Dv 12n +.nr Ec 3 +.nr El 1 +.nr Eo 12n +.nr Eq 12n +.nr Em 10n +.nr Er 12n +.nr Ev 15n +.nr Fa 12n +.nr Fl 10n +.nr Fc 3 +.nr Fo 16n +.nr Fn 16n +.nr I1 6n +.nr I2 12n +.nr I3 18n +.nr Ic 10n +.nr Li 16n +.nr Ms 6n +.nr Nm 10n +.nr No 12n +.nr Ns 2 +.nr Oo 10n +.nr Oc 3 +.nr Op 14n +.nr Pa 32n +.nr Pf 12n +.nr Pc 3 +.nr Po 12n +.nr Pq 12n +.nr Ql 16n +.nr Sc 3 +.nr So 12n +.nr Sq 12n +.nr Sy 6n +.nr Sx 16n +.nr Rv 1 +.nr Tn 10n +.nr Ta 1 +.nr Tv 1 +.nr Tx 22n +.nr Va 12n +.nr Xc 3 +.nr Xo 1 +.nr Xr 10n +.ds sV \& \& +.ds hV \&\ \& +.ds iV \& \& +.ds tV \&\\t\& +.\" Punctuation values (3 = closing punctuation, 4 = opening) +.nr z. 3 +.nr z, 3 +.nr z: 3 +.nr z; 3 +.nr z( 4 +.nr z) 3 +.nr z[ 4 +.nr z] 3 +.\" Matching pairs +.ds z( z) +.ds z[ z] +.ds z< z> +.\" This is disgusting, troff not parse ``if'' stmt properly +.nr z0 0 +.nr z1 0 +.nr z2 0 +.nr z3 0 +.nr z4 0 +.nr z5 0 +.nr z6 0 +.nr z7 0 +.nr z8 0 +.nr z9 0 +.nr z# 0 +.\" Header assembly macros +.de Dt +.ds dT UNTITLED +.ds vT LOCAL +.ds cH Null +.if !"\\$1"" .ds dT \\$1 +.if !"\\$2"" \{\ +. ds cH \\$2 +.\" . if "\\$3"" \{\ +. if \\$2>=1 .if \\$2<=8 \{\ +. ds vT BSD Reference Manual +. if \\$2>1 .if \\$2<6 .ds vT BSD Programmer's Manual +. if "\\$2"8" .ds vT BSD System Manager's Manual +. nr sN \\$2 +. \} +. if "\\$2"unass" .ds vT DRAFT +. if "\\$2"draft" .ds vT DRAFT +. if "\\$2"paper" .ds vT UNTITLED +.\" . \} +.\} +.if !"\\$3"" \{\ +. if "\\$3"USD" .ds vT BSD User's Supplementary Documents +. if "\\$3"PS1" .ds vT BSD Programmers's Supplementary Documents +. if "\\$3"AMD" .ds vT BSD Ancestral Manual Documents +. if "\\$3"SMM" .ds vT BSD System Manager's Manual +. if "\\$3"URM" .ds vT BSD Reference Manual +. if "\\$3"PRM" .ds vT BSD Programmers's Manual +. if "\\$3"IND" .ds vT BSD Manual Master Index +.\" . if "\\$3"CON" .ds vT BSD Contributed Software Manual +.\" . if "\\$3"IMP" .ds vT BSD Implementation Notes +.\" . if "\\$3"HOW" .ds vT BSD How Pocket Manual +. if "\\$3"LOCAL" .ds vT BSD Local Manual +. if "\\$3"tahoe" .as vT \ (Tahoe Architecture) +. if "\\$3"vax" .as vT \ (VAX Architecture) +. if "\\$3"hp300" .as vT \ (HP300 Architecture) +. if "\\$3"sparc" .as vT \ (SPARC Architecture) +. if "\\*(vT"LOCAL" .ds vT \\$3 +.\} +.. +.\" NS Os macro - Operating System (behaviour changes after first call) +.\" . ds vT \f(CODRAFT\fP\ \ \-\-\ \ \\*(vT\ \ \-\-\ \ \f(CODRAFT +.\" . ds dD \f(CODRAFT\fP\ \ \-\-\ \ \\*(dD\ \ \-\-\ \ \f(CODRAFT +.\" .ds vT \s+4\f(CODRAFT\fP\s-4\ \ \-\-\ \ \\*(vT\ \ \-\-\ \ \s+4\f(CODRAFT\s-4 +.\" .ds dD \s+4\f(CODRAFT\fP\s-4\ \ \-\-\ \ \\*(dD\ \ \-\-\ \ \s+4\f(CODRAFT\s-4 +.de Os +.ds oS Null +.if "\\$1"" \{\ +. ds oS 4.4BSD +.\} +.if "\\$2"" \{\ +. ds aa Non-Null +.\} +.if "\\$1"ATT" \{\ +. ds oS AT&T +. if "\\$2"" .as oS \0UNIX +. if "\\$2"7th" .as oS \07th Edition +. if "\\$2"7" .as oS \07th Edition +. if "\\$2"III" .as oS \0System III +. if "\\$2"3" .as oS \0System III +. if "\\$2"V" .as oS \0System V +. if "\\$2"V.2" .as oS \0System V Release 2 +. if "\\$2"V.3" .as oS \0System V Release 3 +. if "\\$2"V.4" .as oS \0System V Release 4 +.\} +.if "\\$1"BSD" \{\ +. if "\\$2"3" .ds oS 3rd Berkeley Distribution +. if "\\$2"4" .ds oS 4th Berkeley Distribution +. if "\\$2"4.1" .ds oS 4.1 Berkeley Distribution +. if "\\$2"4.2" .ds oS 4.2 Berkeley Distribution +. if "\\$2"4.3" .ds oS 4.3 Berkeley Distribution +. if "\\$2"4.3T" .ds oS 4.3-Tahoe Berkeley Distribution +. if "\\$2"4.3R" .ds oS 4.3-Reno Berkeley Distribution +. if "\\$2"4.3t" .ds oS 4.3-Tahoe Berkeley Distribution +. if "\\$2"4.3r" .ds oS 4.3-Reno Berkeley Distribution +. if "\\$2"4.4" .ds oS 4.4BSD +.\} +.if "\\*(oS"Null" .ds oS \0\\$1 +.if "\\*(aa"Non-Null" .as oS \0\\$2 +.rm aa +.. +.de Dd +.if !"\\*(dD"" .nr gX 1 +.ie \\n(.$>0 \{\ +. ie \\n(.$==3 \{\ +. ds dD \\$1 \\$2 \\$3 +. \} +. el \{\ +. if "\\n(mo"1" .ds dD January +. if "\\n(mo"2" .ds dD February +. if "\\n(mo"3" .ds dD March +. if "\\n(mo"4" .ds dD April +. if "\\n(mo"5" .ds dD May +. if "\\n(mo"6" .ds dD June +. if "\\n(mo"7" .ds dD July +. if "\\n(mo"8" .ds dD August +. if "\\n(mo"9" .ds dD September +. if "\\n(mo"10" .ds dD October +. if "\\n(mo"11" .ds dD November +. if "\\n(mo"12" .ds dD December +. as dD \&\ \\n(dy, 19\\n(yr +. \} +.\} +.el \{\ +. ds dD Epoch +.\} +.. +.de hM +.ev 1 +.pL +.if !\\n(cR 'sp \\n(Hmu +.tl @\\*(Hs\\*(hT\fP@\\*(Vs\\*(vT\fP@\\*(Hs\\*(hT\fP@ +'sp \\n(Hmu +.ev +.. +.de fM +.ie \\n(cR 'br +.el \{\ +. ev 1 +. pL +. if !\\n(cR \{\ +' sp \\n(Fmu +. tl @\\*(Hs\\*(oS\fP@\\*(Vs\\*(dD\fP@%@ +' bp +. \} +. ev +.\} +.. +.de lM +.fl +.if \\n(cR \{\ +' sp +. tl @\\*(Hs\\*(oS\fP@\\*(Vs\\*(dD\fP@%@ +. pl \\n(nlu +.\} +.. +.de Pp +.sp \\n(Ppu +.ne 2 +.ns +.. +.de Lp +.Pp +.. +.de LP +.tm Not a \-mdoc command: .LP +.. +.de PP +.tm Not a \-mdoc command: .PP +.. +.de pp +.tm Not a \-mdoc command: .pp +.. +.de Nd +\&\-\& \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.de Ss +.sp +.ne 2 +.ti -.25i +\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9 +\&\fP\s0 +.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i +.if !\\n(cR .ne 2 +.br +.. +.de Rd +.tm MDOC REGISTER DUMP +.tm Db==\\n(Db register DEBUG MODE +.tm L[0-9] registers - stack of list types +.tm L0==\\n(L0 +.tm L1==\\n(L1 +.tm L2==\\n(L2 +.tm L3==\\n(L3 +.tm L4==\\n(L4 +.tm L5==\\n(L5 +.tm L6==\\n(L6 +.tm L7==\\n(L7 +.tm L8==\\n(L8 +.tm L9==\\n(L9 +.tm O[0-9] registers - stack of indent +.tm O0==\\n(O0 +.tm O1==\\n(O1 +.tm O2==\\n(O2 +.tm O3==\\n(O3 +.tm O4==\\n(O4 +.tm O5==\\n(O5 +.tm O6==\\n(O6 +.tm O7==\\n(O7 +.tm O8==\\n(O8 +.tm O9==\\n(O9 +.tm aC==\\n(aC register argument counter (aV/fV) +.tm aJ==\\n(aJ register (for vR) +.tm aN==\\n(aN register +.tm aP==\\n(aP register argument pointer (aV) +.tm aT==\\n(aT register argument type +.tm aa==\\n(aa local register +.tm bK==\\n(bK register - Book Name flag +.tm cF==\\n(cF register save current font +.tm cI==\\n(cI register - column indent width +.tm cZ==\\n(cZ register save current font size +.tm dK==\\n(dK register - Date flag +.tm d[0-9] registers - display-type stack +.tm d0==\\n(d0 +.tm d1==\\n(d1 +.tm d2==\\n(d2 +.tm d3==\\n(d3 +.tm d4==\\n(d4 +.tm d5==\\n(d5 +.tm d6==\\n(d6 +.tm d7==\\n(d7 +.tm d8==\\n(d8 +.tm d9==\\n(d9 +.tm dZ==\\n(dZ register diversion count +.tm fD==\\n(fD register subroutine test (in synopsis only) +.tm fV==\\n(fV register argument counter (must set to \\n(.$ prior to +.tm fY==\\n(fY register - dick with old style function declarations (fortran) +.tm fZ==\\n(fZ register also subroutine count (in synopsis only) +.tm h[0-9] register horizontal tag stack (continuous if 1, break if +.tm h0==\\n(h0 +.tm h1==\\n(h1 +.tm h2==\\n(h2 +.tm h3==\\n(h3 +.tm h4==\\n(h4 +.tm h5==\\n(h5 +.tm h6==\\n(h6 +.tm h7==\\n(h7 +.tm h8==\\n(h8 +.tm h9==\\n(h9 +.tm iD==\\n(iD local register +.tm iI==\\n(iI local register (indent for inline debug mode) +.tm iN==\\n(iN register DEBUG MODE (inline if 1, to stderr if +.tm iS==\\n(iS register - indent second command line in a synopsis +.tm jK==\\n(jK register - [reference] Journal Name flag +.tm jM==\\n(jM local register +.tm jN==\\n(jN local register +.tm lC==\\n(lC register - list type stack counter +.tm lK==\\n(lK register count of lines read from input file +.tm nK==\\n(nK register - [reference] issue number flag +.tm nU==\\n(nU register count +.tm oK==\\n(oK register - [reference] optional information flag +.tm oM==\\n(oM register (extension possible) +.tm o[0-9] register offset stack (nested tags) +.tm o0==\\n(o0 +.tm o1==\\n(o1 +.tm o2==\\n(o2 +.tm o3==\\n(o3 +.tm o4==\\n(o4 +.tm o5==\\n(o5 +.tm o6==\\n(o6 +.tm o7==\\n(o7 +.tm o8==\\n(o8 +.tm o9==\\n(o9 +.tm oM==\\n(oM register open ended line flag +.tm pK==\\n(pK register - [reference] page number flag +.tm qK==\\n(qK register - Corporate or Foreign Author flag +.tm rK==\\n(rK register - [reference] report flag +.tm rS==\\n(rS register - Reference Start flag +.tm sM==\\n(sM register - default is one (space mode on) +.tm tK==\\n(tK register - reference title flag +.tm tP==\\n(tP register tag flag (for diversions) +.tm tX==\\n(tX register (initial class) +.tm tY==\\n(tY register (next possible lC value) +.tm t[0-9] register tag string stack (nested tags) +.tm t0==\\n(t0 +.tm t1==\\n(t1 +.tm t2==\\n(t2 +.tm t3==\\n(t3 +.tm t4==\\n(t4 +.tm t5==\\n(t5 +.tm t6==\\n(t6 +.tm t7==\\n(t7 +.tm t8==\\n(t8 +.tm t9==\\n(t9 +.tm uK==\\n(uK register - reference author(s) counter +.tm vK==\\n(vK register - reference volume flag +.tm v[0-9] register vertical tag break stack +.tm v0==\\n(v0 +.tm v1==\\n(v1 +.tm v2==\\n(v2 +.tm v3==\\n(v3 +.tm v4==\\n(v4 +.tm v5==\\n(v5 +.tm v6==\\n(v6 +.tm v7==\\n(v7 +.tm v8==\\n(v8 +.tm v9==\\n(v9 +.tm w[0-9] register tag stack (nested tags) +.tm w0==\\n(w0 +.tm w1==\\n(w1 +.tm w2==\\n(w2 +.tm w3==\\n(w3 +.tm w4==\\n(w4 +.tm w5==\\n(w5 +.tm w6==\\n(w6 +.tm w7==\\n(w7 +.tm w8==\\n(w8 +.tm w9==\\n(w9 +.tm xX==\\n(xX local register +.tm END OF REGISTER DUMP +.. diff --git a/share/tmac/mdoc/doc-ditroff b/share/tmac/mdoc/doc-ditroff new file mode 100644 index 00000000000..08b413eed38 --- /dev/null +++ b/share/tmac/mdoc/doc-ditroff @@ -0,0 +1,269 @@ +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 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) 6/8/93 +.\" +.\" tmac.mdoc-ditroff +.\" %beginstrip% +.\" +.ds aD \fI\s10 +.ds aR \f(CO\s10 +.ds cM \f(CB\s10 +.ds dF \fR\s10 +.ds eM \fI\s10 +.ds eR \fC\s10 +.ds eV \fC\s10 +.ds fA \f(CO\s10 +.ds fD \f(CB\s10 +.ds fL \f(CB\s10 +.ds fN \f(CB\s10 +.ds fP \fP\s0 +.ds fS \s0 +.ds fT \f(CO\s10 +.ds Hs \fR\s10 +.ds iC \f(CB\s10 +.ds lI \fC +.ds lP \fR\|(\|\fP\s10 +.ds lp \fR(\fP\s10 +.ds rP \fR\|)\|\fP\s10 +.ds rp \fR)\fP\s10 +.ds lB \fR\^[\^\fP\s10 +.ds rB \fR\^]\fP\s10 +.ds mL \fB\s10 +.ds nM \f(CB\s10 +.ds nO \fR\s10 +.ds nT \s0 +.ds pA \fC\s10 +.ds Pu \fR{\ .\ ,\ :\ ;\ (\ )\ [\ ]\ \fR} +.ds rA \fR\s10 +.ds rT \f(CO\s10 +.ds sH \fB\s10 +.ds sP \s0 +.ds sY \fB\s10 +.ds sX \fR\s10 +.ds tF \fR +.ds tN \s9 +.ds vA \fI\s10 +.ds Vs \fR\s10 +.ds vT \f(CB\s10 +.ds xR \fC\s10 +.tr *\(** +.nr sI \w\fC,u*5 +.nr Ti \n(sIu +.nr Pp .5v +.ds lS \0 +.nr lS \w'\0'u +.nr dI 6n +.de pL +.nr Hm .5i +.nr Fm .5i +.nr ll 6.5i +.ll 6.5i +.nr lt 6.5i +.lt 6.5i +.nr po 1i +.po 1.i +.nr dV .5v +.. +.ds <= \(<= +.ds >= \(>= +.ds Lq \&`` +.ds Rq \&'' +.ds ua \(ua +.ds aa \(aa +.ds ga \(ga +.ds sR \&' +.ds sL \&` +.ds q \&" +.\" Math stuff +.ds Pi \(*p +.ds Ne \(!= +.ds Le \(<= +.ds Ge \(>= +.ds Lt < +.ds Gt > +.ds Pm \(+- +.ds If \(if +.ds Na \fINaN\fP +.ds Ba \fR\&|\fP +.\" +.nr gX 0 +.de hK +.ds hT \\*(dT +.if !"\\*(cH"Null" \{\ +. ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|) +. el .as hT \\|(\\|\\*(cH\\|) +.\} +.if "\\*(cH"Null" \{\ +. if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|) +.\} +.wh 0 hM +.wh -1.25i fM +.\" .tm Here is gX == \\n(gX +.ie \\n(gX==1 \{\ +. rm n1 +. if \\n(.g .br +. if !\\n(.g .bp +.\} +.el \{\ +. if \\n(.g .br +. if !\\n(.g 'bp +.\} +.nr % 1 +.nr gX 0 +.em lM +.. +.\" +.nr fW \w\fC0 +.de sW +.nr sW \w\fC\\$1 +.ie \\n(sW>=\\n(fW \{\ +. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1 +. el .nr sW \\n(sW/\\n(fW +.\} +.el \{\ +. ie \\n(sW>0 .nr sW 1 +. el .nr sW 0 +.\} +.. +.\" +.de aW +.nr sW \w\fC\\*(A\\$1 +.ie \\n(sW>=\\n(fW \{\ +. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1 +. el .nr sW \\n(sW/\\n(fW +.\} +.el \{\ +. ie \\n(sW>0 .nr sW 1 +. el .nr sW 0 +.\} +.. +.\" NS Ql macro - Quoted literal define +.de Ql +.if \\n(aC==0 \{\ +. ds mN Ql +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. nr fV \\n(.$ +. fV +.\} +.nr aP \\n(aP+1 +.aW \\n(aP +.nr aP \\n(aP-1 +.if \\n(sW>2 .Li +.if \\n(sW<=2 \{\ +.\" Db on +. if (\\n(aP>0) \{\ +. ds A\\n(aP Li +. nr aP \\n(aP -1 +. \} +. if (\\n(aP==0) \{\ +. rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 +. rm S1 S2 S3 S4 S5 S6 S7 S8 S9 +. rn A8 A9 +. rn A7 A8 +. rn A6 A7 +. rn A5 A6 +. rn A4 A5 +. rn A3 A4 +. rn A2 A3 +. rn A1 A2 +. ds A1 Li +. nr fV \\n(aC+1 +. nr aC 0 +. fV +. \} +. ds qL \&\\*(sL +. ds qR \&\\*(sR +. En +.\" Db off +.\} +.. +.\" NS Sh macro - Section Headers +.\" NS nS register - Section Header SYNOPSIS flag +.\" NS nF register - Section Header FILES flag +.\" NS nA register - Section Header SEE ALSO flag +.\" NS nT register - Section Header STANDARDS flag +.de Sh +.nr nS 0 +.nr sE 0 +.nr iS 0 +'ad +.ie "\\$1"NAME" \{\ +. hK +' in 0 +.\} +.el \{\ +. nr nS 0 +. nr nA 0 +. nr nF 0 +. nr nT 0 +. nr nY 0 +. nr oT 0 +. if "\\$1"SYNOPSIS" \{\ +. na +. nr nS 1 +. \} +. if "\\$1"DESCRIPTION" \{\ +. nr fY 0 +. nr fZ 0 +. nr fB 0 +. nr Fb 0 +. ds Fb +. \} +. if "\\$1"SEE" \{\ +. nr nA 1 +. na +. \} +. if "\\$1"FILES" .nr nF 1 +. if "\\$1"STANDARDS" .nr nT 1 +. if "\\$1"AUTHORS" .nr nY 1 +. if "\\$1"SEE" .nr sE 1 +. in 0 +. nr aN 0 +.\} +.pL +'sp +.ns +.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i +.if !\\n(cR .ne 3 +'fi +\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9 +\&\fP\s0\& +.in \\n(.iu+\\n(Tiu +.ns +.. diff --git a/share/tmac/mdoc/doc-nroff b/share/tmac/mdoc/doc-nroff new file mode 100644 index 00000000000..2bb953137ea --- /dev/null +++ b/share/tmac/mdoc/doc-nroff @@ -0,0 +1,225 @@ +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 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) 6/8/93 +.\" +.\" tmac.mdoc-nroff +.\" %beginstrip% +.\" +.ds aD \fI +.ds aR \fI +.ds cM \fB +.ds dF \fR +.ds eM \fI +.ds eR \fR +.ds eV \fR +.ds fA \fI +.ds fD \fB +.ds fL \fB +.ds fN \fB +.ds fP \fP +.ds fS +.ds fT \fI +.ds Hs \fR +.ds iC \fB +.ds lI \fR +.ds lP \fR\|(\fP +.ds rP \fR\|)\fP +.ds lp \fR\|(\fP +.ds rp \fR\|)\fP +.ds lB \fR\|[\|\fP +.ds rB \fR\|]\fP +.ds mL \fB +.ds nM \fB +.ds nO \fR +.ds pA \fI +.ds Pu {\ .\ ,\ ;\ :\ (\ )\ [\ ]} +.ds rA \fR +.ds rT \fI +.ds sH \fB +.ds sP +.ds sY \fB +.ds sX \fI +.ds tF \fR +.ds tN +.ds vA \fI +.ds Vs \fR +.ds vT \fB +.ds xR \fR +.\" MISCELLANEOUS +.nr sI .5i +.nr Ti .5i +.nr cR 1 +.nr Pp 1v +.ds lS \0\0 +.nr lS \w'\0\0'u +.nr dI 6n +.\" +.de pL +.ie \\n(cR .nr Hm 0 +.el .nr Hm .5i +.nr Fm .5i +.nr ll 78n +.ll 78n +.nr lt 78n +.lt 78n +.nr po 0i +.po 0i +.nr dV 1v +.ad l +.na +.. +.ds <= \&<\&= +.ds >= \&>\&= +.ds Rq '' +.ds Lq `` +.ds ua ^ +.ds aa \' +.ds ga \` +.ds sL ` +.ds sR ' +.ds q \&" +.\" Math stuff +.ds Pi pi +.ds Ne != +.ds Le <= +.ds Ge >= +.ds Lt < +.ds Gt > +.ds Pm +- +.ds If infinity +.ds Na \fINaN\fP +.ds Ba \fR\&|\fP + +.\" +.de hK +.nr % 1 +.ds hT \\*(dT +.if !"\\*(cH"Null" \{\ +. ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|) +. el .as hT \\|(\\|\\*(cH\\|) +.\} +.if "\\*(cH"Null" .if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|) +.ie \\n(cR \{\ +. hM +. wh -1v fM +.\} +.el \{\ +. wh 0 hM +. wh -1.167i fM +.\} +.if \\n(nl==0:\\n(nl==-1 'bp +.em lM +.. +.nr fW \w'0' +.de sW +.nr sW \w\\$1 +.ie \\n(sW>=\\n(fW \{\ +. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1 +. el .nr sW \\n(sW/\\n(fW +.\} +.el .nr sW 0 +.. +.de aW +.nr sW \w\\*(A\\$1 +.ie \\n(sW>=\\n(fW \{\ +. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1 +. el .nr sW \\n(sW/\\n(fW +.\} +.el .nr sW 0 +.. +.\" NS Ql macro - Quoted literal define +.de Ql +.if \\n(aC==0 \{\ +. ds mN Ql +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +.\} +.ds qL \&\\*(sL +.ds qR \&\\*(sR +.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.\" NS Sh macro - Section Headers +.\" NS nS register - Section Header SYNOPSIS flag +.\" NS nF register - Section Header FILES flag +.\" NS nA register - Section Header SEE ALSO flag +.\" NS nT register - Section Header STANDARDS flag +.de Sh +.nr nS 0 +.nr sE 0 +.nr iS 0 +.ie "\\$1"NAME" \{\ +. hK +' in 0 +.\} +.el \{\ +. nr nS 0 +. nr nA 0 +. nr nF 0 +. nr nT 0 +. nr nY 0 +. nr aN 0 +. nr oT 0 +. if "\\$1"SEE" .nr nA 1 +. if "\\$1"FILES" .nr nF 1 +. if "\\$1"STANDARDS" .nr nT 1 +. if "\\$1"SYNOPSIS" .nr nS 1 +. if "\\$1"DESCRIPTION" \{\ +. rr fB +. rr Fb +. ds Fb +. nr fY 0 +. nr fZ 0 +. \} +. if "\\$1"AUTHORS" .nr nY 1 +. in 0 +.\} +.pL +'sp +.ns +.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i +.if !\\n(cR .ne 3 +'fi +\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9 +\&\fP\s0\& +.in \\n(.iu+\\n(Tiu +.if "\\$1"SEE" .nr sE 1 +.ns +.. diff --git a/share/tmac/mdoc/doc-syms b/share/tmac/mdoc/doc-syms new file mode 100644 index 00000000000..edc886f828a --- /dev/null +++ b/share/tmac/mdoc/doc-syms @@ -0,0 +1,238 @@ +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 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) 6/8/93 +.\" +.\" %beginstrip% +.\" NS Ux macro - UNIX +.de Ux +.nr cF \\n(.f +.nr cZ \\n(.s +.ds aa \&\f\\n(cF\s\\n(cZ +.as b1 \&\\*(tNUNIX\\*(aa +.rm aa +.if \\n(aC==0 \{\ +. if \\n(.$>0 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\} +.ie \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==1 \{\ +. \\*(A\\n(aP +. \} +. el .nR +.\} +.el .aZ +.. +.\" NS Bx macro -BSD (fix smaller nroff version) +.de Bx +.nr cF \\n(.f +.nr cZ \\n(.s +.ds aa \&\f\\n(cF\s\\n(cZ +.if \\n(aC==0 \{\ +.\" . ie \\n(.$==0 \&\\*(tNBSD\\*(aa \\*(tNUNIX\\*(aa +. ie \\n(.$==0 \&\\*(tNBSD\\*(aa +. el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\} +.if "\\$1"-alpha" \{\ +\¤tly in alpha test. +. aY +.\} +.if "\\$1"-beta" \{\ +\¤tly in beta test. +. aY +.\} +.if "\\$1"-devel" \{\ +\¤tly under development. +. aY +.\} +.if \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. ie \\n(C\\n(aP==2 \{\ +. as b1 \&\\*(A\\n(aP\&\\*(tNBSD\\*(aa +. ie \\n(aC>\\n(aP \{\ +. nr jj \\n(aP+1 +. ie \\n(C\\n(jj==2 \{\ +. if "\\*(A\\n(jj"Reno" \{\ +. nr aP \\n(aP+1 +. as b1 \&\-\\*(A\\n(jj +. \} +. if "\\*(A\\n(jj"reno" \{\ +. nr aP \\n(aP+1 +. as b1 \&\-Reno +. \} +. if "\\*(A\\n(jj"Tahoe" \{\ +. nr aP \\n(aP+1 +. as b1 \&\-\\*(A\\n(jj +. \} +. if "\\*(A\\n(jj"tahoe" \{\ +. nr aP \\n(aP+1 +. as b1 \&\-Tahoe +. \} +. ie \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nR +. \} +. el .aZ +. \} +. el \{\ +. nr aP \\n(aP+1 +. nR +. \} +. rr jj +. \} +. el .aZ +. \} +. el \{\ +. as b1 \&\\*(tNBSD\\*(aa +. nR +. \} +.\} +.. +.\" Ns Ud macro - prints "currently under development" (HISTORY section) +.de Ud +\¤tly under development. +.. +.\" Ns At macro - AT&T UNIX (this macro does not handle punctuation) +.de At +.nr cF \\n(.f +.nr cZ \\n(.s +.ds aa \&\f\\n(cF\s\\n(cZ +.if \\n(.$==2 \{\ +. if "\\$1"32v" \&Version 32V \\*(tNAT&T UNIX\\*(aa\\$2 +. if "\\$1"v6" \&Version 6 \\*(tNAT&T UNIX\\*(aa\\$2 +. if "\\$1"v7" \&Version 7 \\*(tNAT&T UNIX\\*(aa\\$2 +. if "\\$1"V" \&\\*(tNAT&T\\*(aa System V \\*(tNUNIX\\*(aa\\$2 +. if "\\$1"V.1" \&\\*(tNAT&T\\*(aa System V.1 \\*(tNUNIX\\*(aa\\$2 +. if "\\$1"V.4" \&\\*(tNAT&T\\*(aa System V.4 \\*(tNUNIX\\*(aa\\$2 +.\} +.if \\n(.$==1 \{\ +. if "\\$1"32v" \&Version 32V \\*(tNAT&T UNIX\\*(aa +. if "\\$1"v6" \&Version 6 \\*(tNAT&T UNIX\\*(aa +. if "\\$1"v7" \&Version 7 \\*(tNAT&T UNIX\\*(aa +. if "\\$1"V" \&\\*(tNAT&T\\*(aa System V \\*(tNUNIX\\*(aa +. if "\\$1"V.1" \&\\*(tNAT&T\\*(aa System V.1 \\*(tNUNIX\\*(aa +. if "\\$1"V.4" \&\\*(tNAT&T\\*(aa System V.4 \\*(tNUNIX\\*(aa +.\} +.if \\n(.$==0 \{\ +\&\\*(tNAT&T UNIX\\*(aa +.\} +.. +.\" The Bt macro should go away now +.\" Ns Bt macro - prints "is currently in beta test." (HISTORY section) +.de Bt +\&is currently in beta test. +.. +.\" NS St macro - standards (posix, ansi - formal standard names) +.ds Px \\*(tNPOSIX +.ds Ai \\*(tNANSI +.de St +.if \\n(aC==0 \{\ +. ie \\n(.$==0 \{\ +.tm Usage: .St [-p1003.1-88 | -p1003.2 | -ansiC-89 | -iso ] \\*(Pu ... (#\\n(.c) +. \} +. el \{\ +. ds mN St +. nr aP 0 +. ds A1 \\$1 +. ds A2 \\$2 +. ds A3 \\$3 +. ds A4 \\$4 +. ds A5 \\$5 +. ds A6 \\$6 +. ds A7 \\$7 +. ds A8 \\$8 +. ds A9 \\$9 +. nr fV \\n(.$ +. fV +. \} +.\} +.if \\n(aC>\\n(aP \{\ +. nr cF \\n(.f +. nr cZ \\n(.s +. ds aa \&\f\\n(cF\s\\n(cZ +. nr aP \\n(aP+1 +. if "\\*(A\\n(aP"-p1003.1-88" \{\ +. ie \\n(sT==1 \{\ +. ds b1 \&\\*(tNIEEE Std\\*(aa1003.1-1988\\*(sV +. as b1 (``\\*(tN\\*(Px\\*(aa'') +. \} +. el \{\ +. ds b1 \&\\*(tNIEEE Std\\*(aa1003.1-1988\\*(sV +. as b1 (``\\*(tN\\*(Px\\*(aa'') +. \} +. \} +. if "\\*(A\\n(aP"-p1003.2" \{\ +. ie \\n(sT==1 \{\ +. ds b1 \&\\*(tNIEEE Std\\*(aa1003.2 +. as b1 (``\\*(tN\\*(Px\\*(aa'') +. \} +. el \{\ +. ds b1 \&\\*(tNIEEE Std\\*(aa1003.2\\*(sV +. as b1 (``\\*(tN\\*(Px\\*(aa'') +. \} +. \} +. if "\\*(A\\n(aP"-ansiC" \{\ +. ie \\n(sT==1 \{\ +. ds b1 \&\\*(tNANSI C \\*(aaX3.159-1989\\*(sV +. as b1 (``\\*(tNANSI C\\*(aa'') +. \} +. el \{\ +. ds b1 \&\\*(tNANSI C \\*(aaX3.159-1989\\*(sV +. as b1 (``\\*(tNANSI C \\*(aa'') +. \} +. \} +. if "\\*(A\\n(aP"-ansiC-89" \{\ +. ie \\n(sT==1 \{\ +. ds b1 \&\\*(tNANSI C \\*(aaX3.159-1989\\*(sV +. as b1 (``\\*(tNANSI C \\*(aa'') +. \} +. el \{\ +. ds b1 \&\\*(tNANSI C \\*(aaX3.159-1989\\*(sV +. as b1 (``\\*(tNANSI C \\*(aa'') +. \} +. \} +. if "\\*(A\\n(aP"-iso8802-3" \{\ +. ie \\n(sT==1 \{\ +. ds b1 \&\\*(tNISO \\*(aa8802-3: 1989\\*(sV +.\" . as b1 (``\\*(tNANSI C\\*(aa'') +. \} +. el \{\ +. ds b1 \&\\*(tNISO \\*(aa8802-3: 1989\\*(sV +.\" . as b1 (``\\*(tNANSI C\\*(aa'') +. \} +. \} +. ie \\n(aC>\\n(aP \{\ +. nr aP \\n(aP+1 +. nR +. \} +. el .aZ +.\} +.. |