Fix up mix of man(7)/mdoc(7).
[netbsd-mini2440.git] / gnu / dist / groff / tmac / doc-common
blob8f3fffb244fdad944c03f64d2d65d065b53dc820
1 .\" Copyright (c) 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. [Deleted.  See
13 .\"     ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
14 .\" 4. Neither the name of the University nor the names of its contributors
15 .\"    may be used to endorse or promote products derived from this software
16 .\"    without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" SUCH DAMAGE.
29 .\"
30 .\"     @(#)doc-common  8.1 (Berkeley) 06/08/93
31 .\"
32 .\"     %beginstrip%
35 .\" Macro Identifiers.  For each user macro a corresponding register with
36 .\" the same name must exist.  Its value must not be zero.
38 .nr %A 1
39 .nr %B 1
40 .nr %D 1
41 .nr %I 1
42 .nr %J 1
43 .nr %N 1
44 .nr %O 1
45 .nr %P 1
46 .nr %Q 1
47 .nr %R 1
48 .nr %T 1
49 .nr %U 1
50 .nr %V 1
51 .nr Ac 3
52 .nr Ad 12n
53 .nr An 12n
54 .nr Ao 12n
55 .nr Ap 2
56 .nr Aq 12n
57 .nr Ar 12n
58 .nr At 1
59 .nr Bc 3
60 .nr Bf 8n\" ?
61 .nr Bk 8n\" ?
62 .nr Bl 1
63 .nr Bo 12n
64 .nr Bq 12n
65 .nr Brc 3
66 .nr Bro 12n
67 .nr Brq 12n
68 .nr Bsx 1
69 .nr Bt 8n\" ?
70 .nr Bx 1
71 .nr Cd 12n
72 .nr Cm 10n
73 .nr D1 8n\" ?
74 .nr Dc 3
75 .nr Dl 8n\" ?
76 .nr Dt 8n\" ?
77 .nr Do 12n
78 .nr Dq 12n
79 .nr Ds 6n\" many manpages still use this as a -width value
80 .nr Dv 12n
81 .nr Ec 3
82 .nr Ef 8n\" ?
83 .nr Ek 8n\" ?
84 .nr El 1
85 .nr Em 10n
86 .nr En 12n
87 .nr Eo 12n
88 .nr Eq 12n
89 .nr Er 17n
90 .nr Es 12n
91 .nr Ev 15n
92 .nr Ex 1
93 .nr Fa 12n
94 .nr Fc 3
95 .nr Fd 12n\" ?
96 .nr Fl 10n
97 .nr Fn 16n
98 .nr Fo 16n
99 .nr Fr 12n\" ?
100 .nr Ft 8n\" ?
101 .nr Fx 1
102 .nr Ic 10n
103 .nr In 12n
104 .nr It 8n\" ?
105 .nr Lb 11n
106 .nr Li 16n
107 .nr Lk 6n\" ?
108 .nr Lp 8n\" ?
109 .nr Me 6n
110 .nr Ms 6n
111 .nr Mt 6n\" ?
112 .nr Nd 8n\" ?
113 .nr Nm 10n
114 .nr No 12n
115 .nr Ns 2
116 .nr Nx 1
117 .nr Oc 3
118 .nr Oo 10n
119 .nr Op 14n
120 .nr Os 6n\" ?
121 .nr Ox 1
122 .nr Pa 32n
123 .nr Pc 3
124 .nr Pf 12n
125 .nr Po 12n
126 .nr Pp 8n\" ?
127 .nr Pq 12n
128 .nr Qc 3
129 .nr Ql 16n
130 .nr Qo 12n
131 .nr Qq 12n
132 .nr Rv 1
133 .nr Sc 3
134 .nr Sh 8n
135 .nr Sm 8n\" ?
136 .nr So 12n
137 .nr Sq 12n
138 .nr Ss 8n
139 .nr St 8n\" ?
140 .nr Sx 16n
141 .nr Sy 6n
142 .nr Ta 2
143 .nr Tn 10n
144 .nr Ud 8n\" ?
145 .nr Ux 1
146 .nr Va 12n
147 .nr Vt 8n\" ?
148 .nr Xc 3
149 .nr Xo 1
150 .nr Xr 10n
153 .\" macros which must be processed after the closing delimiter of `Op'
154 .\" and friends
155 .ds doc-after-Ao
156 .ds doc-after-Bo
157 .ds doc-after-Bro
158 .ds doc-after-Do
159 .ds doc-after-Eo
160 .ds doc-after-Fo
161 .ds doc-after-Ns
162 .ds doc-after-Oo
163 .ds doc-after-Po
164 .ds doc-after-Qo
165 .ds doc-after-So
166 .ds doc-after-Xo
169 .nr doc-display-indent 6n
172 .\" space strings
174 .ds doc-soft-space " \"
175 .ds doc-hard-space \~
176 .ds doc-tab \t
182 .\" punctuation values (suffix=3, prefix=4)
184 .nr doc-punct. 3
185 .nr doc-punct, 3
186 .nr doc-punct: 3
187 .nr doc-punct; 3
188 .nr doc-punct( 4
189 .nr doc-punct) 3
190 .nr doc-punct[ 4
191 .nr doc-punct] 3
192 .nr doc-punct? 3
193 .nr doc-punct! 3
196 .\" header assembly macros
198 .\" NS doc-document-title global string
199 .\" NS   the title of the manual page
201 .ds doc-document-title UNTITLED
204 .\" NS doc-volume global string
205 .\" NS   the volume where the manual page belongs to
207 .ds doc-volume LOCAL
210 .\" NS doc-section global string
211 .\" NS   the manual section
213 .ds doc-section Null
216 .\" NS Dt user macro (not parsed, not callable)
217 .\" NS   document title
218 .\" NS
219 .\" NS modifies:
220 .\" NS   doc-document-title
221 .\" NS   doc-section
222 .\" NS   doc-volume
223 .\" NS
224 .\" NS local variables:
225 .\" NS   doc-volume-as-XXX
226 .\" NS   doc-volume-ds-XXX
227 .\" NS
228 .\" NS width register `Dt' set above
230 .\" an alternative, more detailed scheme for naming the manual sections
232 .ds doc-volume-operating-system BSD
233 .nr doc-volume-operating-system-ateol 0
234 .ds doc-volume-ds-1 General Commands Manual
235 .ds doc-volume-ds-2 System Calls Manual
236 .ds doc-volume-ds-3 Library Functions Manual
237 .ds doc-volume-ds-4 Kernel Interfaces Manual
238 .ds doc-volume-ds-5 File Formats Manual
239 .ds doc-volume-ds-6 Games Manual
240 .ds doc-volume-ds-7 Miscellaneous Information Manual
241 .ds doc-volume-ds-8 System Manager's Manual
242 .ds doc-volume-ds-9 Kernel Developer's Manual
244 .ds doc-volume-ds-USD   User's Supplementary Documents
245 .ds doc-volume-ds-PS1   Programmer's Supplementary Documents
246 .ds doc-volume-ds-AMD   Ancestral Manual Documents
247 .ds doc-volume-ds-SMM   System Manager's Manual
248 .ds doc-volume-ds-URM   User's Reference Manual
249 .ds doc-volume-ds-PRM   Programmer's Manual
250 .ds doc-volume-ds-KM    Kernel Manual
251 .ds doc-volume-ds-IND   Manual Master Index
252 .ds doc-volume-ds-LOCAL Local Manual
253 .ds doc-volume-ds-CON   Contributed Software Manual
255 .als doc-volume-ds-MMI doc-volume-ds-IND
256 .als doc-volume-ds-LOC doc-volume-ds-LOCAL
258 .ds doc-volume-as-alpha        alpha
259 .als doc-volume-as-Alpha doc-volume-as-alpha
260 .ds doc-volume-as-acorn26      acorn26
261 .ds doc-volume-as-acorn32      acorn32
262 .ds doc-volume-as-algor        algor
263 .ds doc-volume-as-amd64        amd64
264 .ds doc-volume-as-amiga        amiga
265 .ds doc-volume-as-arc          arc
266 .ds doc-volume-as-arm26        arm26
267 .ds doc-volume-as-arm32        arm32
268 .ds doc-volume-as-atari        atari
269 .ds doc-volume-as-bebox        bebox
270 .ds doc-volume-as-cats         cats
271 .ds doc-volume-as-cesfic       cesfic
272 .ds doc-volume-as-cobalt       cobalt
273 .ds doc-volume-as-dreamcast    dreamcast
274 .ds doc-volume-as-evbarm       evbarm
275 .ds doc-volume-as-evbmips      evbmips
276 .ds doc-volume-as-evbppc       evbppc
277 .ds doc-volume-as-evbsh3       evbsh3
278 .ds doc-volume-as-hp300        hp300
279 .ds doc-volume-as-hp700        hp700
280 .ds doc-volume-as-hpcarm       hpcarm
281 .ds doc-volume-as-hpcmips      hpcmips
282 .ds doc-volume-as-hpcsh        hpcsh
283 .ds doc-volume-as-i386         i386
284 .ds doc-volume-as-luna68k      luna68k
285 .ds doc-volume-as-m68k         m68k
286 .ds doc-volume-as-mac68k       mac68k
287 .ds doc-volume-as-macppc       macppc
288 .ds doc-volume-as-mips         mips
289 .ds doc-volume-as-mipsco       mipsco
290 .ds doc-volume-as-mmeye        mmeye
291 .ds doc-volume-as-mvme68k      mvme68k
292 .ds doc-volume-as-mvmeppc      mvmeppc
293 .ds doc-volume-as-netwinder    netwinder
294 .ds doc-volume-as-news68k      news68k
295 .ds doc-volume-as-newsmips     newsmips
296 .ds doc-volume-as-next68k      next68k
297 .ds doc-volume-as-ofppc        ofppc
298 .ds doc-volume-as-pc532        pc532
299 .ds doc-volume-as-playstation2 playstation2
300 .ds doc-volume-as-pmax         pmax
301 .ds doc-volume-as-pmppc        pmppc
302 .ds doc-volume-as-powerpc      powerpc
303 .ds doc-volume-as-prep         prep
304 .ds doc-volume-as-sandpoint    sandpoint
305 .ds doc-volume-as-sbmips       sbmips
306 .ds doc-volume-as-sgimips      sgimips
307 .ds doc-volume-as-sh3          sh3
308 .ds doc-volume-as-shark        shark
309 .ds doc-volume-as-sparc        sparc
310 .ds doc-volume-as-sparc64      sparc64
311 .ds doc-volume-as-sun2         sun2
312 .ds doc-volume-as-sun3         sun3
313 .ds doc-volume-as-tahoe        tahoe
314 .ds doc-volume-as-vax          vax
315 .ds doc-volume-as-x68k         x68k
316 .ds doc-volume-as-x86_64       x86_64
318 .de Dt
319 .  \" reset default arguments
320 .  ds doc-document-title UNTITLED
321 .  ds doc-volume LOCAL
322 .  ds doc-section Null
324 .  if !"\$1"" \
325 .    ds doc-document-title "\$1
327 .  if !"\$2"" \{\
328 .    ds doc-section \$2
329 .    ie \B\a\$2\a \{\
330 .      if ((\$2 >= 1) & (\$2 <= 9)) \{\
331 .        ie \n[doc-volume-operating-system-ateol] \{\
332 .          ds doc-volume "\*[doc-volume-ds-\$2] \*[doc-volume-operating-system]
333 .          if \A\a\$3\a \{\
334 .            if d doc-volume-as-\$3 \
335 .              as doc-volume "/\*[doc-volume-as-\$3]
336 .        \}\}
337 .        el \{\
338 .          ds doc-volume "\*[doc-volume-operating-system]
339 .          if \A\a\$3\a \{\
340 .            if d doc-volume-as-\$3 \
341 .              as doc-volume "/\*[doc-volume-as-\$3]
342 .          \}
343 .          as doc-volume " \*[doc-volume-ds-\$2]
344 .    \}\}\}
345 .    el \{\
346 .      ie "\$2"unass" \
347 .        ds doc-volume DRAFT
348 .      el \{ .ie "\$2"draft" \
349 .        ds doc-volume DRAFT
350 .      el .if "\$2"paper" \
351 .        ds doc-volume UNTITLED
352 .      \}\}
353 .      if \A\a\$3\a \{\
354 .        if d doc-volume-ds-\$3 \
355 .          ds doc-volume "\*[doc-volume-ds-\$3]
356 .  \}\}\}
358 .  if !"\$3"" \
359 .    if "\*[doc-volume]"LOCAL" \
360 .      ds doc-volume \$3
364 .\" NS doc-default-operating-system global string
365 .\" NS   the exact (default) version of the operating system
366 .\" NS
367 .\" NS override this in `mdoc.local', if necessary
369 .ds doc-default-operating-system BSD
372 .\" NS doc-operating-system global string
373 .\" NS   the exact version of the operating system
375 .ds doc-operating-system
378 .\" NS Os user macro (not parsed, not callable)
379 .\" NS   operating system
380 .\" NS
381 .\" NS modifies:
382 .\" NS   doc-operating-system
383 .\" NS
384 .\" NS local variables:
385 .\" NS   doc-operating-system-XXX-XXX
386 .\" NS
387 .\" NS width register `Os' set above
389 .ds doc-operating-system-ATT-7   7th\~Edition
390 .als doc-operating-system-ATT-7th doc-operating-system-ATT-7
391 .ds doc-operating-system-ATT-3   System\~III
392 .als doc-operating-system-ATT-III doc-operating-system-ATT-3
393 .ds doc-operating-system-ATT-V   System\~V
394 .ds doc-operating-system-ATT-V.2 System\~V Release\~2
395 .ds doc-operating-system-ATT-V.3 System\~V Release\~3
396 .ds doc-operating-system-ATT-V.4 System\~V Release\~4
398 .ds doc-operating-system-BSD-3    3rd\~Berkeley Distribution
399 .ds doc-operating-system-BSD-4    4th\~Berkeley Distribution
400 .ds doc-operating-system-BSD-4.1  4.1\~Berkeley Distribution
401 .ds doc-operating-system-BSD-4.2  4.2\~Berkeley Distribution
402 .ds doc-operating-system-BSD-4.3  4.3\~Berkeley Distribution
403 .ds doc-operating-system-BSD-4.3T 4.3-Tahoe Berkeley Distribution
404 .ds doc-operating-system-BSD-4.3R 4.3-Reno Berkeley Distribution
405 .als doc-operating-system-BSD-4.3t doc-operating-system-BSD-4.3T
406 .als doc-operating-system-BSD-4.3r doc-operating-system-BSD-4.3R
407 .ds doc-operating-system-BSD-4.4  4.4BSD
409 .ds doc-operating-system-NetBSD-0.8   0.8
410 .ds doc-operating-system-NetBSD-0.8a  0.8A
411 .ds doc-operating-system-NetBSD-0.9   0.9
412 .ds doc-operating-system-NetBSD-0.9a  0.9A
413 .ds doc-operating-system-NetBSD-1.0   1.0
414 .ds doc-operating-system-NetBSD-1.0a  1.0A
415 .ds doc-operating-system-NetBSD-1.1   1.1
416 .ds doc-operating-system-NetBSD-1.2   1.2
417 .ds doc-operating-system-NetBSD-1.2a  1.2A
418 .ds doc-operating-system-NetBSD-1.2b  1.2B
419 .ds doc-operating-system-NetBSD-1.2c  1.2C
420 .ds doc-operating-system-NetBSD-1.2d  1.2D
421 .ds doc-operating-system-NetBSD-1.2e  1.2E
422 .ds doc-operating-system-NetBSD-1.3   1.3
423 .ds doc-operating-system-NetBSD-1.3a  1.3A
424 .ds doc-operating-system-NetBSD-1.4   1.4
425 .ds doc-operating-system-NetBSD-1.4.1 1.4.1
426 .ds doc-operating-system-NetBSD-1.4.2 1.4.2
427 .ds doc-operating-system-NetBSD-1.4.3 1.4.3
428 .ds doc-operating-system-NetBSD-1.5   1.5
429 .ds doc-operating-system-NetBSD-1.5.1 1.5.1
430 .ds doc-operating-system-NetBSD-1.5.2 1.5.2
431 .ds doc-operating-system-NetBSD-1.5.3 1.5.3
432 .ds doc-operating-system-NetBSD-1.6   1.6
433 .ds doc-operating-system-NetBSD-1.6.1 1.6.1
434 .ds doc-operating-system-NetBSD-1.6.2 1.6.2
435 .ds doc-operating-system-NetBSD-2.0   2.0
436 .ds doc-operating-system-NetBSD-2.0.1 2.0.1
437 .ds doc-operating-system-NetBSD-2.0.2 2.0.2
438 .ds doc-operating-system-NetBSD-2.1   2.1
440 .ds doc-operating-system-FreeBSD-1.0     1.0
441 .ds doc-operating-system-FreeBSD-1.1     1.1
442 .ds doc-operating-system-FreeBSD-1.1.5   1.1.5
443 .ds doc-operating-system-FreeBSD-1.1.5.1 1.1.5.1
444 .ds doc-operating-system-FreeBSD-2.0     2.0
445 .ds doc-operating-system-FreeBSD-2.0.5   2.0.5
446 .ds doc-operating-system-FreeBSD-2.1     2.1
447 .ds doc-operating-system-FreeBSD-2.1.5   2.1.5
448 .ds doc-operating-system-FreeBSD-2.1.6   2.1.6
449 .ds doc-operating-system-FreeBSD-2.1.7   2.1.7
450 .ds doc-operating-system-FreeBSD-2.2     2.2
451 .ds doc-operating-system-FreeBSD-2.2.1   2.2.1
452 .ds doc-operating-system-FreeBSD-2.2.2   2.2.2
453 .ds doc-operating-system-FreeBSD-2.2.5   2.2.5
454 .ds doc-operating-system-FreeBSD-2.2.6   2.2.6
455 .ds doc-operating-system-FreeBSD-2.2.7   2.2.7
456 .ds doc-operating-system-FreeBSD-2.2.8   2.2.8
457 .ds doc-operating-system-FreeBSD-3.0     3.0
458 .ds doc-operating-system-FreeBSD-3.1     3.1
459 .ds doc-operating-system-FreeBSD-3.2     3.2
460 .ds doc-operating-system-FreeBSD-3.3     3.3
461 .ds doc-operating-system-FreeBSD-3.4     3.4
462 .ds doc-operating-system-FreeBSD-3.5     3.5
463 .ds doc-operating-system-FreeBSD-4.0     4.0
464 .ds doc-operating-system-FreeBSD-4.1     4.1
465 .ds doc-operating-system-FreeBSD-4.1.1   4.1.1
466 .ds doc-operating-system-FreeBSD-4.2     4.2
467 .ds doc-operating-system-FreeBSD-4.3     4.3
468 .ds doc-operating-system-FreeBSD-4.4     4.4
469 .ds doc-operating-system-FreeBSD-4.5     4.5
470 .ds doc-operating-system-FreeBSD-4.6     4.6
471 .ds doc-operating-system-FreeBSD-4.6.2   4.6.2
472 .ds doc-operating-system-FreeBSD-4.7     4.7
473 .ds doc-operating-system-FreeBSD-4.8     4.8
474 .ds doc-operating-system-FreeBSD-4.9     4.9
475 .ds doc-operating-system-FreeBSD-4.10    4.10
476 .ds doc-operating-system-FreeBSD-5.0     5.0
477 .ds doc-operating-system-FreeBSD-5.1     5.1
478 .ds doc-operating-system-FreeBSD-5.2     5.2
479 .ds doc-operating-system-FreeBSD-5.2.1   5.2.1
480 .ds doc-operating-system-FreeBSD-5.3     5.3
482 .de Os
483 .  ie "\$1"" \
484 .    ds doc-operating-system "\*[doc-default-operating-system]
485 .  el \{ .ie "\$1"ATT" \{\
486 .    ds doc-operating-system AT&T
487 .    if \A\a\$2\a \{\
488 .      ie d doc-operating-system-ATT-\$2 \
489 .        as doc-operating-system " \*[doc-operating-system-ATT-\$2]
490 .      el \
491 .        as doc-operating-system " UNIX
492 .  \}\}
493 .  el \{ .ie "\$1"BSD" \{\
494 .    if \A\a\$2\a \{\
495 .      ie d doc-operating-system-BSD-\$2 \
496 .        ds doc-operating-system "\*[doc-operating-system-BSD-\$2]
497 .      el \
498 .        tm mdoc warning: .Os: Unknown BSD version `\$2' (#\n[.c])
499 .  \}\}
500 .  el \{ .ie "\$1"FreeBSD" \{\
501 .    ds doc-operating-system FreeBSD
502 .    if \A\a\$2\a \{\
503 .      ie d doc-operating-system-FreeBSD-\$2 \
504 .        as doc-operating-system \~\*[doc-operating-system-FreeBSD-\$2]
505 .      el \
506 .        tm mdoc warning: .Os: Unknown FreeBSD version `\$2' (#\n[.c])
507 .  \}\}
508 .  el \{ .ie "\$1"NetBSD" \{\
509 .    ds doc-operating-system NetBSD
510 .    if \A\a\$2\a \{\
511 .      ie d doc-operating-system-NetBSD-\$2 \
512 .        as doc-operating-system \~\*[doc-operating-system-NetBSD-\$2]
513 .      el \
514 .        tm mdoc warning: .Os: Unknown NetBSD version `\$2' (#\n[.c])
515 .  \}\}
516 .  el \{\
517 .    ds doc-operating-system \$1
518 .    if !"\$2"" \
519 .      as doc-operating-system " \$2
520 .  \}\}\}\}\}
524 .\" NS doc-date-string global string
525 .\" NS   the manual page date as set by `Dd'
527 .ds doc-date-string
530 .\" NS Dd user macro (not parsed, not callable)
531 .\" NS   set document date
532 .\" NS
533 .\" NS modifies:
534 .\" NS   doc-date-string
535 .\" NS
536 .\" NS local variables:
537 .\" NS   doc-date-XXX
538 .\" NS
539 .\" NS width register `Dd' set above
541 .ds doc-date-1  January
542 .ds doc-date-2  February
543 .ds doc-date-3  March
544 .ds doc-date-4  April
545 .ds doc-date-5  May
546 .ds doc-date-6  June
547 .ds doc-date-7  July
548 .ds doc-date-8  August
549 .ds doc-date-9  September
550 .ds doc-date-10 October
551 .ds doc-date-11 November
552 .ds doc-date-12 December
554 .de Dd
555 .  ie \n[.$] \{\
556 .    ie (\n[.$] == 3) \
557 .      ds doc-date-string \$1\~\$2 \$3
558 .    el \{\
559 .      ds doc-date-string "\*[doc-date-\n[mo]]
560 .      as doc-date-string \~\n[dy], \n[year]
561 .    \}
562 .  \}
563 .  el \
564 .    ds doc-date-string Epoch
568 .\" NS doc-hyphen-flags global register
569 .\" NS   the parameter for the `.hy' request
570 .\" NS
571 .\" NS override this in `mdoc.local', if necessary.
573 .nr doc-hyphen-flags 12
576 .\" NS doc-header macro
577 .\" NS   print page header
578 .\" NS
579 .\" NS local variables:
580 .\" NS   doc-reg-dh
581 .\" NS   doc-reg-dh1
583 .de doc-header
584 .  ev doc-env-dh
585 .  doc-setup-page-layout
586 .  if !\n[cR] \
587 .    sp \n[doc-header-space]u
588 .  nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\f[]'
589 .  nr doc-reg-dh1 \w'\*[doc-caption-font2]\*[doc-volume]\f[]'
590 .  if (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
591 .    while (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
592 .      substring doc-header-string 0 -2
593 .      nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\|.\|.\|.\f[]'
594 .    \}
595 .    as doc-header-string "\|.\|.\|.
596 .  \}
597 .  tl \a\*[doc-caption-font]\*[doc-header-string]\f[]\a\*[doc-caption-font2]\*[doc-volume]\f[]\a\*[doc-caption-font]\*[doc-header-string]\f[]\a
598 .  ie !\n[cR] \
599 .    sp \n[doc-header-space]u
600 .  el \
601 .    sp 1v
602 .  ev
603 .  ns
607 .\" NS doc-footer macro
608 .\" NS   print page footer
610 .de doc-footer
611 .  ie \n[cR] \
612 .    br
613 .  el \{\
614 .    ev doc-caption-enviroment
615 .    doc-setup-page-layout
616 .    sp \n[doc-footer-space]u
617 .    ie \n[D] \{\
618 .      ie o \
619 .        tl \a%\a\*[doc-caption-font2]\*[doc-date-string]\f[]\a\*[doc-caption-font]\*[doc-operating-system]\f[]\a
620 .      el \
621 .        tl \a\*[doc-caption-font]\*[doc-operating-system]\f[]\a\*[doc-caption-font2]\*[doc-date-string]\f[]\a%\a
622 .    \}
623 .    el \
624 .      tl \a\*[doc-caption-font]\*[doc-operating-system]\f[]\a\*[doc-caption-font2]\*[doc-date-string]\f[]\a%\a
625 .    bp
626 .    ev
627 .  \}
631 .\" NS doc-check-depth macro
632 .\" NS   check paired macros
634 .de doc-check-depth
635 .  if \n[doc-list-depth] \{\
636 .    tm mdoc warning: A .Bl directive has no matching .El (#\n[.c])
637 .    nr doc-list-depth 0
638 .  \}
639 .  if \n[doc-display-depth] \{\
640 .    tm mdoc warning: A .Bd directive has no matching .Ed (#\n[.c])
641 .    nr doc-display-depth 0
642 .  \}
643 .  if \n[doc-fontmode-depth] \{\
644 .    tm mdoc warning: A .Bf directive has no matching .Ef (#\n[.c])
645 .    nr doc-fontmode-depth 0
646 .  \}
650 .\" NS doc-end-macro macro
651 .\" NS   finish output
653 .de doc-end-macro
654 .  \" We may still have a partial line in the environment.  If this is the
655 .  \" case, and we happen to be on the last line of the page, the `.fl'
656 .  \" request will cause the page to be ejected and troff will immediately
657 .  \" exit.  If we are in nroff mode, this would be unfortunate, since we
658 .  \" would never get a chance to output the footer.  So we fudge the page
659 .  \" length to make sure that the last page is never ejected until we want
660 .  \" it to be.
662 .  if \n[cR] \
663 .    pl +3v
664 .  fl
666 .  doc-check-depth
668 .  if \n[cR] \{\
669 .    sp
670 .    tl \a\*[doc-caption-font]\*[doc-operating-system]\f[]\a\*[doc-caption-font2]\*[doc-date-string]\f[]\a\*[doc-caption-font]\*[doc-operating-system]\f[]\a
671 .    \" suppress empty lines after the footer
672 .    pl \n[nl]u
673 .  \}
677 .\" NS doc-paragraph macro
678 .\" NS   insert a paragraph
680 .de doc-paragraph
681 .  sp \n[doc-paragraph-space]u
682 .  if !\n[cR] \
683 .    ne 2
684 .  ns
688 .\" NS Pp user macro (not parsed, not callable)
689 .\" NS   new paragraph
690 .\" NS
691 .\" NS width register `Pp' set above
693 .als Pp doc-paragraph
696 .\" NS Lp user macro (not parsed, not callable)
697 .\" NS   same as .Pp
698 .\" NS
699 .\" NS width register `Lp' set above
701 .als Lp doc-paragraph
704 .de LP
705 .  tm Not a \-mdoc command: .LP (#\n[.c])
709 .de PP
710 .  tm Not a \-mdoc command: .PP (#\n[.c])
714 .de pp
715 .  tm Not a \-mdoc command: .pp (#\n[.c])
719 .de SH
720 .  tm Not a \-mdoc command: .SH (#\n[.c])
724 .\" NS Nd user macro (not parsed, not callable)
725 .\" NS   print name description
726 .\" NS
727 .\" NS width register `Nd' set above
729 .de Nd
730 .  nop \[em] \$*
734 .\" NS doc-in-synopsis-section global register (bool)
735 .\" NS   whether we are in the `synopsis' section
737 .nr doc-in-synopsis-section 0
740 .\" NS doc-in-library-section global register (bool)
741 .\" NS   whether we are in the `library' section
743 .nr doc-in-library-section 0
746 .\" NS doc-in-see-also-section global register (bool)
747 .\" NS   whether we are in the `see also' section
749 .nr doc-in-see-also-section 0
752 .\" NS doc-in-files-section global register (bool)
753 .\" NS   whether we are in the `files' section
755 .nr doc-in-files-section 0
758 .\" NS doc-in-authors-section global register (bool)
759 .\" NS   whether we are in the `authors' section
761 .nr doc-in-authors-section 0
764 .\" NS doc-first-parameter macro
765 .\" NS   return first parameter
766 .\" NS
767 .\" NS local variables:
768 .\" NS   doc-str-dfp
770 .de doc-first-parameter
771 .  ds doc-str-dfp "\$1
775 .\" NS Sh user macro (not callable)
776 .\" NS   section headers
777 .\" NS
778 .\" NS modifies:
779 .\" NS   doc-func-args-processed
780 .\" NS   doc-func-count
781 .\" NS   doc-in-authors-section
782 .\" NS   doc-in-files-section
783 .\" NS   doc-in-library-section
784 .\" NS   doc-in-see-also-section
785 .\" NS   doc-in-synopsis-section
786 .\" NS   doc-indent-synopsis
787 .\" NS   doc-indent-synopsis-active
788 .\" NS   doc-is-func
789 .\" NS   doc-num-func-args
790 .\" NS
791 .\" NS local variables:
792 .\" NS   doc-reg-Sh
793 .\" NS   doc-reg-Sh1
794 .\" NS   doc-section-XXX
795 .\" NS
796 .\" NS width register `Sh' set in doc-common
798 .ds doc-section-name        NAME
799 .ds doc-section-synopsis    SYNOPSIS
800 .ds doc-section-library     LIBRARY
801 .ds doc-section-description DESCRIPTION
802 .ds doc-section-see-also    SEE
803 .ds doc-section-files       FILES
804 .ds doc-section-authors     AUTHORS
806 .de Sh
807 .  ie \n[doc-arg-limit] \{\
808 .    \" we only allow `Sh' within `Sh'; it will change the font back to
809 .    \" `doc-Sh-font'
810 .    ie "\*[doc-macro-name]"Sh" \{\
811 .      nr doc-arg-ptr +1
812 .      ie (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \{\
813 .        nr doc-curr-font \n[.f]
814 .        nr doc-curr-size \n[.ps]
815 .        nop \*[doc-Sh-font]\c
816 .        doc-print-recursive
817 .      \}
818 .      el \{\
819 .        tm Usage: .Sh section_name ... (#\n[.c])
820 .        doc-reset-args
821 .    \}\}
822 .    el \{\
823 .      tm Usage: .Sh not callable by other macros (#\n[.c])
824 .      doc-reset-args
825 .  \}\}
826 .  el \{\
827 .    if !\n[.$] \{\
828 .      tm Usage: .Sh section_name ... (#\n[.c])
829 .      return
830 .    \}
832 .    ds doc-macro-name Sh
833 .    doc-parse-args \$@
835 .    if t \
836 .      ad
838 .    \" this resolves e.g. `.Sh "SEE ALSO"'
839 .    doc-first-parameter \$*
841 .    ie "\*[doc-str-dfp]"\*[doc-section-name]" \{\
842 .      doc-setup-header
843 .      in 0
844 .    \}
845 .    el \{\
846 .      nr doc-in-synopsis-section 0
847 .      nr doc-in-library-section 0
848 .      nr doc-in-see-also-section 0
849 .      nr doc-in-files-section 0
850 .      nr doc-in-authors-section 0
852 .      ie        "\*[doc-str-dfp]"\*[doc-section-synopsis]" \{\
853 .        if t \
854 .          na
855 .        nr doc-in-synopsis-section 1
856 .        nr doc-indent-synopsis 0
857 .        nr doc-indent-synopsis-active 0
858 .      \}
859 .      el \{ .ie "\*[doc-str-dfp]"\*[doc-section-library]" \{\
860 .        nr doc-in-library-section 1
861 .      \}
862 .      el \{ .ie "\*[doc-str-dfp]"\*[doc-section-description]" \{\
863 .        nr doc-is-func 0
864 .        nr doc-func-count 0
865 .        nr doc-func-args-processed 0
866 .        nr doc-num-func-args 0
867 .      \}
868 .      el \{ .ie "\*[doc-str-dfp]"\*[doc-section-see-also]" \{\
869 .        if t \
870 .          na
871 .        nr doc-in-see-also-section 1
872 .      \}
873 .      el \{ .ie "\*[doc-str-dfp]"\*[doc-section-files]" \
874 .        nr doc-in-files-section 1
875 .      el .if    "\*[doc-str-dfp]"\*[doc-section-authors]" \
876 .        nr doc-in-authors-section 1
877 .      \}\}\}\}
879 .      in 0
880 .      nr doc-have-author 0
881 .    \}
883 .    doc-setup-page-layout
884 .    sp
885 .    ns
886 .    ta T .5i
887 .    if !\n[cR] \
888 .      ne 3
889 .    fi
891 .    if t \{\
892 .      nr doc-reg-Sh \n[.ss]
893 .      nr doc-reg-Sh1 \n[.sss]
894 .      ss (\n[.ss] * 5 / 3) (\n[.sss] * 5 / 3)
895 .    \}
897 .    nr doc-arg-ptr +1
898 .    nr doc-curr-font \n[.f]
899 .    nr doc-curr-size \n[.ps]
900 .    nop \*[doc-Sh-font]\c
901 .    doc-print-recursive
903 .    if t \
904 .      ss \n[doc-reg-Sh] \n[doc-reg-Sh1]
906 .    in +\n[doc-subheader-indent]u
907 .    ns
909 .    doc-check-depth
910 .  \}
914 .\" NS Ss user macro (not callable)
915 .\" NS   subsection
916 .\" NS
917 .\" NS local variable:
918 .\" NS   doc-reg-Ss
919 .\" NS   doc-reg-Ss1
920 .\" NS
921 .\" NS width register `Ss' set above
923 .de Ss
924 .  ie \n[doc-arg-limit] \{\
925 .    \" we only allow `Ss' within `Ss'; it will change the font back to
926 .    \" `doc-Sh-font'
927 .    ie "\*[doc-macro-name]"Ss" \{\
928 .      nr doc-arg-ptr +1
929 .      ie (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \{\
930 .        nr doc-curr-font \n[.f]
931 .        nr doc-curr-size \n[.ps]
932 .        nop \*[doc-Sh-font]\c
933 .        doc-print-recursive
934 .      \}
935 .      el \{\
936 .        tm Usage: .Ss subsection_name ... (#\n[.c])
937 .        doc-reset-args
938 .    \}\}
939 .    el \{\
940 .      tm Usage: .Ss not callable by other macros (#\n[.c])
941 .      doc-reset-args
942 .  \}\}
943 .  el \{\
944 .    if !\n[.$] \{\
945 .      tm Usage: .Ss subsection_name ... (#\n[.c])
946 .      return
947 .    \}
949 .    ds doc-macro-name Ss
950 .    doc-parse-args \$@
952 .    sp
953 .    if !\n[cR] \
954 .      ne 3
955 .    ti -.25i
957 .    nr doc-reg-Ss \n[.ss]
958 .    nr doc-reg-Ss1 \n[.sss]
959 .    ss (\n[.ss] * 5 / 4) (\n[.sss] * 5 / 4)
961 .    nr doc-arg-ptr +1
962 .    nr doc-curr-font \n[.f]
963 .    nr doc-curr-size \n[.ps]
964 .    nop \*[doc-Sh-font]\c
965 .    doc-print-recursive
967 .    ss \n[doc-reg-Ss] \n[doc-reg-Ss1]
969 .    ta T .5i
970 .    if !\n[cR] \
971 .      ne 2
972 .    br
973 .    ns
975 .    doc-check-depth
976 .  \}
980 .\" NS Rd macro (not parsed, not callable)
981 .\" NS   print global register dump to stderr
982 .\" NS
983 .\" NS local variables:
984 .\" NS   doc-reg-Rd
986 .de Rd
987 .  tm MDOC GLOBAL REGISTER DUMP
988 .  tm doc-macro-name == `\*[doc-macro-name]'
989 .  tm doc-arg-limit == \n[doc-arg-limit]
990 .  tm doc-num-args == \n[doc-num-args]
991 .  tm doc-arg-ptr == \n[doc-arg-ptr]
993 .  nr doc-reg-Rd 1
994 .  while (\n[doc-reg-Rd] <= \n[doc-arg-limit]) \{\
995 .    tm doc-arg\n[doc-reg-Rd] == `\*[doc-arg\n[doc-reg-Rd]]'
996 .    tm doc-type\n[doc-reg-Rd] == \n[doc-type\n[doc-reg-Rd]]
997 .    tm doc-space\n[doc-reg-Rd] == `\*[doc-space\n[doc-reg-Rd]]'
998 .    nr doc-reg-Rd +1
999 .  \}
1001 .  tm doc-curr-font == \n[doc-curr-font]
1002 .  tm doc-curr-size == \n[doc-curr-size]
1003 .  tm doc-indent-synopsis == \n[doc-indent-synopsis]
1004 .  tm doc-indent-synopsis-active == \n[doc-indent-synopsis-active]
1005 .  tm doc-have-decl == \n[doc-have-decl]
1006 .  tm doc-have-var == \n[doc-have-var]
1007 .  tm doc-command-name == `\*[doc-command-name]'
1008 .  tm doc-quote-left == `\*[doc-quote-left]'
1009 .  tm doc-quote-right == `\*[doc-quote-right]'
1010 .  tm doc-nesting-level == \n[doc-nesting-level]
1011 .  tm doc-in-list == \n[doc-in-list]
1012 .  tm doc-space == `\*[doc-space]'
1013 .  tm doc-saved-space == `\*[doc-saved-space]'
1014 .  tm doc-space-mode == \n[doc-space-mode]
1015 .  tm doc-have-space == \n[doc-have-space]
1016 .  tm doc-have-slot == \n[doc-have-slot]
1017 .  tm doc-keep-type == \n[doc-keep-type]
1018 .  tm doc-display-depth == \n[doc-display-depth]
1019 .  tm doc-is-compact == \n[doc-is-compact]
1021 .  nr doc-reg-Rd 0
1022 .  while (\n[doc-reg-Rd] <= \n[doc-display-depth]) \{\
1023 .    tm doc-display-type-stack\n[doc-reg-Rd] == `\*[doc-display-type-stack\n[doc-reg-Rd]]'
1024 .    tm doc-display-indent-stack\n[doc-reg-Rd] == \n[doc-display-indent-stack\n[doc-reg-Rd]]
1025 .    tm doc-display-ad-stack\n[doc-reg-Rd] == \n[doc-display-ad-stack\n[doc-reg-Rd]]
1026 .    tm doc-display-fi-stack\n[doc-reg-Rd] == \n[doc-display-fi-stack\n[doc-reg-Rd]]
1027 .    tm doc-display-ft-stack\n[doc-reg-Rd] == \n[doc-display-ft-stack\n[doc-reg-Rd]]
1028 .    tm doc-display-ps-stack\n[doc-reg-Rd] == \n[doc-display-ps-stack\n[doc-reg-Rd]]
1029 .    nr doc-reg-Rd +1
1030 .  \}
1032 .  tm doc-fontmode-depth == \n[doc-fontmode-depth]
1034 .  nr doc-reg-Rd 1
1035 .  while (\n[doc-reg-Rd] <= \n[doc-fontmode-depth]) \{\
1036 .    tm doc-fontmode-font-stack\n[doc-reg-Rd] == `\n[doc-fontmode-font-stack\n[doc-reg-Rd]]'
1037 .    tm doc-fontmode-size-stack\n[doc-reg-Rd] == `\n[doc-fontmode-size-stack\n[doc-reg-Rd]]'
1038 .    nr doc-reg-Rd +1
1039 .  \}
1041 .  tm doc-list-depth == \n[doc-list-depth]
1043 .  nr doc-reg-Rd 1
1044 .  while (\n[doc-reg-Rd] <= \n[doc-list-depth]) \{\
1045 .    tm doc-list-type-stack\n[doc-reg-Rd] == `\*[doc-list-type-stack\n[doc-reg-Rd]]'
1046 .    tm doc-list-have-indent-stack\n[doc-reg-Rd] == \n[doc-list-have-indent-stack\n[doc-reg-Rd]]
1047 .    tm doc-list-indent-stack\n[doc-reg-Rd] == \n[doc-list-indent-stack\n[doc-reg-Rd]]
1048 .    tm doc-compact-list-stack\n[doc-reg-Rd] == \n[doc-compact-list-stack\n[doc-reg-Rd]]
1049 .    tm doc-tag-prefix-stack\n[doc-reg-Rd] == `\*[doc-tag-prefix-stack\n[doc-reg-Rd]]'
1050 .    tm doc-tag-width-stack\n[doc-reg-Rd] == `\*[doc-tag-width-stack\n[doc-reg-Rd]]'
1051 .    tm doc-list-offset-stack\n[doc-reg-Rd] == \n[doc-list-offset-stack\n[doc-reg-Rd]]
1052 .    tm doc-enum-list-count-stack\n[doc-reg-Rd] == \n[doc-enum-list-count-stack\n[doc-reg-Rd]]
1053 .    nr doc-reg-Rd +1
1054 .  \}
1056 .  tm doc-saved-Pa-font == `\*[doc-saved-Pa-font]'
1057 .  tm doc-curr-type == \n[doc-curr-type]
1058 .  tm doc-curr-arg == `\*[doc-curr-arg]'
1059 .  tm doc-diag-list-input-line-count == \n[doc-diag-list-input-line-count]
1060 .  tm doc-num-columns == \n[doc-num-columns]
1061 .  tm doc-column-indent-width == \n[doc-column-indent-width]
1062 .  tm doc-is-func == \n[doc-is-func]
1063 .  tm doc-have-old-func == \n[doc-have-old-func]
1064 .  tm doc-func-arg-count == \n[doc-func-arg-count]
1065 .  tm doc-func-arg == `\*[doc-func-arg]'
1066 .  tm doc-num-func-args == \n[doc-num-func-args]
1067 .  tm doc-func-args-processed == \n[doc-func-args-processed]
1068 .  tm doc-have-func == \n[doc-have-func]
1069 .  tm doc-is-reference == \n[doc-is-reference]
1070 .  tm doc-reference-count == \n[doc-reference-count]
1071 .  tm doc-author-count == \n[doc-author-count]
1073 .  nr doc-reg-Rd 0
1074 .  while (\n[doc-reg-Rd] <= \n[doc-author-count]) \{\
1075 .    tm doc-author-name\n[doc-reg-Rd] == `\*[doc-author-name\n[doc-reg-Rd]]'
1076 .    nr doc-reg-Rd +1
1077 .  \}
1079 .  tm doc-book-count == \n[doc-book-count]
1080 .  tm doc-book-name == `\*[doc-book-name]'
1081 .  tm doc-date-count == \n[doc-date-count]
1082 .  tm doc-date == `\*[doc-date]'
1083 .  tm doc-publisher-count == \n[doc-publisher-count]
1084 .  tm doc-publisher-name == `\*[doc-publisher-name]'
1085 .  tm doc-journal-count == \n[doc-journal-count]
1086 .  tm doc-journal-name == `\*[doc-journal-name]'
1087 .  tm doc-issue-count == \n[doc-issue-count]
1088 .  tm doc-issue-name == `\*[doc-issue-name]'
1089 .  tm doc-optional-count == \n[doc-optional-count]
1090 .  tm doc-optional-string == `\*[doc-optional-string]'
1091 .  tm doc-page-number-count == \n[doc-page-number-count]
1092 .  tm doc-page-number-string == `\*[doc-page-number-string]'
1093 .  tm doc-corporate-count == \n[doc-corporate-count]
1094 .  tm doc-corporate-name == `\*[doc-corporate-name]'
1095 .  tm doc-report-count == \n[doc-report-count]
1096 .  tm doc-report-name == `\*[doc-report-name]'
1097 .  tm doc-reference-title-count == \n[doc-reference-title-count]
1098 .  tm doc-reference-title-name == `\*[doc-reference-title-name]'
1099 .  tm doc-reference-title-name-for-book == `\*[doc-reference-title-name-for-book]'
1100 .  tm doc-url-count == \n[doc-url-count]
1101 .  tm doc-url-name == `\*[doc-url-name]'
1102 .  tm doc-volume-count == \n[doc-volume-count]
1103 .  tm doc-volume-name == `\*[doc-volume-name]'
1104 .  tm doc-have-author == \n[doc-have-author]
1106 .  tm doc-document-title == `\*[doc-document-title]'
1107 .  tm doc-volume == `\*[doc-volume]'
1108 .  tm doc-section == `\*[doc-section]'
1109 .  tm doc-operating-system == `\*[doc-operating-system]'
1110 .  tm doc-date-string == `\*[doc-date-string]'
1111 .  tm doc-header-space == \n[doc-header-space]
1112 .  tm doc-footer-space == \n[doc-footer-space]
1113 .  tm doc-display-vertical == \n[doc-display-vertical]
1114 .  tm doc-header-string == `\*[doc-header-string]'
1115 .  tm doc-in-synopsis-section == \n[doc-in-synopsis-section]
1116 .  tm doc-in-library-section == \n[doc-in-library-section]
1117 .  tm doc-in-see-also-section == \n[doc-in-see-also-section]
1118 .  tm doc-in-files-section == \n[doc-in-files-section]
1119 .  tm doc-in-authors-section == \n[doc-in-authors-section]
1121 .  tm END OF GLOBAL REGISTER DUMP
1127 .\" EOF