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.
79 .nr Ds 6n\" many manpages still use this as a -width value
154 .\" macros which must be processed after the closing delimiter of `Op'
170 .nr doc-display-indent 6n
175 .ds doc-soft-space " \"
176 .ds doc-hard-space \~
183 .\" punctuation values (suffix=3, prefix=4)
197 .\" header assembly macros
199 .\" NS doc-document-title global string
200 .\" NS the title of the manual page
202 .ds doc-document-title UNTITLED
205 .\" NS doc-volume global string
206 .\" NS the volume where the manual page belongs to
211 .\" NS doc-section global string
212 .\" NS the manual section
217 .\" NS Dt user macro (not parsed, not callable)
218 .\" NS document title
221 .\" NS doc-document-title
224 .\" NS doc-command-name
226 .\" NS local variables:
227 .\" NS doc-volume-as-XXX
228 .\" NS doc-volume-ds-XXX
230 .\" NS width register `Dt' set above
232 .\" an alternative, more detailed scheme for naming the manual sections
234 .ds doc-volume-operating-system BSD
235 .nr doc-volume-operating-system-ateol 0
236 .ds doc-volume-ds-1 General Commands Manual
237 .ds doc-volume-ds-2 System Calls Manual
238 .ds doc-volume-ds-3 Library Functions Manual
239 .ds doc-volume-ds-4 Kernel Interfaces Manual
240 .ds doc-volume-ds-5 File Formats Manual
241 .ds doc-volume-ds-6 Games Manual
242 .ds doc-volume-ds-7 Miscellaneous Information Manual
243 .ds doc-volume-ds-8 System Manager's Manual
244 .ds doc-volume-ds-9 Kernel Developer's Manual
246 .ds doc-volume-ds-USD User's Supplementary Documents
247 .ds doc-volume-ds-PS1 Programmer's Supplementary Documents
248 .ds doc-volume-ds-AMD Ancestral Manual Documents
249 .ds doc-volume-ds-SMM System Manager's Manual
250 .ds doc-volume-ds-URM User's Reference Manual
251 .ds doc-volume-ds-PRM Programmer's Manual
252 .ds doc-volume-ds-KM Kernel Manual
253 .ds doc-volume-ds-IND Manual Master Index
254 .ds doc-volume-ds-LOCAL Local Manual
255 .ds doc-volume-ds-CON Contributed Software Manual
257 .als doc-volume-ds-MMI doc-volume-ds-IND
258 .als doc-volume-ds-LOC doc-volume-ds-LOCAL
260 .ds doc-volume-as-alpha alpha
261 .als doc-volume-as-Alpha doc-volume-as-alpha
262 .ds doc-volume-as-acorn26 acorn26
263 .ds doc-volume-as-acorn32 acorn32
264 .ds doc-volume-as-algor algor
265 .ds doc-volume-as-amd64 amd64
266 .ds doc-volume-as-amiga amiga
267 .ds doc-volume-as-arc arc
268 .ds doc-volume-as-arm26 arm26
269 .ds doc-volume-as-arm32 arm32
270 .ds doc-volume-as-atari atari
271 .ds doc-volume-as-bebox bebox
272 .ds doc-volume-as-cats cats
273 .ds doc-volume-as-cesfic cesfic
274 .ds doc-volume-as-cobalt cobalt
275 .ds doc-volume-as-dreamcast dreamcast
276 .ds doc-volume-as-evbarm evbarm
277 .ds doc-volume-as-evbmips evbmips
278 .ds doc-volume-as-evbppc evbppc
279 .ds doc-volume-as-evbsh3 evbsh3
280 .ds doc-volume-as-hp300 hp300
281 .ds doc-volume-as-hp700 hp700
282 .ds doc-volume-as-hpcarm hpcarm
283 .ds doc-volume-as-hpcmips hpcmips
284 .ds doc-volume-as-hpcsh hpcsh
285 .ds doc-volume-as-i386 i386
286 .ds doc-volume-as-luna68k luna68k
287 .ds doc-volume-as-m68k m68k
288 .ds doc-volume-as-mac68k mac68k
289 .ds doc-volume-as-macppc macppc
290 .ds doc-volume-as-mips mips
291 .ds doc-volume-as-mipsco mipsco
292 .ds doc-volume-as-mmeye mmeye
293 .ds doc-volume-as-mvme68k mvme68k
294 .ds doc-volume-as-mvmeppc mvmeppc
295 .ds doc-volume-as-netwinder netwinder
296 .ds doc-volume-as-news68k news68k
297 .ds doc-volume-as-newsmips newsmips
298 .ds doc-volume-as-next68k next68k
299 .ds doc-volume-as-ofppc ofppc
300 .ds doc-volume-as-pc532 pc532
301 .ds doc-volume-as-playstation2 playstation2
302 .ds doc-volume-as-pmax pmax
303 .ds doc-volume-as-pmppc pmppc
304 .ds doc-volume-as-powerpc powerpc
305 .ds doc-volume-as-prep prep
306 .ds doc-volume-as-sandpoint sandpoint
307 .ds doc-volume-as-sbmips sbmips
308 .ds doc-volume-as-sgimips sgimips
309 .ds doc-volume-as-sh3 sh3
310 .ds doc-volume-as-shark shark
311 .ds doc-volume-as-sparc sparc
312 .ds doc-volume-as-sparc64 sparc64
313 .ds doc-volume-as-sun2 sun2
314 .ds doc-volume-as-sun3 sun3
315 .ds doc-volume-as-tahoe tahoe
316 .ds doc-volume-as-vax vax
317 .ds doc-volume-as-x68k x68k
318 .ds doc-volume-as-x86_64 x86_64
321 . \" reset default arguments
322 . ds doc-document-title UNTITLED
323 . ds doc-volume LOCAL
324 . ds doc-section Null
325 . ds doc-command-name
328 . ds doc-document-title "\$1
333 . if ((\$2 >= 1) & (\$2 <= 9)) \{\
334 . ie \n[doc-volume-operating-system-ateol] \{\
335 . ds doc-volume "\*[doc-volume-ds-\$2] \*[doc-volume-operating-system]
337 . if d doc-volume-as-\$3 \
338 . as doc-volume "/\*[doc-volume-as-\$3]
341 . ds doc-volume "\*[doc-volume-operating-system]
343 . if d doc-volume-as-\$3 \
344 . as doc-volume "/\*[doc-volume-as-\$3]
346 . as doc-volume " \*[doc-volume-ds-\$2]
350 . ds doc-volume DRAFT
351 . el \{ .ie "\$2"draft" \
352 . ds doc-volume DRAFT
353 . el .if "\$2"paper" \
354 . ds doc-volume UNTITLED
357 . if d doc-volume-ds-\$3 \
358 . ds doc-volume "\*[doc-volume-ds-\$3]
362 . if "\*[doc-volume]"LOCAL" \
373 .\" NS doc-default-operating-system global string
374 .\" NS the exact (default) version of the operating system
376 .\" NS override this in `mdoc.local', if necessary
378 .ds doc-default-operating-system BSD
381 .\" NS doc-operating-system global string
382 .\" NS the exact version of the operating system
384 .ds doc-operating-system
387 .\" NS Os user macro (not parsed, not callable)
388 .\" NS operating system
391 .\" NS doc-operating-system
392 .\" NS doc-command-name
394 .\" NS local variables:
395 .\" NS doc-operating-system-XXX-XXX
397 .\" NS width register `Os' set above
399 .ds doc-operating-system-ATT-7 7th\~Edition
400 .als doc-operating-system-ATT-7th doc-operating-system-ATT-7
401 .ds doc-operating-system-ATT-3 System\~III
402 .als doc-operating-system-ATT-III doc-operating-system-ATT-3
403 .ds doc-operating-system-ATT-V System\~V
404 .ds doc-operating-system-ATT-V.2 System\~V Release\~2
405 .ds doc-operating-system-ATT-V.3 System\~V Release\~3
406 .ds doc-operating-system-ATT-V.4 System\~V Release\~4
408 .ds doc-operating-system-BSD-3 3rd\~Berkeley Distribution
409 .ds doc-operating-system-BSD-4 4th\~Berkeley Distribution
410 .ds doc-operating-system-BSD-4.1 4.1\~Berkeley Distribution
411 .ds doc-operating-system-BSD-4.2 4.2\~Berkeley Distribution
412 .ds doc-operating-system-BSD-4.3 4.3\~Berkeley Distribution
413 .ds doc-operating-system-BSD-4.3T 4.3-Tahoe Berkeley Distribution
414 .ds doc-operating-system-BSD-4.3R 4.3-Reno Berkeley Distribution
415 .als doc-operating-system-BSD-4.3t doc-operating-system-BSD-4.3T
416 .als doc-operating-system-BSD-4.3r doc-operating-system-BSD-4.3R
417 .ds doc-operating-system-BSD-4.4 4.4BSD
419 .ds doc-operating-system-NetBSD-0.8 0.8
420 .ds doc-operating-system-NetBSD-0.8a 0.8A
421 .ds doc-operating-system-NetBSD-0.9 0.9
422 .ds doc-operating-system-NetBSD-0.9a 0.9A
423 .ds doc-operating-system-NetBSD-1.0 1.0
424 .ds doc-operating-system-NetBSD-1.0a 1.0A
425 .ds doc-operating-system-NetBSD-1.1 1.1
426 .ds doc-operating-system-NetBSD-1.2 1.2
427 .ds doc-operating-system-NetBSD-1.2a 1.2A
428 .ds doc-operating-system-NetBSD-1.2b 1.2B
429 .ds doc-operating-system-NetBSD-1.2c 1.2C
430 .ds doc-operating-system-NetBSD-1.2d 1.2D
431 .ds doc-operating-system-NetBSD-1.2e 1.2E
432 .ds doc-operating-system-NetBSD-1.3 1.3
433 .ds doc-operating-system-NetBSD-1.3a 1.3A
434 .ds doc-operating-system-NetBSD-1.4 1.4
435 .ds doc-operating-system-NetBSD-1.4.1 1.4.1
436 .ds doc-operating-system-NetBSD-1.4.2 1.4.2
437 .ds doc-operating-system-NetBSD-1.4.3 1.4.3
438 .ds doc-operating-system-NetBSD-1.5 1.5
439 .ds doc-operating-system-NetBSD-1.5.1 1.5.1
440 .ds doc-operating-system-NetBSD-1.5.2 1.5.2
441 .ds doc-operating-system-NetBSD-1.5.3 1.5.3
442 .ds doc-operating-system-NetBSD-1.6 1.6
443 .ds doc-operating-system-NetBSD-1.6.1 1.6.1
444 .ds doc-operating-system-NetBSD-1.6.2 1.6.2
445 .ds doc-operating-system-NetBSD-1.6.3 1.6.3
446 .ds doc-operating-system-NetBSD-2.0 2.0
447 .ds doc-operating-system-NetBSD-2.0.1 2.0.1
448 .ds doc-operating-system-NetBSD-2.0.2 2.0.2
449 .ds doc-operating-system-NetBSD-2.0.3 2.0.3
450 .ds doc-operating-system-NetBSD-2.1 2.1
451 .ds doc-operating-system-NetBSD-3.0 3.0
452 .ds doc-operating-system-NetBSD-3.0.1 3.0.1
453 .ds doc-operating-system-NetBSD-3.0.2 3.0.2
454 .ds doc-operating-system-NetBSD-3.1 3.1
455 .ds doc-operating-system-NetBSD-4.0 4.0
456 .ds doc-operating-system-NetBSD-4.0.1 4.0.1
458 .ds doc-operating-system-FreeBSD-1.0 1.0
459 .ds doc-operating-system-FreeBSD-1.1 1.1
460 .ds doc-operating-system-FreeBSD-1.1.5 1.1.5
461 .ds doc-operating-system-FreeBSD-1.1.5.1 1.1.5.1
462 .ds doc-operating-system-FreeBSD-2.0 2.0
463 .ds doc-operating-system-FreeBSD-2.0.5 2.0.5
464 .ds doc-operating-system-FreeBSD-2.1 2.1
465 .ds doc-operating-system-FreeBSD-2.1.5 2.1.5
466 .ds doc-operating-system-FreeBSD-2.1.6 2.1.6
467 .ds doc-operating-system-FreeBSD-2.1.7 2.1.7
468 .ds doc-operating-system-FreeBSD-2.2 2.2
469 .ds doc-operating-system-FreeBSD-2.2.1 2.2.1
470 .ds doc-operating-system-FreeBSD-2.2.2 2.2.2
471 .ds doc-operating-system-FreeBSD-2.2.5 2.2.5
472 .ds doc-operating-system-FreeBSD-2.2.6 2.2.6
473 .ds doc-operating-system-FreeBSD-2.2.7 2.2.7
474 .ds doc-operating-system-FreeBSD-2.2.8 2.2.8
475 .ds doc-operating-system-FreeBSD-3.0 3.0
476 .ds doc-operating-system-FreeBSD-3.1 3.1
477 .ds doc-operating-system-FreeBSD-3.2 3.2
478 .ds doc-operating-system-FreeBSD-3.3 3.3
479 .ds doc-operating-system-FreeBSD-3.4 3.4
480 .ds doc-operating-system-FreeBSD-3.5 3.5
481 .ds doc-operating-system-FreeBSD-4.0 4.0
482 .ds doc-operating-system-FreeBSD-4.1 4.1
483 .ds doc-operating-system-FreeBSD-4.1.1 4.1.1
484 .ds doc-operating-system-FreeBSD-4.2 4.2
485 .ds doc-operating-system-FreeBSD-4.3 4.3
486 .ds doc-operating-system-FreeBSD-4.4 4.4
487 .ds doc-operating-system-FreeBSD-4.5 4.5
488 .ds doc-operating-system-FreeBSD-4.6 4.6
489 .ds doc-operating-system-FreeBSD-4.6.2 4.6.2
490 .ds doc-operating-system-FreeBSD-4.7 4.7
491 .ds doc-operating-system-FreeBSD-4.8 4.8
492 .ds doc-operating-system-FreeBSD-4.9 4.9
493 .ds doc-operating-system-FreeBSD-4.10 4.10
494 .ds doc-operating-system-FreeBSD-4.11 4.11
495 .ds doc-operating-system-FreeBSD-5.0 5.0
496 .ds doc-operating-system-FreeBSD-5.1 5.1
497 .ds doc-operating-system-FreeBSD-5.2 5.2
498 .ds doc-operating-system-FreeBSD-5.2.1 5.2.1
499 .ds doc-operating-system-FreeBSD-5.3 5.3
500 .ds doc-operating-system-FreeBSD-5.4 5.4
501 .ds doc-operating-system-FreeBSD-5.5 5.5
502 .ds doc-operating-system-FreeBSD-6.0 6.0
503 .ds doc-operating-system-FreeBSD-6.1 6.1
504 .ds doc-operating-system-FreeBSD-6.2 6.2
505 .ds doc-operating-system-FreeBSD-6.3 6.3
506 .ds doc-operating-system-FreeBSD-6.4 6.4
507 .ds doc-operating-system-FreeBSD-7.0 7.0
508 .ds doc-operating-system-FreeBSD-7.1 7.1
510 .ds doc-operating-system-Darwin-8.0.0 8.0.0
511 .ds doc-operating-system-Darwin-8.1.0 8.1.0
512 .ds doc-operating-system-Darwin-8.2.0 8.2.0
513 .ds doc-operating-system-Darwin-8.3.0 8.3.0
514 .ds doc-operating-system-Darwin-8.4.0 8.4.0
515 .ds doc-operating-system-Darwin-8.5.0 8.5.0
516 .ds doc-operating-system-Darwin-8.6.0 8.6.0
517 .ds doc-operating-system-Darwin-8.7.0 8.7.0
518 .ds doc-operating-system-Darwin-8.8.0 8.8.0
519 .ds doc-operating-system-Darwin-8.9.0 8.9.0
520 .ds doc-operating-system-Darwin-8.10.0 8.10.0
521 .ds doc-operating-system-Darwin-8.11.0 8.11.0
522 .ds doc-operating-system-Darwin-9.0.0 9.0.0
523 .ds doc-operating-system-Darwin-9.1.0 9.1.0
524 .ds doc-operating-system-Darwin-9.2.0 9.2.0
525 .ds doc-operating-system-Darwin-9.3.0 9.3.0
526 .ds doc-operating-system-Darwin-9.4.0 9.4.0
527 .ds doc-operating-system-Darwin-9.5.0 9.5.0
528 .ds doc-operating-system-Darwin-9.6.0 9.6.0
530 .ds doc-operating-system-DragonFly-1.0 1.0
531 .ds doc-operating-system-DragonFly-1.1 1.1
532 .ds doc-operating-system-DragonFly-1.2 1.2
533 .ds doc-operating-system-DragonFly-1.3 1.3
534 .ds doc-operating-system-DragonFly-1.4 1.4
535 .ds doc-operating-system-DragonFly-1.5 1.5
536 .ds doc-operating-system-DragonFly-1.6 1.6
537 .ds doc-operating-system-DragonFly-1.8 1.8
538 .ds doc-operating-system-DragonFly-1.8.1 1.8.1
539 .ds doc-operating-system-DragonFly-1.10 1.10
540 .ds doc-operating-system-DragonFly-1.12 1.12
541 .ds doc-operating-system-DragonFly-1.12.2 1.12.2
542 .ds doc-operating-system-DragonFly-2.0 2.0
545 . ds doc-command-name
548 . ds doc-operating-system "\*[doc-default-operating-system]
549 . el \{ .ie "\$1"ATT" \{\
550 . ds doc-operating-system AT&T
552 . ie d doc-operating-system-ATT-\$2 \
553 . as doc-operating-system " \*[doc-operating-system-ATT-\$2]
555 . as doc-operating-system " UNIX
557 . el \{ .ie "\$1"BSD" \{\
559 . ie d doc-operating-system-BSD-\$2 \
560 . ds doc-operating-system "\*[doc-operating-system-BSD-\$2]
562 . tm mdoc warning: .Os: Unknown BSD version `\$2' (#\n[.c])
564 . el \{ .ie "\$1"FreeBSD" \{\
565 . ds doc-operating-system FreeBSD
567 . ie d doc-operating-system-FreeBSD-\$2 \
568 . as doc-operating-system \~\*[doc-operating-system-FreeBSD-\$2]
570 . tm mdoc warning: .Os: Unknown FreeBSD version `\$2' (#\n[.c])
572 . el \{ .ie "\$1"NetBSD" \{\
573 . ds doc-operating-system NetBSD
575 . ie d doc-operating-system-NetBSD-\$2 \
576 . as doc-operating-system \~\*[doc-operating-system-NetBSD-\$2]
578 . tm mdoc warning: .Os: Unknown NetBSD version `\$2' (#\n[.c])
580 . el \{ .ie "\$1"Darwin" \{\
581 . ds doc-operating-system Darwin
583 . ie d doc-operating-system-Darwin-\$2 \
584 . as doc-operating-system \~\*[doc-operating-system-Darwin-\$2]
586 . tm mdoc warning: .Os: Unknown Darwin version `\$2' (#\n[.c])
589 . ds doc-operating-system \$1
591 . as doc-operating-system " \$2
596 .\" NS doc-date-string global string
597 .\" NS the manual page date as set by `Dd'
602 .\" NS Dd user macro (not parsed, not callable)
603 .\" NS set document date
606 .\" NS doc-date-string
607 .\" NS doc-command-name
609 .\" NS local variables:
612 .\" NS width register `Dd' set above
614 .ds doc-date-1 January
615 .ds doc-date-2 February
621 .ds doc-date-8 August
622 .ds doc-date-9 September
623 .ds doc-date-10 October
624 .ds doc-date-11 November
625 .ds doc-date-12 December
628 . ds doc-command-name
632 . ds doc-date-string \$1\~\$2 \$3
634 . ds doc-date-string "\*[doc-date-\n[mo]]
635 . as doc-date-string \~\n[dy], \n[year]
639 . ds doc-date-string Epoch
643 .\" NS doc-hyphen-flags global register
644 .\" NS the parameter for the `.hy' request
646 .\" NS override this in `mdoc.local', if necessary.
648 .nr doc-hyphen-flags 12
651 .\" NS doc-header macro
652 .\" NS print page header
654 .\" NS local variables:
660 . doc-setup-page-layout
662 . sp \n[doc-header-space]u
663 . nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\f[]'
664 . nr doc-reg-dh1 \w'\*[doc-caption-font2]\*[doc-volume]\f[]'
665 . if (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
666 . while (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
667 . substring doc-header-string 0 -2
668 . nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\|.\|.\|.\f[]'
670 . as doc-header-string "\|.\|.\|.
672 . 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
674 . sp \n[doc-header-space]u
682 .\" NS doc-footer macro
683 .\" NS print page footer
689 . ev doc-caption-enviroment
690 . doc-setup-page-layout
691 . sp \n[doc-footer-space]u
694 . tl
\a%
\a\*[doc-caption-font2]\*[doc-date-string]\f[]
\a\*[doc-caption-font]\*[doc-operating-system]\f[]
\a
696 . tl
\a\*[doc-caption-font]\*[doc-operating-system]\f[]
\a\*[doc-caption-font2]\*[doc-date-string]\f[]
\a%
\a
699 . tl
\a\*[doc-caption-font]\*[doc-operating-system]\f[]
\a\*[doc-caption-font2]\*[doc-date-string]\f[]
\a%
\a
706 .\" NS doc-check-depth macro
707 .\" NS check paired macros
710 . if \n[doc-list-depth] \{\
711 . tm mdoc warning: A .Bl directive has no matching .El (#\n[.c])
712 . nr doc-list-depth 0
714 . if \n[doc-display-depth] \{\
715 . tm mdoc warning: A .Bd directive has no matching .Ed (#\n[.c])
716 . nr doc-display-depth 0
718 . if \n[doc-fontmode-depth] \{\
719 . tm mdoc warning: A .Bf directive has no matching .Ef (#\n[.c])
720 . nr doc-fontmode-depth 0
725 .\" NS doc-end-macro macro
729 . \" We may still have a partial line in the environment. If this is the
730 . \" case, and we happen to be on the last line of the page, the `.fl'
731 . \" request will cause the page to be ejected and troff will immediately
732 . \" exit. If we are in nroff mode, this would be unfortunate, since we
733 . \" would never get a chance to output the footer. So we fudge the page
734 . \" length to make sure that the last page is never ejected until we want
745 . 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
746 . \" suppress empty lines after the footer
752 .\" NS doc-paragraph macro
753 .\" NS insert a paragraph
756 . sp \n[doc-paragraph-space]u
763 .\" NS Pp user macro (not parsed, not callable)
766 .\" NS width register `Pp' set above
768 .als Pp doc-paragraph
771 .\" NS Lp user macro (not parsed, not callable)
774 .\" NS width register `Lp' set above
776 .als Lp doc-paragraph
780 . tm Not a \-mdoc command: .LP (#\n[.c])
785 . tm Not a \-mdoc command: .PP (#\n[.c])
790 . tm Not a \-mdoc command: .pp (#\n[.c])
795 . tm Not a \-mdoc command: .SH (#\n[.c])
799 .\" NS Nd user macro (not parsed, not callable)
800 .\" NS print name description
802 .\" NS width register `Nd' set above
809 .\" NS doc-in-synopsis-section global register (bool)
810 .\" NS whether we are in the `synopsis' section
812 .nr doc-in-synopsis-section 0
815 .\" NS doc-in-library-section global register (bool)
816 .\" NS whether we are in the `library' section
818 .nr doc-in-library-section 0
821 .\" NS doc-in-see-also-section global register (bool)
822 .\" NS whether we are in the `see also' section
824 .nr doc-in-see-also-section 0
827 .\" NS doc-in-files-section global register (bool)
828 .\" NS whether we are in the `files' section
830 .nr doc-in-files-section 0
833 .\" NS doc-in-authors-section global register (bool)
834 .\" NS whether we are in the `authors' section
836 .nr doc-in-authors-section 0
839 .\" NS doc-first-parameter macro
840 .\" NS return first parameter
842 .\" NS local variables:
845 .de doc-first-parameter
846 . ds doc-str-dfp "\$1
850 .\" NS Sh user macro (not callable)
851 .\" NS section headers
854 .\" NS doc-func-args-processed
855 .\" NS doc-func-count
856 .\" NS doc-in-authors-section
857 .\" NS doc-in-files-section
858 .\" NS doc-in-library-section
859 .\" NS doc-in-see-also-section
860 .\" NS doc-in-synopsis-section
861 .\" NS doc-indent-synopsis
862 .\" NS doc-indent-synopsis-active
864 .\" NS doc-num-func-args
866 .\" NS local variables:
869 .\" NS doc-section-XXX
871 .\" NS width register `Sh' set in doc-common
873 .ds doc-section-name NAME
874 .ds doc-section-synopsis SYNOPSIS
875 .ds doc-section-library LIBRARY
876 .ds doc-section-description DESCRIPTION
877 .ds doc-section-see-also SEE
878 .ds doc-section-files FILES
879 .ds doc-section-authors AUTHORS
882 . ie \n[doc-arg-limit] \{\
883 . \" we only allow `Sh' within `Sh'; it will change the font back to
885 . ie "\*[doc-macro-name]"Sh" \{\
887 . ie (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \{\
888 . nr doc-curr-font \n[.f]
889 . nr doc-curr-size \n[.ps]
890 . nop \*[doc-Sh-font]\c
891 . doc-print-recursive
894 . tm Usage: .Sh section_name ... (#\n[.c])
898 . tm Usage: .Sh not callable by other macros (#\n[.c])
903 . tm Usage: .Sh section_name ... (#\n[.c])
907 . ds doc-macro-name Sh
913 . \" this resolves e.g. `.Sh "SEE ALSO"'
914 . doc-first-parameter \$*
916 . ie "\*[doc-str-dfp]"\*[doc-section-name]" \{\
921 . nr doc-in-synopsis-section 0
922 . nr doc-in-library-section 0
923 . nr doc-in-see-also-section 0
924 . nr doc-in-files-section 0
925 . nr doc-in-authors-section 0
927 . ie "\*[doc-str-dfp]"\*[doc-section-synopsis]" \{\
930 . nr doc-in-synopsis-section 1
931 . nr doc-indent-synopsis 0
932 . nr doc-indent-synopsis-active 0
934 . el \{ .ie "\*[doc-str-dfp]"\*[doc-section-library]" \{\
935 . nr doc-in-library-section 1
937 . el \{ .ie "\*[doc-str-dfp]"\*[doc-section-description]" \{\
939 . nr doc-func-count 0
940 . nr doc-func-args-processed 0
941 . nr doc-num-func-args 0
943 . el \{ .ie "\*[doc-str-dfp]"\*[doc-section-see-also]" \{\
946 . nr doc-in-see-also-section 1
948 . el \{ .ie "\*[doc-str-dfp]"\*[doc-section-files]" \
949 . nr doc-in-files-section 1
950 . el .if "\*[doc-str-dfp]"\*[doc-section-authors]" \
951 . nr doc-in-authors-section 1
955 . nr doc-have-author 0
958 . doc-setup-page-layout
967 . nr doc-reg-Sh \n[.ss]
968 . nr doc-reg-Sh1 \n[.sss]
969 . ss (\n[.ss] * 5 / 3) (\n[.sss] * 5 / 3)
973 . nr doc-curr-font \n[.f]
974 . nr doc-curr-size \n[.ps]
975 . nop \*[doc-Sh-font]\c
976 . doc-print-recursive
979 . ss \n[doc-reg-Sh] \n[doc-reg-Sh1]
981 . in +\n[doc-subheader-indent]u
989 .\" NS Ss user macro (not callable)
992 .\" NS local variable:
996 .\" NS width register `Ss' set above
999 . ie \n[doc-arg-limit] \{\
1000 . \" we only allow `Ss' within `Ss'; it will change the font back to
1002 . ie "\*[doc-macro-name]"Ss" \{\
1004 . ie (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \{\
1005 . nr doc-curr-font \n[.f]
1006 . nr doc-curr-size \n[.ps]
1007 . nop \*[doc-Sh-font]\c
1008 . doc-print-recursive
1011 . tm Usage: .Ss subsection_name ... (#\n[.c])
1015 . tm Usage: .Ss not callable by other macros (#\n[.c])
1020 . tm Usage: .Ss subsection_name ... (#\n[.c])
1024 . ds doc-macro-name Ss
1025 . doc-parse-args \$@
1032 . nr doc-reg-Ss \n[.ss]
1033 . nr doc-reg-Ss1 \n[.sss]
1034 . ss (\n[.ss] * 5 / 4) (\n[.sss] * 5 / 4)
1037 . nr doc-curr-font \n[.f]
1038 . nr doc-curr-size \n[.ps]
1039 . nop \*[doc-Sh-font]\c
1040 . doc-print-recursive
1042 . ss \n[doc-reg-Ss] \n[doc-reg-Ss1]
1055 .\" NS Rd macro (not parsed, not callable)
1056 .\" NS print global register dump to stderr
1058 .\" NS local variables:
1062 . tm MDOC GLOBAL REGISTER DUMP
1063 . tm doc-macro-name == `\*[doc-macro-name]'
1064 . tm doc-arg-limit == \n[doc-arg-limit]
1065 . tm doc-num-args == \n[doc-num-args]
1066 . tm doc-arg-ptr == \n[doc-arg-ptr]
1069 . while (\n[doc-reg-Rd] <= \n[doc-arg-limit]) \{\
1070 . tm doc-arg\n[doc-reg-Rd] == `\*[doc-arg\n[doc-reg-Rd]]'
1071 . tm doc-type\n[doc-reg-Rd] == \n[doc-type\n[doc-reg-Rd]]
1072 . tm doc-space\n[doc-reg-Rd] == `\*[doc-space\n[doc-reg-Rd]]'
1076 . tm doc-curr-font == \n[doc-curr-font]
1077 . tm doc-curr-size == \n[doc-curr-size]
1078 . tm doc-indent-synopsis == \n[doc-indent-synopsis]
1079 . tm doc-indent-synopsis-active == \n[doc-indent-synopsis-active]
1080 . tm doc-have-decl == \n[doc-have-decl]
1081 . tm doc-have-var == \n[doc-have-var]
1082 . tm doc-command-name == `\*[doc-command-name]'
1083 . tm doc-quote-left == `\*[doc-quote-left]'
1084 . tm doc-quote-right == `\*[doc-quote-right]'
1085 . tm doc-nesting-level == \n[doc-nesting-level]
1086 . tm doc-in-list == \n[doc-in-list]
1087 . tm doc-space == `\*[doc-space]'
1088 . tm doc-saved-space == `\*[doc-saved-space]'
1089 . tm doc-space-mode == \n[doc-space-mode]
1090 . tm doc-have-space == \n[doc-have-space]
1091 . tm doc-have-slot == \n[doc-have-slot]
1092 . tm doc-keep-type == \n[doc-keep-type]
1093 . tm doc-display-depth == \n[doc-display-depth]
1094 . tm doc-is-compact == \n[doc-is-compact]
1097 . while (\n[doc-reg-Rd] <= \n[doc-display-depth]) \{\
1098 . tm doc-display-type-stack\n[doc-reg-Rd] == `\*[doc-display-type-stack\n[doc-reg-Rd]]'
1099 . tm doc-display-indent-stack\n[doc-reg-Rd] == \n[doc-display-indent-stack\n[doc-reg-Rd]]
1100 . tm doc-display-ad-stack\n[doc-reg-Rd] == \n[doc-display-ad-stack\n[doc-reg-Rd]]
1101 . tm doc-display-fi-stack\n[doc-reg-Rd] == \n[doc-display-fi-stack\n[doc-reg-Rd]]
1102 . tm doc-display-ft-stack\n[doc-reg-Rd] == \n[doc-display-ft-stack\n[doc-reg-Rd]]
1103 . tm doc-display-ps-stack\n[doc-reg-Rd] == \n[doc-display-ps-stack\n[doc-reg-Rd]]
1107 . tm doc-fontmode-depth == \n[doc-fontmode-depth]
1110 . while (\n[doc-reg-Rd] <= \n[doc-fontmode-depth]) \{\
1111 . tm doc-fontmode-font-stack\n[doc-reg-Rd] == `\n[doc-fontmode-font-stack\n[doc-reg-Rd]]'
1112 . tm doc-fontmode-size-stack\n[doc-reg-Rd] == `\n[doc-fontmode-size-stack\n[doc-reg-Rd]]'
1116 . tm doc-list-depth == \n[doc-list-depth]
1119 . while (\n[doc-reg-Rd] <= \n[doc-list-depth]) \{\
1120 . tm doc-list-type-stack\n[doc-reg-Rd] == `\*[doc-list-type-stack\n[doc-reg-Rd]]'
1121 . tm doc-list-have-indent-stack\n[doc-reg-Rd] == \n[doc-list-have-indent-stack\n[doc-reg-Rd]]
1122 . tm doc-list-indent-stack\n[doc-reg-Rd] == \n[doc-list-indent-stack\n[doc-reg-Rd]]
1123 . tm doc-compact-list-stack\n[doc-reg-Rd] == \n[doc-compact-list-stack\n[doc-reg-Rd]]
1124 . tm doc-tag-prefix-stack\n[doc-reg-Rd] == `\*[doc-tag-prefix-stack\n[doc-reg-Rd]]'
1125 . tm doc-tag-width-stack\n[doc-reg-Rd] == `\*[doc-tag-width-stack\n[doc-reg-Rd]]'
1126 . tm doc-list-offset-stack\n[doc-reg-Rd] == \n[doc-list-offset-stack\n[doc-reg-Rd]]
1127 . tm doc-enum-list-count-stack\n[doc-reg-Rd] == \n[doc-enum-list-count-stack\n[doc-reg-Rd]]
1131 . tm doc-saved-Pa-font == `\*[doc-saved-Pa-font]'
1132 . tm doc-curr-type == \n[doc-curr-type]
1133 . tm doc-curr-arg == `\*[doc-curr-arg]'
1134 . tm doc-diag-list-input-line-count == \n[doc-diag-list-input-line-count]
1135 . tm doc-num-columns == \n[doc-num-columns]
1136 . tm doc-column-indent-width == \n[doc-column-indent-width]
1137 . tm doc-is-func == \n[doc-is-func]
1138 . tm doc-have-old-func == \n[doc-have-old-func]
1139 . tm doc-func-arg-count == \n[doc-func-arg-count]
1140 . tm doc-func-arg == `\*[doc-func-arg]'
1141 . tm doc-num-func-args == \n[doc-num-func-args]
1142 . tm doc-func-args-processed == \n[doc-func-args-processed]
1143 . tm doc-have-func == \n[doc-have-func]
1144 . tm doc-is-reference == \n[doc-is-reference]
1145 . tm doc-reference-count == \n[doc-reference-count]
1146 . tm doc-author-count == \n[doc-author-count]
1149 . while (\n[doc-reg-Rd] <= \n[doc-author-count]) \{\
1150 . tm doc-author-name\n[doc-reg-Rd] == `\*[doc-author-name\n[doc-reg-Rd]]'
1154 . tm doc-book-count == \n[doc-book-count]
1155 . tm doc-book-name == `\*[doc-book-name]'
1156 . tm doc-date-count == \n[doc-date-count]
1157 . tm doc-date == `\*[doc-date]'
1158 . tm doc-publisher-count == \n[doc-publisher-count]
1159 . tm doc-publisher-name == `\*[doc-publisher-name]'
1160 . tm doc-journal-count == \n[doc-journal-count]
1161 . tm doc-journal-name == `\*[doc-journal-name]'
1162 . tm doc-issue-count == \n[doc-issue-count]
1163 . tm doc-issue-name == `\*[doc-issue-name]'
1164 . tm doc-optional-count == \n[doc-optional-count]
1165 . tm doc-optional-string == `\*[doc-optional-string]'
1166 . tm doc-page-number-count == \n[doc-page-number-count]
1167 . tm doc-page-number-string == `\*[doc-page-number-string]'
1168 . tm doc-corporate-count == \n[doc-corporate-count]
1169 . tm doc-corporate-name == `\*[doc-corporate-name]'
1170 . tm doc-report-count == \n[doc-report-count]
1171 . tm doc-report-name == `\*[doc-report-name]'
1172 . tm doc-reference-title-count == \n[doc-reference-title-count]
1173 . tm doc-reference-title-name == `\*[doc-reference-title-name]'
1174 . tm doc-reference-title-name-for-book == `\*[doc-reference-title-name-for-book]'
1175 . tm doc-url-count == \n[doc-url-count]
1176 . tm doc-url-name == `\*[doc-url-name]'
1177 . tm doc-volume-count == \n[doc-volume-count]
1178 . tm doc-volume-name == `\*[doc-volume-name]'
1179 . tm doc-have-author == \n[doc-have-author]
1181 . tm doc-document-title == `\*[doc-document-title]'
1182 . tm doc-volume == `\*[doc-volume]'
1183 . tm doc-section == `\*[doc-section]'
1184 . tm doc-operating-system == `\*[doc-operating-system]'
1185 . tm doc-date-string == `\*[doc-date-string]'
1186 . tm doc-header-space == \n[doc-header-space]
1187 . tm doc-footer-space == \n[doc-footer-space]
1188 . tm doc-display-vertical == \n[doc-display-vertical]
1189 . tm doc-header-string == `\*[doc-header-string]'
1190 . tm doc-in-synopsis-section == \n[doc-in-synopsis-section]
1191 . tm doc-in-library-section == \n[doc-in-library-section]
1192 . tm doc-in-see-also-section == \n[doc-in-see-also-section]
1193 . tm doc-in-files-section == \n[doc-in-files-section]
1194 . tm doc-in-authors-section == \n[doc-in-authors-section]
1196 . tm END OF GLOBAL REGISTER DUMP