|
|
1.1 ! root 1: .\" This file contains a combination of the BSD -man macros and the Sprite ! 2: .\" man macro additions which are stored in tmac.sprite. This file is ! 3: .\" useful for sending to UNIX systems with Sprite man pages, so that the ! 4: .\" man pages may be formatted correctly. ! 5: .\" ! 6: .\" Copyright (c) 1980 Regents of the University of California. ! 7: .\" All rights reserved. The Berkeley software License Agreement ! 8: .\" specifies the terms and conditions for redistribution. ! 9: .\" ! 10: .\" @(#)tmac.an.new 6.3 (Berkeley) 2/2/86 ! 11: .\" ! 12: ' DT, PD, SM, and B macros invoked internally. ! 13: ' # month name ! 14: .if "\nd"0" .nr m \n(mo-1 ! 15: .if "\nm"0" .ds ]m January ! 16: .if "\nm"1" .ds ]m February ! 17: .if "\nm"2" .ds ]m March ! 18: .if "\nm"3" .ds ]m April ! 19: .if "\nm"4" .ds ]m May ! 20: .if "\nm"5" .ds ]m June ! 21: .if "\nm"6" .ds ]m July ! 22: .if "\nm"7" .ds ]m August ! 23: .if "\nm"8" .ds ]m September ! 24: .if "\nm"9" .ds ]m October ! 25: .if "\nm"10" .ds ]m November ! 26: .if "\nm"11" .ds ]m December ! 27: ' # set the date ! 28: .if n \{.nr m \nm+1 ! 29: . ie \nd .ds ]W Modified \nm/\nd/\ny ! 30: . el .ds ]W Printed \n(mo/\n(dy/\n(yr\} ! 31: .if t \{.ie \nd .ds ]W \*(]m \nd, 19\ny ! 32: . el .ds ]W \*(]m \n(dy, 19\n(yr\} ! 33: .if t .ds ]W Sprite version 1.0 ! 34: .if n .ds ]W Sprite v1.0 ! 35: .if t .tr *\(** ! 36: .ie n \{\ ! 37: . ds lq \&"\" ! 38: . ds rq \&"\" ! 39: .\} ! 40: .el \{\ ! 41: . ds rq '' ! 42: . ds lq `` ! 43: .\} ! 44: ' # reset the basic page layout ! 45: .de }E ! 46: .}f ! 47: .in \\n()Ru+\\n(INu ! 48: .ll \\n(LLu ! 49: .. ! 50: ' # default tabs ! 51: .de DT ! 52: 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i ! 53: .. ! 54: ' # set type font and size ! 55: .de }f ! 56: .ps 10 ! 57: .ft 1 ! 58: .. ! 59: ' # handle the head of the page ! 60: .de }H ! 61: .ev 1 ! 62: .}C ! 63: .ie "\*(.T"va" 'sp .1i ! 64: .el 'sp .5i ! 65: .ft 1 ! 66: .ps 10 ! 67: .tl @\\*(]H@\\*(]D@\\*(]H@ ! 68: 'sp .5i ! 69: .ev ! 70: .ns ! 71: .. ! 72: ' # handle the foot of the page ! 73: .de }F ! 74: .ev 1 ! 75: .ft 1 ! 76: .ps 10 ! 77: 'sp .5i ! 78: .tl @\\*(]W@\\*(]L@%@ ! 79: 'bp ! 80: .ev ! 81: .. ! 82: ' # the cut mark ! 83: .if !"\*(.T"vp" .ig ! 84: .de }C ! 85: .po 0i ! 86: .lt 7.45i ! 87: .tl '__''__' ! 88: .po ! 89: .lt ! 90: .. ! 91: ' # the final cut mark ! 92: .de }M ! 93: .}N ! 94: .wh -1p }C ! 95: .ll \\n(LLu ! 96: .. ! 97: ' # no runout unless there was a .TH ! 98: .de }K ! 99: .}N ! 100: .pl 1 ! 101: .ll \\n(LLu ! 102: .. ! 103: .em }K ! 104: ' # set title and heading ! 105: .de TH ! 106: .PD ! 107: .if n .nr IN .5i ! 108: .if t .nr IN .5i ! 109: .nr LL \\n(.l ! 110: .ds ]H \\$1 ! 111: .ds ]D UNKNOWN MANUAL SECTION ! 112: .if '\\$2'1' .ds ]D User Commands ! 113: .if '\\$2'1C' .ds ]D User Commands ! 114: .if '\\$2'1L' .ds ]D User Commands ! 115: .if '\\$2'6' .ds ]D Games and Demos ! 116: .if '\\$2'7' .ds ]D Tables ! 117: .if '\\$2'2' .ds ]D C Library Procedures ! 118: .if '\\$2'3' .ds ]D C Library Procedures ! 119: .if '\\$2'3C' .ds ]D C Library Procedures ! 120: .if '\\$2'3F' .ds ]D Fortran Library Procedures ! 121: .if '\\$2'3S' .ds ]D C Library Procedures ! 122: .if '\\$2'3M' .ds ]D Mathematical Library Procedures ! 123: .if '\\$2'3N' .ds ]D C Library Procedures ! 124: .if '\\$2'3R' .ds ]D RPC Services ! 125: .if '\\$2'3X' .ds ]D C Library Procedures ! 126: .if '\\$2'5' .ds ]D File Formats ! 127: .if '\\$2'4' .ds ]D Devices ! 128: .if '\\$2'8' .ds ]D User Commands ! 129: .ds ]L\" ! 130: .if !"\\$3"" .ds ]L \\$3 ! 131: .if !"\\$4"" .ds ]W \\$4 ! 132: .wh 0 }H ! 133: .if t .if !"\*(.T"va" .wh -1i }F ! 134: .if t .if "\*(.T"va" .wh -1.4i }F ! 135: .if n .wh -1.167i }F ! 136: .em }M ! 137: .if \\n(nl .bp 1 ! 138: .}E ! 139: .DT ! 140: .nr )I .5i ! 141: .nr )R 0 ! 142: .if n .na ! 143: .. ! 144: ' # section heading ! 145: .de SH ! 146: .ss 12 ! 147: .if "\\$1"SYNOPSIS" .ss 18 ! 148: .}X 0 ! 149: .nr )E 2 ! 150: .SM ! 151: \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 ! 152: .. ! 153: ' # sub section heading ! 154: .de SS ! 155: .ne 4 ! 156: .}X \\n()Ru+\\n(INu "" ! 157: \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 ! 158: .br ! 159: .. ! 160: ' # subroutine for section heading ! 161: .de }X ! 162: .}E ! 163: .ti \\$1 ! 164: .sp \\n()Pu ! 165: .ne 2 ! 166: .nr )R 0 ! 167: .fi ! 168: .it 1 }N ! 169: .B ! 170: .. ! 171: ' # end of SH (cf }X above and }N below) ! 172: .de }2 ! 173: .nr )E 0 ! 174: .}E ! 175: .nr )I .5i ! 176: .ns ! 177: .. ! 178: ' # italic ! 179: .de I ! 180: .ft 2 ! 181: .it 1 }N ! 182: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 183: .. ! 184: ' # bold ! 185: .de B ! 186: .ft 3 ! 187: .it 1 }N ! 188: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 189: .. ! 190: ' # small ! 191: .de SM ! 192: .ps 9 ! 193: .it 1 }N ! 194: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 195: .. ! 196: ' # combinations of Roman, italic, bold ! 197: .de RI ! 198: .}S 1 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 199: .. ! 200: .de RB ! 201: .}S 1 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 202: .. ! 203: .de IR ! 204: .}S 2 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 205: .. ! 206: .de IB ! 207: .}S 2 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 208: .. ! 209: .de BR ! 210: .}S 3 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 211: .. ! 212: .de BI ! 213: .}S 3 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 214: .. ! 215: ' # make special case of shift out of italic ! 216: .de }S ! 217: .ds ]F ! 218: .if "\\$1"2" .if !"\\$5"" .ds ]F\^ ! 219: .ie !"\\$4"" .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" ! 220: .el \\$3 ! 221: .}f ! 222: .. ! 223: ' # paragraph ! 224: .de LP ! 225: .PP ! 226: .. ! 227: .de PP ! 228: .sp \\n()Pu ! 229: .ne 1.1v ! 230: .}E ! 231: .nr )I .5i ! 232: .ns ! 233: .. ! 234: ' # synonym for .PP ! 235: .de P ! 236: .PP ! 237: .. ! 238: ' # paragraph distance ! 239: .de PD ! 240: .if t .nr )P .4v ! 241: .if n .nr )P 1v ! 242: .if !"\\$1"" .nr )P \\$1v ! 243: .. ! 244: ' # paragraph with hanging indent ! 245: .de HP ! 246: .sp \\n()Pu ! 247: .ne 1.1v ! 248: .if !"\\$1"" .nr )I \\$1n ! 249: .ll \\n(LLu ! 250: .in \\n()Ru+\\n(INu+\\n()Iu ! 251: .ti \\n()Ru+\\n(INu ! 252: .}f ! 253: .. ! 254: ' # indented paragraph ! 255: .de IP ! 256: .TP \\$2 ! 257: \&\\$1 ! 258: .. ! 259: ' # tagged paragraph (paragraph with hanging label) ! 260: .de TP ! 261: .if !"\\$1"" .nr )I \\$1n ! 262: .sp \\n()Pu ! 263: .ne 1.1v ! 264: .in \\n()Ru ! 265: .nr )E 1 ! 266: .ns ! 267: .it 1 }N ! 268: .di ]B ! 269: .. ! 270: ' # end of TP (cf }N below) ! 271: .de }1 ! 272: .ds ]X \&\\*(]B\\ ! 273: .nr )E 0 ! 274: .if !"\\$1"" .nr )I \\$1n ! 275: .}f ! 276: .ll \\n(LLu ! 277: .in \\n()Ru+\\n(INu+\\n()Iu ! 278: .ti \\n(INu ! 279: .ie !\\n()Iu+\\n()Ru-\w@\\*(]X@u-3p \{\\*(]X ! 280: .br\} ! 281: .el \\*(]X\h@|\\n()Iu+\\n()Ru@\c ! 282: .}f ! 283: .. ! 284: ' # handle end of 1-line features ! 285: .de }N ! 286: .if \\n()E .br ! 287: .di ! 288: .if "\\n()E"0" .}f ! 289: .if "\\n()E"1" .}1 ! 290: .if "\\n()E"2" .}2 ! 291: .nr )E 0 ! 292: .. ! 293: ' # increase relative indent ! 294: .de RS ! 295: .nr ]\\n+()p \\n()I ! 296: .nr )\\n()p \\n()R ! 297: .ie !"\\$1"" .nr )R +\\$1n ! 298: .el .nr )R +\\n()I ! 299: .nr )I .5i ! 300: .}E ! 301: .. ! 302: .de DS ! 303: .RS ! 304: .nf ! 305: .sp ! 306: .. ! 307: ' # decrease relative indent ! 308: .de RE ! 309: .if !"\\$1"" \{.ie "\\$1"0" .nr )p 1 1 ! 310: . el .nr )p \\$1 1\} ! 311: .ds ]i \\*(]I\\n()p ! 312: .ds ]r \\*(]R\\n()p ! 313: .nr )I \\*(]i ! 314: .nr )R \\*(]r ! 315: .if \\n()p .nr )p -1 ! 316: .}E ! 317: .. ! 318: .de DE ! 319: .fi ! 320: .RE ! 321: .sp.5 ! 322: .. ! 323: .nr )p 0 1 ! 324: .ds ]I \\\\n(] ! 325: .ds ]R \\\\n() ! 326: .bd S B 3 ! 327: .if t .ds R \(rg ! 328: .if n .ds R (Reg.) ! 329: .ds S \s10 ! 330: .hy 14 ! 331: .if "\*(.T"va" .po -0.4i ! 332: .\" This file contains extra Ditroff macros used in Sprite man pages: ! 333: .\" ! 334: .\" .HS name section [date [version]] ! 335: .\" Replacement for .TH in other man pages. See below for valid ! 336: .\" section names. ! 337: .\" ! 338: .\" .LG ! 339: .\" Increase font size; opposite of .SM ! 340: .\" ! 341: .\" .AP type name in/out [indent] ! 342: .\" Start paragraph describing an argument to a library procedure. ! 343: .\" type is type of argument (int, etc.), in/out is either "in", "out", ! 344: .\" or "in/out" to describe whether procedure reads or modifies arg, ! 345: .\" and indent is equivalent to second arg of .IP (shouldn't ever be ! 346: .\" needed; use .AS below instead) ! 347: .\" ! 348: .\" .AS [type [name]] ! 349: .\" Give maximum sizes of arguments for setting tab stops. Type and ! 350: .\" name are examples of largest possible arguments that will be passed ! 351: .\" to .AP later. If args are omitted, default tab stops are used. ! 352: .\" ! 353: .\" .BS ! 354: .\" Start box enclosure. From here until next .BE, everything will be ! 355: .\" enclosed in one large box. ! 356: .\" ! 357: .\" .BE ! 358: .\" End of box enclosure. ! 359: .\" ! 360: .\" .VS ! 361: .\" Begin vertical sidebar, for use in marking newly-changed parts ! 362: .\" of man pages. ! 363: .\" ! 364: .\" .VE ! 365: .\" End of vertical sidebar. ! 366: .\" ! 367: ' # Heading for Sprite man pages ! 368: .de HS ! 369: .PD ! 370: .DT ! 371: .AS ! 372: .if n .nr IN .5i ! 373: .if t .nr IN .5i ! 374: .nr LL \\n(.l ! 375: .ds ]S UNKNOWN SECTION (\\$2) ! 376: .if '\\$2'cmds' .ds ]S User Commands ! 377: .if '\\$2'lib' .ds ]S C Library Procedures ! 378: .if '\\$2'dev' .ds ]S Devices ! 379: .if '\\$2'tcl' .ds ]S Tcl Command Language Library ! 380: .if '\\$2'admin' .ds ]S Administrative Commands ! 381: .if '\\$2'daemons' .ds ]S Daemons ! 382: .if '\\$2'files' .ds ]S File Formats ! 383: .ds ]H \\$1 ! 384: .ds ]D \\*(]S ! 385: .ie '\\$3'' .ds ]L Printed:\\ \\ \\*(DY ! 386: .el .ds ]L Modified:\\ \\ \\$3 ! 387: .if t .ie '\\$4'' .ds ]W Sprite version 1.0 ! 388: .if t .el .ds ]W Sprite version \\$4 ! 389: .if n .ie '\\$4'' .ds ]W Sprite v.1.0 ! 390: .if n .el .ds ]W Sprite v.\\$4 ! 391: .if !"\\$3"" .ds ]L \\$3 ! 392: .wh 0 }H ! 393: .if t .wh -1i }B ! 394: .if n .wh -1.167i }F ! 395: .if \\n(nl .bp 1 ! 396: .em }M ! 397: .}E ! 398: .DT ! 399: .nr )I .5i ! 400: .nr )R 0 ! 401: .. ! 402: ' # Increase point size 1 tick ! 403: .de LG ! 404: .ps +1 ! 405: .it 1 }N ! 406: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 407: .. ! 408: ' # Start an argument description ! 409: .de AP ! 410: .ie !"\\$4"" .TP \\$4 ! 411: .el \{\ ! 412: . ie !"\\$2"" .TP \\n()Cu ! 413: . el .TP 15 ! 414: .\} ! 415: .ie !"\\$3"" \{\ ! 416: .ta \\n()Au \\n()Bu ! 417: \&\\$1 \\fI\\$2\\fP (\\$3) ! 418: .\".b ! 419: .\} ! 420: .el \{\ ! 421: .br ! 422: .ie !"\\$2"" \{\ ! 423: \&\\$1 \\fI\\$2\\fP ! 424: .\} ! 425: .el \{\ ! 426: \&\\fI\\$1\\fP ! 427: .\} ! 428: .\} ! 429: .DT ! 430: .. ! 431: ' # define tabbing values for .AP ! 432: .de AS ! 433: .nr )A 10n ! 434: .if !"\\$1"" .nr )A \\w'\\$1'u+3n ! 435: .nr )B \\n()Au+15n ! 436: .\" ! 437: .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n ! 438: .nr )C \\n()Bu+\\w'(in/out)'u+2n ! 439: .. ! 440: ' # BS - start boxed text ! 441: .de BS ! 442: .br ! 443: .mk )a ! 444: .ds )b 1 ! 445: .if n .nf ! 446: .if n .ti 0 ! 447: .if n \l'\\n(.lu\(ul' ! 448: .if n .fi ! 449: .. ! 450: ' # Special macro to handle page bottom: finish off current ! 451: ' # box/sidebar if in box/sidebar mode, then invoked standard ! 452: ' # page bottom macro. ! 453: .de }B ! 454: .if '\\*()b'1' \{\ ! 455: .ev 1 ! 456: 'ti 0 ! 457: 'nf ! 458: .if t \h'-1.5n'\L'|\\n()au-1.5v'\l'\\n(.lu+3n\(ul'\L'-|\\n()au+1.5v'\l'|0u-1.5n\(ul' ! 459: 'sp -1 ! 460: .ev ! 461: 'fi ! 462: .\} ! 463: .if '\\*()v'2' \{\ ! 464: .if t \{\ ! 465: .ev 1 ! 466: 'ti 0 ! 467: 'nf ! 468: \h'|\\n(.lu+2n'\v'-1v'\L'|\\n()au-1v\(br'\v'-|\\n()au+2v'\h'-|\\n(.lu+2n' ! 469: 'sp -1 ! 470: 'fi ! 471: .ev ! 472: .\} ! 473: .\} ! 474: .}F ! 475: .. ! 476: ' # What to do when the head of the page occurs during boxed text ! 477: ' # or vertical sidebar: update starting position for box/sidebar. ! 478: .am }H ! 479: .mk )a ! 480: .. ! 481: ' # BE - end boxed text (draw box now) ! 482: .de BE ! 483: .sp -1 ! 484: .nf ! 485: .ti 0 ! 486: .ie n \l'\\n(.lu\(ul' ! 487: .el \{ ! 488: \h'-1.5n'\L'|\\n()au-1.5v'\l'\\n(.lu+3n\(ul'\L'-|\\n()au+1.5v'\l'|0u-1.5n\(ul' ! 489: .\" \h = move left 1.5n ! 490: .\" \L = draw up, len= )a units + 1.5v ! 491: .\" \L draws a line, arg = distance. if negative, draws up. ! 492: .\" The position in reg. )a is used to draw the vertical lines. ! 493: .\" |\\n)au = distance from current loc. to )a (negative distance) ! 494: .\" -1.5v = distance above )a since there is text at )a's location ! 495: .\" \l = draw right, len= cur. line length + 3n using underrule ! 496: .\" \L = draw down, len= )a units + 1.5v ! 497: .\" \l = draw left, back to original spot ! 498: .\} ! 499: .fi ! 500: .br ! 501: .ds )b 0 ! 502: .. ! 503: ' # VS - start vertical sidebar ! 504: .de VS ! 505: .if n 'mc \s12\(br\s0 ! 506: .if t \{\ ! 507: .mk )a ! 508: .ds )v 2 ! 509: .\} ! 510: .. ! 511: ' # VE - end of vertical sidebar ! 512: .de VE ! 513: .ev 1 ! 514: .if n 'mc ! 515: .if t \{\ ! 516: .nf ! 517: .ti 0 ! 518: \h'|\\n(.lu+2n'\L'|\\n()au-1v\(br'\v'-|\\n()au+1v'\h'-|\\n(.lu+2n' ! 519: .sp -1 ! 520: .fi ! 521: .\} ! 522: .ds )v 0 ! 523: .ev ! 524: .. ! 525: .\" ! 526: .\" Define the string DY to be the current date ! 527: .\" format: month day, year ! 528: .\" ! 529: .if \n(mo-0 .ds MO January ! 530: .if \n(mo-1 .ds MO February ! 531: .if \n(mo-2 .ds MO March ! 532: .if \n(mo-3 .ds MO April ! 533: .if \n(mo-4 .ds MO May ! 534: .if \n(mo-5 .ds MO June ! 535: .if \n(mo-6 .ds MO July ! 536: .if \n(mo-7 .ds MO August ! 537: .if \n(mo-8 .ds MO September ! 538: .if \n(mo-9 .ds MO October ! 539: .if \n(mo-10 .ds MO November ! 540: .if \n(mo-11 .ds MO December ! 541: .ds DY \*(MO \n(dy, 19\n(yr
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.