1 .\" Copyright (c) 1991, 1993
2 .\" The Regents of the University of California. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
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.
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.
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
30 .\" @(#)doc-common 8.1 (Berkeley) 06/08/93
35 .\" Macro Identifiers. For each user macro a corresponding register with
36 .\" the same name must exist. Its value must not be zero.
78 .nr Ds 6n\" many manpages still use this as a -width value
152 .\" macros which must be processed after the closing delimiter of `Op'
168 .nr doc-display-indent 6n
173 .ds doc-soft-space " \"
174 .ds doc-hard-space \~
181 .\" punctuation values (suffix=3, prefix=4)
195 .\" header assembly macros
197 .\" NS doc-document-title global string
198 .\" NS the title of the manual page
200 .ds doc-document-title UNTITLED
203 .\" NS doc-volume global string
204 .\" NS the volume where the manual page belongs to
209 .\" NS doc-section global string
210 .\" NS the manual section
215 .\" NS Dt user macro (not parsed, not callable)
216 .\" NS document title
219 .\" NS doc-document-title
222 .\" NS doc-command-name
224 .\" NS local variables:
225 .\" NS doc-volume-as-XXX
226 .\" NS doc-volume-ds-XXX
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
319 . \" reset default arguments
320 . ds doc-document-title UNTITLED
321 . ds doc-volume LOCAL
322 . ds doc-section Null
323 . ds doc-command-name
326 . ds doc-document-title "\$1
331 . if ((\$2 >= 1) & (\$2 <= 9)) \{\
332 . ie \n[doc-volume-operating-system-ateol] \{\
333 . ds doc-volume "\*[doc-volume-ds-\$2] \*[doc-volume-operating-system]
335 . if d doc-volume-as-\$3 \
336 . as doc-volume "/\*[doc-volume-as-\$3]
339 . ds doc-volume "\*[doc-volume-operating-system]
341 . if d doc-volume-as-\$3 \
342 . as doc-volume "/\*[doc-volume-as-\$3]
344 . as doc-volume " \*[doc-volume-ds-\$2]
348 . ds doc-volume DRAFT
349 . el \{ .ie "\$2"draft" \
350 . ds doc-volume DRAFT
351 . el .if "\$2"paper" \
352 . ds doc-volume UNTITLED
355 . if d doc-volume-ds-\$3 \
356 . ds doc-volume "\*[doc-volume-ds-\$3]
360 . if "\*[doc-volume]"LOCAL" \
371 .\" NS doc-default-operating-system global string
372 .\" NS the exact (default) version of the operating system
374 .\" NS override this in `mdoc.local', if necessary
376 .ds doc-default-operating-system BSD
379 .\" NS doc-operating-system global string
380 .\" NS the exact version of the operating system
382 .ds doc-operating-system
385 .\" NS Os user macro (not parsed, not callable)
386 .\" NS operating system
389 .\" NS doc-operating-system
390 .\" NS doc-command-name
392 .\" NS local variables:
393 .\" NS doc-operating-system-XXX-XXX
395 .\" NS width register `Os' set above
397 .ds doc-operating-system-ATT-7 7th\~Edition
398 .als doc-operating-system-ATT-7th doc-operating-system-ATT-7
399 .ds doc-operating-system-ATT-3 System\~III
400 .als doc-operating-system-ATT-III doc-operating-system-ATT-3
401 .ds doc-operating-system-ATT-V System\~V
402 .ds doc-operating-system-ATT-V.2 System\~V Release\~2
403 .ds doc-operating-system-ATT-V.3 System\~V Release\~3
404 .ds doc-operating-system-ATT-V.4 System\~V Release\~4
406 .ds doc-operating-system-BSD-3 3rd\~Berkeley Distribution
407 .ds doc-operating-system-BSD-4 4th\~Berkeley Distribution
408 .ds doc-operating-system-BSD-4.1 4.1\~Berkeley Distribution
409 .ds doc-operating-system-BSD-4.2 4.2\~Berkeley Distribution
410 .ds doc-operating-system-BSD-4.3 4.3\~Berkeley Distribution
411 .ds doc-operating-system-BSD-4.3T 4.3-Tahoe Berkeley Distribution
412 .ds doc-operating-system-BSD-4.3R 4.3-Reno Berkeley Distribution
413 .als doc-operating-system-BSD-4.3t doc-operating-system-BSD-4.3T
414 .als doc-operating-system-BSD-4.3r doc-operating-system-BSD-4.3R
415 .ds doc-operating-system-BSD-4.4 4.4BSD
417 .ds doc-operating-system-NetBSD-0.8 0.8
418 .ds doc-operating-system-NetBSD-0.8a 0.8A
419 .ds doc-operating-system-NetBSD-0.9 0.9
420 .ds doc-operating-system-NetBSD-0.9a 0.9A
421 .ds doc-operating-system-NetBSD-1.0 1.0
422 .ds doc-operating-system-NetBSD-1.0a 1.0A
423 .ds doc-operating-system-NetBSD-1.1 1.1
424 .ds doc-operating-system-NetBSD-1.2 1.2
425 .ds doc-operating-system-NetBSD-1.2a 1.2A
426 .ds doc-operating-system-NetBSD-1.2b 1.2B
427 .ds doc-operating-system-NetBSD-1.2c 1.2C
428 .ds doc-operating-system-NetBSD-1.2d 1.2D
429 .ds doc-operating-system-NetBSD-1.2e 1.2E
430 .ds doc-operating-system-NetBSD-1.3 1.3
431 .ds doc-operating-system-NetBSD-1.3a 1.3A
432 .ds doc-operating-system-NetBSD-1.4 1.4
433 .ds doc-operating-system-NetBSD-1.4.1 1.4.1
434 .ds doc-operating-system-NetBSD-1.4.2 1.4.2
435 .ds doc-operating-system-NetBSD-1.4.3 1.4.3
436 .ds doc-operating-system-NetBSD-1.5 1.5
437 .ds doc-operating-system-NetBSD-1.5.1 1.5.1
438 .ds doc-operating-system-NetBSD-1.5.2 1.5.2
439 .ds doc-operating-system-NetBSD-1.5.3 1.5.3
440 .ds doc-operating-system-NetBSD-1.6 1.6
441 .ds doc-operating-system-NetBSD-1.6.1 1.6.1
442 .ds doc-operating-system-NetBSD-1.6.2 1.6.2
443 .ds doc-operating-system-NetBSD-1.6.3 1.6.3
444 .ds doc-operating-system-NetBSD-2.0 2.0
445 .ds doc-operating-system-NetBSD-2.0.1 2.0.1
446 .ds doc-operating-system-NetBSD-2.0.2 2.0.2
447 .ds doc-operating-system-NetBSD-2.0.3 2.0.3
448 .ds doc-operating-system-NetBSD-2.1 2.1
449 .ds doc-operating-system-NetBSD-3.0 3.0
450 .ds doc-operating-system-NetBSD-3.0.1 3.0.1
451 .ds doc-operating-system-NetBSD-3.0.2 3.0.2
452 .ds doc-operating-system-NetBSD-3.1 3.1
453 .ds doc-operating-system-NetBSD-4.0 4.0
454 .ds doc-operating-system-NetBSD-4.0.1 4.0.1
456 .ds doc-operating-system-FreeBSD-1.0 1.0
457 .ds doc-operating-system-FreeBSD-1.1 1.1
458 .ds doc-operating-system-FreeBSD-1.1.5 1.1.5
459 .ds doc-operating-system-FreeBSD-1.1.5.1 1.1.5.1
460 .ds doc-operating-system-FreeBSD-2.0 2.0
461 .ds doc-operating-system-FreeBSD-2.0.5 2.0.5
462 .ds doc-operating-system-FreeBSD-2.1 2.1
463 .ds doc-operating-system-FreeBSD-2.1.5 2.1.5
464 .ds doc-operating-system-FreeBSD-2.1.6 2.1.6
465 .ds doc-operating-system-FreeBSD-2.1.7 2.1.7
466 .ds doc-operating-system-FreeBSD-2.2 2.2
467 .ds doc-operating-system-FreeBSD-2.2.1 2.2.1
468 .ds doc-operating-system-FreeBSD-2.2.2 2.2.2
469 .ds doc-operating-system-FreeBSD-2.2.5 2.2.5
470 .ds doc-operating-system-FreeBSD-2.2.6 2.2.6
471 .ds doc-operating-system-FreeBSD-2.2.7 2.2.7
472 .ds doc-operating-system-FreeBSD-2.2.8 2.2.8
473 .ds doc-operating-system-FreeBSD-3.0 3.0
474 .ds doc-operating-system-FreeBSD-3.1 3.1
475 .ds doc-operating-system-FreeBSD-3.2 3.2
476 .ds doc-operating-system-FreeBSD-3.3 3.3
477 .ds doc-operating-system-FreeBSD-3.4 3.4
478 .ds doc-operating-system-FreeBSD-3.5 3.5
479 .ds doc-operating-system-FreeBSD-4.0 4.0
480 .ds doc-operating-system-FreeBSD-4.1 4.1
481 .ds doc-operating-system-FreeBSD-4.1.1 4.1.1
482 .ds doc-operating-system-FreeBSD-4.2 4.2
483 .ds doc-operating-system-FreeBSD-4.3 4.3
484 .ds doc-operating-system-FreeBSD-4.4 4.4
485 .ds doc-operating-system-FreeBSD-4.5 4.5
486 .ds doc-operating-system-FreeBSD-4.6 4.6
487 .ds doc-operating-system-FreeBSD-4.6.2 4.6.2
488 .ds doc-operating-system-FreeBSD-4.7 4.7
489 .ds doc-operating-system-FreeBSD-4.8 4.8
490 .ds doc-operating-system-FreeBSD-4.9 4.9
491 .ds doc-operating-system-FreeBSD-4.10 4.10
492 .ds doc-operating-system-FreeBSD-4.11 4.11
493 .ds doc-operating-system-FreeBSD-5.0 5.0
494 .ds doc-operating-system-FreeBSD-5.1 5.1
495 .ds doc-operating-system-FreeBSD-5.2 5.2
496 .ds doc-operating-system-FreeBSD-5.2.1 5.2.1
497 .ds doc-operating-system-FreeBSD-5.3 5.3
498 .ds doc-operating-system-FreeBSD-5.4 5.4
499 .ds doc-operating-system-FreeBSD-5.5 5.5
500 .ds doc-operating-system-FreeBSD-6.0 6.0
501 .ds doc-operating-system-FreeBSD-6.1 6.1
502 .ds doc-operating-system-FreeBSD-6.2 6.2
503 .ds doc-operating-system-FreeBSD-6.3 6.3
504 .ds doc-operating-system-FreeBSD-6.4 6.4
505 .ds doc-operating-system-FreeBSD-7.0 7.0
506 .ds doc-operating-system-FreeBSD-7.1 7.1
508 .ds doc-operating-system-Darwin-8.0.0 8.0.0
509 .ds doc-operating-system-Darwin-8.1.0 8.1.0
510 .ds doc-operating-system-Darwin-8.2.0 8.2.0
511 .ds doc-operating-system-Darwin-8.3.0 8.3.0
512 .ds doc-operating-system-Darwin-8.4.0 8.4.0
513 .ds doc-operating-system-Darwin-8.5.0 8.5.0
514 .ds doc-operating-system-Darwin-8.6.0 8.6.0
515 .ds doc-operating-system-Darwin-8.7.0 8.7.0
516 .ds doc-operating-system-Darwin-8.8.0 8.8.0
517 .ds doc-operating-system-Darwin-8.9.0 8.9.0
518 .ds doc-operating-system-Darwin-8.10.0 8.10.0
519 .ds doc-operating-system-Darwin-8.11.0 8.11.0
520 .ds doc-operating-system-Darwin-9.0.0 9.0.0
521 .ds doc-operating-system-Darwin-9.1.0 9.1.0
522 .ds doc-operating-system-Darwin-9.2.0 9.2.0
523 .ds doc-operating-system-Darwin-9.3.0 9.3.0
524 .ds doc-operating-system-Darwin-9.4.0 9.4.0
525 .ds doc-operating-system-Darwin-9.5.0 9.5.0
526 .ds doc-operating-system-Darwin-9.6.0 9.6.0
528 .ds doc-operating-system-DragonFly-1.0 1.0
529 .ds doc-operating-system-DragonFly-1.1 1.1
530 .ds doc-operating-system-DragonFly-1.2 1.2
531 .ds doc-operating-system-DragonFly-1.3 1.3
532 .ds doc-operating-system-DragonFly-1.4 1.4
533 .ds doc-operating-system-DragonFly-1.5 1.5
534 .ds doc-operating-system-DragonFly-1.6 1.6
535 .ds doc-operating-system-DragonFly-1.8 1.8
536 .ds doc-operating-system-DragonFly-1.8.1 1.8.1
537 .ds doc-operating-system-DragonFly-1.10 1.10
538 .ds doc-operating-system-DragonFly-1.12 1.12
539 .ds doc-operating-system-DragonFly-1.12.2 1.12.2
540 .ds doc-operating-system-DragonFly-2.0 2.0
543 . ds doc-command-name
546 . ds doc-operating-system "\*[doc-default-operating-system]
547 . el \{ .ie "\$1"ATT" \{\
548 . ds doc-operating-system AT&T
550 . ie d doc-operating-system-ATT-\$2 \
551 . as doc-operating-system " \*[doc-operating-system-ATT-\$2]
553 . as doc-operating-system " UNIX
555 . el \{ .ie "\$1"BSD" \{\
557 . ie d doc-operating-system-BSD-\$2 \
558 . ds doc-operating-system "\*[doc-operating-system-BSD-\$2]
560 . tm mdoc warning: .Os: Unknown BSD version `\$2' (#\n[.c])
562 . el \{ .ie "\$1"FreeBSD" \{\
563 . ds doc-operating-system FreeBSD
565 . ie d doc-operating-system-FreeBSD-\$2 \
566 . as doc-operating-system \~\*[doc-operating-system-FreeBSD-\$2]
568 . tm mdoc warning: .Os: Unknown FreeBSD version `\$2' (#\n[.c])
570 . el \{ .ie "\$1"NetBSD" \{\
571 . ds doc-operating-system NetBSD
573 . ie d doc-operating-system-NetBSD-\$2 \
574 . as doc-operating-system \~\*[doc-operating-system-NetBSD-\$2]
576 . tm mdoc warning: .Os: Unknown NetBSD version `\$2' (#\n[.c])
578 . el \{ .ie "\$1"Darwin" \{\
579 . ds doc-operating-system Darwin
581 . ie d doc-operating-system-Darwin-\$2 \
582 . as doc-operating-system \~\*[doc-operating-system-Darwin-\$2]
584 . tm mdoc warning: .Os: Unknown Darwin version `\$2' (#\n[.c])
587 . ds doc-operating-system \$1
589 . as doc-operating-system " \$2
594 .\" NS doc-date-string global string
595 .\" NS the manual page date as set by `Dd'
600 .\" NS Dd user macro (not parsed, not callable)
601 .\" NS set document date
604 .\" NS doc-date-string
605 .\" NS doc-command-name
607 .\" NS local variables:
610 .\" NS width register `Dd' set above
612 .ds doc-date-1 January
613 .ds doc-date-2 February
619 .ds doc-date-8 August
620 .ds doc-date-9 September
621 .ds doc-date-10 October
622 .ds doc-date-11 November
623 .ds doc-date-12 December
626 . ds doc-command-name
630 . ds doc-date-string \$1\~\$2 \$3
632 . ds doc-date-string "\*[doc-date-\n[mo]]
633 . as doc-date-string \~\n[dy], \n[year]
637 . ds doc-date-string Epoch
641 .\" NS doc-hyphen-flags global register
642 .\" NS the parameter for the `.hy' request
644 .\" NS override this in `mdoc.local', if necessary.
646 .nr doc-hyphen-flags 12
649 .\" NS doc-header macro
650 .\" NS print page header
652 .\" NS local variables:
658 . doc-setup-page-layout
660 . sp \n[doc-header-space]u
661 . nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\f[]'
662 . nr doc-reg-dh1 \w'\*[doc-caption-font2]\*[doc-volume]\f[]'
663 . if (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
664 . while (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
665 . substring doc-header-string 0 -2
666 . nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\|.\|.\|.\f[]'
668 . as doc-header-string "\|.\|.\|.
670 . 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
672 . sp \n[doc-header-space]u
680 .\" NS doc-footer macro
681 .\" NS print page footer
687 . ev doc-caption-enviroment
688 . doc-setup-page-layout
689 . sp \n[doc-footer-space]u
692 . tl
\a%
\a\*[doc-caption-font2]\*[doc-date-string]\f[]
\a\*[doc-caption-font]\*[doc-operating-system]\f[]
\a
694 . tl
\a\*[doc-caption-font]\*[doc-operating-system]\f[]
\a\*[doc-caption-font2]\*[doc-date-string]\f[]
\a%
\a
697 . tl
\a\*[doc-caption-font]\*[doc-operating-system]\f[]
\a\*[doc-caption-font2]\*[doc-date-string]\f[]
\a%
\a
704 .\" NS doc-check-depth macro
705 .\" NS check paired macros
708 . if \n[doc-list-depth] \{\
709 . tm mdoc warning: A .Bl directive has no matching .El (#\n[.c])
710 . nr doc-list-depth 0
712 . if \n[doc-display-depth] \{\
713 . tm mdoc warning: A .Bd directive has no matching .Ed (#\n[.c])
714 . nr doc-display-depth 0
716 . if \n[doc-fontmode-depth] \{\
717 . tm mdoc warning: A .Bf directive has no matching .Ef (#\n[.c])
718 . nr doc-fontmode-depth 0
723 .\" NS doc-end-macro macro
727 . \" We may still have a partial line in the environment. If this is the
728 . \" case, and we happen to be on the last line of the page, the `.fl'
729 . \" request will cause the page to be ejected and troff will immediately
730 . \" exit. If we are in nroff mode, this would be unfortunate, since we
731 . \" would never get a chance to output the footer. So we fudge the page
732 . \" length to make sure that the last page is never ejected until we want
743 . 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
744 . \" suppress empty lines after the footer
750 .\" NS doc-paragraph macro
751 .\" NS insert a paragraph
754 . sp \n[doc-paragraph-space]u
761 .\" NS Pp user macro (not parsed, not callable)
764 .\" NS width register `Pp' set above
766 .als Pp doc-paragraph
769 .\" NS Lp user macro (not parsed, not callable)
772 .\" NS width register `Lp' set above
774 .als Lp doc-paragraph
778 . tm Not a \-mdoc command: .LP (#\n[.c])
783 . tm Not a \-mdoc command: .PP (#\n[.c])
788 . tm Not a \-mdoc command: .pp (#\n[.c])
793 . tm Not a \-mdoc command: .SH (#\n[.c])
797 .\" NS Nd user macro (not parsed, not callable)
798 .\" NS print name description
800 .\" NS width register `Nd' set above
807 .\" NS doc-in-synopsis-section global register (bool)
808 .\" NS whether we are in the `synopsis' section
810 .nr doc-in-synopsis-section 0
813 .\" NS doc-in-library-section global register (bool)
814 .\" NS whether we are in the `library' section
816 .nr doc-in-library-section 0
819 .\" NS doc-in-see-also-section global register (bool)
820 .\" NS whether we are in the `see also' section
822 .nr doc-in-see-also-section 0
825 .\" NS doc-in-files-section global register (bool)
826 .\" NS whether we are in the `files' section
828 .nr doc-in-files-section 0
831 .\" NS doc-in-authors-section global register (bool)
832 .\" NS whether we are in the `authors' section
834 .nr doc-in-authors-section 0
837 .\" NS doc-first-parameter macro
838 .\" NS return first parameter
840 .\" NS local variables:
843 .de doc-first-parameter
844 . ds doc-str-dfp "\$1
848 .\" NS Sh user macro (not callable)
849 .\" NS section headers
852 .\" NS doc-func-args-processed
853 .\" NS doc-func-count
854 .\" NS doc-in-authors-section
855 .\" NS doc-in-files-section
856 .\" NS doc-in-library-section
857 .\" NS doc-in-see-also-section
858 .\" NS doc-in-synopsis-section
859 .\" NS doc-indent-synopsis
860 .\" NS doc-indent-synopsis-active
862 .\" NS doc-num-func-args
864 .\" NS local variables:
867 .\" NS doc-section-XXX
869 .\" NS width register `Sh' set in doc-common
871 .ds doc-section-name NAME
872 .ds doc-section-synopsis SYNOPSIS
873 .ds doc-section-library LIBRARY
874 .ds doc-section-description DESCRIPTION
875 .ds doc-section-see-also SEE
876 .ds doc-section-files FILES
877 .ds doc-section-authors AUTHORS
880 . ie \n[doc-arg-limit] \{\
881 . \" we only allow `Sh' within `Sh'; it will change the font back to
883 . ie "\*[doc-macro-name]"Sh" \{\
885 . ie (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \{\
886 . nr doc-curr-font \n[.f]
887 . nr doc-curr-size \n[.ps]
888 . nop \*[doc-Sh-font]\c
889 . doc-print-recursive
892 . tm Usage: .Sh section_name ... (#\n[.c])
896 . tm Usage: .Sh not callable by other macros (#\n[.c])
901 . tm Usage: .Sh section_name ... (#\n[.c])
905 . ds doc-macro-name Sh
911 . \" this resolves e.g. `.Sh "SEE ALSO"'
912 . doc-first-parameter \$*
914 . ie "\*[doc-str-dfp]"\*[doc-section-name]" \{\
919 . nr doc-in-synopsis-section 0
920 . nr doc-in-library-section 0
921 . nr doc-in-see-also-section 0
922 . nr doc-in-files-section 0
923 . nr doc-in-authors-section 0
925 . ie "\*[doc-str-dfp]"\*[doc-section-synopsis]" \{\
928 . nr doc-in-synopsis-section 1
929 . nr doc-indent-synopsis 0
930 . nr doc-indent-synopsis-active 0
932 . el \{ .ie "\*[doc-str-dfp]"\*[doc-section-library]" \{\
933 . nr doc-in-library-section 1
935 . el \{ .ie "\*[doc-str-dfp]"\*[doc-section-description]" \{\
937 . nr doc-func-count 0
938 . nr doc-func-args-processed 0
939 . nr doc-num-func-args 0
941 . el \{ .ie "\*[doc-str-dfp]"\*[doc-section-see-also]" \{\
944 . nr doc-in-see-also-section 1
946 . el \{ .ie "\*[doc-str-dfp]"\*[doc-section-files]" \
947 . nr doc-in-files-section 1
948 . el .if "\*[doc-str-dfp]"\*[doc-section-authors]" \
949 . nr doc-in-authors-section 1
953 . nr doc-have-author 0
956 . doc-setup-page-layout
965 . nr doc-reg-Sh \n[.ss]
966 . nr doc-reg-Sh1 \n[.sss]
967 . ss (\n[.ss] * 5 / 3) (\n[.sss] * 5 / 3)
971 . nr doc-curr-font \n[.f]
972 . nr doc-curr-size \n[.ps]
973 . nop \*[doc-Sh-font]\c
974 . doc-print-recursive
977 . ss \n[doc-reg-Sh] \n[doc-reg-Sh1]
979 . in +\n[doc-subheader-indent]u
987 .\" NS Ss user macro (not callable)
990 .\" NS local variable:
994 .\" NS width register `Ss' set above
997 . ie \n[doc-arg-limit] \{\
998 . \" we only allow `Ss' within `Ss'; it will change the font back to
1000 . ie "\*[doc-macro-name]"Ss" \{\
1002 . ie (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \{\
1003 . nr doc-curr-font \n[.f]
1004 . nr doc-curr-size \n[.ps]
1005 . nop \*[doc-Sh-font]\c
1006 . doc-print-recursive
1009 . tm Usage: .Ss subsection_name ... (#\n[.c])
1013 . tm Usage: .Ss not callable by other macros (#\n[.c])
1018 . tm Usage: .Ss subsection_name ... (#\n[.c])
1022 . ds doc-macro-name Ss
1023 . doc-parse-args \$@
1030 . nr doc-reg-Ss \n[.ss]
1031 . nr doc-reg-Ss1 \n[.sss]
1032 . ss (\n[.ss] * 5 / 4) (\n[.sss] * 5 / 4)
1035 . nr doc-curr-font \n[.f]
1036 . nr doc-curr-size \n[.ps]
1037 . nop \*[doc-Sh-font]\c
1038 . doc-print-recursive
1040 . ss \n[doc-reg-Ss] \n[doc-reg-Ss1]
1053 .\" NS Rd macro (not parsed, not callable)
1054 .\" NS print global register dump to stderr
1056 .\" NS local variables:
1060 . tm MDOC GLOBAL REGISTER DUMP
1061 . tm doc-macro-name == `\*[doc-macro-name]'
1062 . tm doc-arg-limit == \n[doc-arg-limit]
1063 . tm doc-num-args == \n[doc-num-args]
1064 . tm doc-arg-ptr == \n[doc-arg-ptr]
1067 . while (\n[doc-reg-Rd] <= \n[doc-arg-limit]) \{\
1068 . tm doc-arg\n[doc-reg-Rd] == `\*[doc-arg\n[doc-reg-Rd]]'
1069 . tm doc-type\n[doc-reg-Rd] == \n[doc-type\n[doc-reg-Rd]]
1070 . tm doc-space\n[doc-reg-Rd] == `\*[doc-space\n[doc-reg-Rd]]'
1074 . tm doc-curr-font == \n[doc-curr-font]
1075 . tm doc-curr-size == \n[doc-curr-size]
1076 . tm doc-indent-synopsis == \n[doc-indent-synopsis]
1077 . tm doc-indent-synopsis-active == \n[doc-indent-synopsis-active]
1078 . tm doc-have-decl == \n[doc-have-decl]
1079 . tm doc-have-var == \n[doc-have-var]
1080 . tm doc-command-name == `\*[doc-command-name]'
1081 . tm doc-quote-left == `\*[doc-quote-left]'
1082 . tm doc-quote-right == `\*[doc-quote-right]'
1083 . tm doc-nesting-level == \n[doc-nesting-level]
1084 . tm doc-in-list == \n[doc-in-list]
1085 . tm doc-space == `\*[doc-space]'
1086 . tm doc-saved-space == `\*[doc-saved-space]'
1087 . tm doc-space-mode == \n[doc-space-mode]
1088 . tm doc-have-space == \n[doc-have-space]
1089 . tm doc-have-slot == \n[doc-have-slot]
1090 . tm doc-keep-type == \n[doc-keep-type]
1091 . tm doc-display-depth == \n[doc-display-depth]
1092 . tm doc-is-compact == \n[doc-is-compact]
1095 . while (\n[doc-reg-Rd] <= \n[doc-display-depth]) \{\
1096 . tm doc-display-type-stack\n[doc-reg-Rd] == `\*[doc-display-type-stack\n[doc-reg-Rd]]'
1097 . tm doc-display-indent-stack\n[doc-reg-Rd] == \n[doc-display-indent-stack\n[doc-reg-Rd]]
1098 . tm doc-display-ad-stack\n[doc-reg-Rd] == \n[doc-display-ad-stack\n[doc-reg-Rd]]
1099 . tm doc-display-fi-stack\n[doc-reg-Rd] == \n[doc-display-fi-stack\n[doc-reg-Rd]]
1100 . tm doc-display-ft-stack\n[doc-reg-Rd] == \n[doc-display-ft-stack\n[doc-reg-Rd]]
1101 . tm doc-display-ps-stack\n[doc-reg-Rd] == \n[doc-display-ps-stack\n[doc-reg-Rd]]
1105 . tm doc-fontmode-depth == \n[doc-fontmode-depth]
1108 . while (\n[doc-reg-Rd] <= \n[doc-fontmode-depth]) \{\
1109 . tm doc-fontmode-font-stack\n[doc-reg-Rd] == `\n[doc-fontmode-font-stack\n[doc-reg-Rd]]'
1110 . tm doc-fontmode-size-stack\n[doc-reg-Rd] == `\n[doc-fontmode-size-stack\n[doc-reg-Rd]]'
1114 . tm doc-list-depth == \n[doc-list-depth]
1117 . while (\n[doc-reg-Rd] <= \n[doc-list-depth]) \{\
1118 . tm doc-list-type-stack\n[doc-reg-Rd] == `\*[doc-list-type-stack\n[doc-reg-Rd]]'
1119 . tm doc-list-have-indent-stack\n[doc-reg-Rd] == \n[doc-list-have-indent-stack\n[doc-reg-Rd]]
1120 . tm doc-list-indent-stack\n[doc-reg-Rd] == \n[doc-list-indent-stack\n[doc-reg-Rd]]
1121 . tm doc-compact-list-stack\n[doc-reg-Rd] == \n[doc-compact-list-stack\n[doc-reg-Rd]]
1122 . tm doc-tag-prefix-stack\n[doc-reg-Rd] == `\*[doc-tag-prefix-stack\n[doc-reg-Rd]]'
1123 . tm doc-tag-width-stack\n[doc-reg-Rd] == `\*[doc-tag-width-stack\n[doc-reg-Rd]]'
1124 . tm doc-list-offset-stack\n[doc-reg-Rd] == \n[doc-list-offset-stack\n[doc-reg-Rd]]
1125 . tm doc-enum-list-count-stack\n[doc-reg-Rd] == \n[doc-enum-list-count-stack\n[doc-reg-Rd]]
1129 . tm doc-saved-Pa-font == `\*[doc-saved-Pa-font]'
1130 . tm doc-curr-type == \n[doc-curr-type]
1131 . tm doc-curr-arg == `\*[doc-curr-arg]'
1132 . tm doc-diag-list-input-line-count == \n[doc-diag-list-input-line-count]
1133 . tm doc-num-columns == \n[doc-num-columns]
1134 . tm doc-column-indent-width == \n[doc-column-indent-width]
1135 . tm doc-is-func == \n[doc-is-func]
1136 . tm doc-have-old-func == \n[doc-have-old-func]
1137 . tm doc-func-arg-count == \n[doc-func-arg-count]
1138 . tm doc-func-arg == `\*[doc-func-arg]'
1139 . tm doc-num-func-args == \n[doc-num-func-args]
1140 . tm doc-func-args-processed == \n[doc-func-args-processed]
1141 . tm doc-have-func == \n[doc-have-func]
1142 . tm doc-is-reference == \n[doc-is-reference]
1143 . tm doc-reference-count == \n[doc-reference-count]
1144 . tm doc-author-count == \n[doc-author-count]
1147 . while (\n[doc-reg-Rd] <= \n[doc-author-count]) \{\
1148 . tm doc-author-name\n[doc-reg-Rd] == `\*[doc-author-name\n[doc-reg-Rd]]'
1152 . tm doc-book-count == \n[doc-book-count]
1153 . tm doc-book-name == `\*[doc-book-name]'
1154 . tm doc-date-count == \n[doc-date-count]
1155 . tm doc-date == `\*[doc-date]'
1156 . tm doc-publisher-count == \n[doc-publisher-count]
1157 . tm doc-publisher-name == `\*[doc-publisher-name]'
1158 . tm doc-journal-count == \n[doc-journal-count]
1159 . tm doc-journal-name == `\*[doc-journal-name]'
1160 . tm doc-issue-count == \n[doc-issue-count]
1161 . tm doc-issue-name == `\*[doc-issue-name]'
1162 . tm doc-optional-count == \n[doc-optional-count]
1163 . tm doc-optional-string == `\*[doc-optional-string]'
1164 . tm doc-page-number-count == \n[doc-page-number-count]
1165 . tm doc-page-number-string == `\*[doc-page-number-string]'
1166 . tm doc-corporate-count == \n[doc-corporate-count]
1167 . tm doc-corporate-name == `\*[doc-corporate-name]'
1168 . tm doc-report-count == \n[doc-report-count]
1169 . tm doc-report-name == `\*[doc-report-name]'
1170 . tm doc-reference-title-count == \n[doc-reference-title-count]
1171 . tm doc-reference-title-name == `\*[doc-reference-title-name]'
1172 . tm doc-reference-title-name-for-book == `\*[doc-reference-title-name-for-book]'
1173 . tm doc-volume-count == \n[doc-volume-count]
1174 . tm doc-volume-name == `\*[doc-volume-name]'
1175 . tm doc-have-author == \n[doc-have-author]
1177 . tm doc-document-title == `\*[doc-document-title]'
1178 . tm doc-volume == `\*[doc-volume]'
1179 . tm doc-section == `\*[doc-section]'
1180 . tm doc-operating-system == `\*[doc-operating-system]'
1181 . tm doc-date-string == `\*[doc-date-string]'
1182 . tm doc-header-space == \n[doc-header-space]
1183 . tm doc-footer-space == \n[doc-footer-space]
1184 . tm doc-display-vertical == \n[doc-display-vertical]
1185 . tm doc-header-string == `\*[doc-header-string]'
1186 . tm doc-in-synopsis-section == \n[doc-in-synopsis-section]
1187 . tm doc-in-library-section == \n[doc-in-library-section]
1188 . tm doc-in-see-also-section == \n[doc-in-see-also-section]
1189 . tm doc-in-files-section == \n[doc-in-files-section]
1190 . tm doc-in-authors-section == \n[doc-in-authors-section]
1192 . tm END OF GLOBAL REGISTER DUMP