|
|
1.1 ! root 1: .\" Copyright (c) 1980 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)tmac.an.new 6.5 (Berkeley) 7/5/88 ! 6: .\" ! 7: ' DT, PD, SM, and B macros invoked internally. ! 8: ' # month name ! 9: .if "\nd"0" .nr m \n(mo-1 ! 10: .if "\nm"0" .ds ]m January ! 11: .if "\nm"1" .ds ]m February ! 12: .if "\nm"2" .ds ]m March ! 13: .if "\nm"3" .ds ]m April ! 14: .if "\nm"4" .ds ]m May ! 15: .if "\nm"5" .ds ]m June ! 16: .if "\nm"6" .ds ]m July ! 17: .if "\nm"7" .ds ]m August ! 18: .if "\nm"8" .ds ]m September ! 19: .if "\nm"9" .ds ]m October ! 20: .if "\nm"10" .ds ]m November ! 21: .if "\nm"11" .ds ]m December ! 22: ' # set the date ! 23: .if n \{.nr m \nm+1 ! 24: . ie \nd .ds ]W Modified \nm/\nd/\ny ! 25: . el .ds ]W Printed \n(mo/\n(dy/\n(yr\} ! 26: .if t \{.ie \nd .ds ]W \*(]m \nd, 19\ny ! 27: . el .ds ]W \*(]m \n(dy, 19\n(yr\} ! 28: .if t .tr *\(** ! 29: .ie n \{\ ! 30: . ds lq \&"\" ! 31: . ds rq \&"\" ! 32: .\} ! 33: .el \{\ ! 34: . ds rq '' ! 35: . ds lq `` ! 36: .\} ! 37: .de AT ! 38: .if t \{\ ! 39: . ds ]W 7th Edition ! 40: . if "\\$1"3" .ds ]W 7th Edition ! 41: . if "\\$1"4" .ds ]W System III ! 42: . if "\\$1"5" \{\ ! 43: . ie "\\$2"" .ds ]W System V ! 44: . el .ds ]W System V Release \\$2 ! 45: . \} ! 46: .\} ! 47: .. ! 48: .de UC ! 49: .if t \{\ ! 50: . ds ]W 3rd Berkeley Distribution ! 51: . if "\\$1"3" .ds ]W 3rd Berkeley Distribution ! 52: . if "\\$1"4" .ds ]W 4th Berkeley Distribution ! 53: . if "\\$1"5" .ds ]W 4.2 Berkeley Distribution ! 54: . if "\\$1"6" .ds ]W 4.3 Berkeley Distribution ! 55: . if "\\$1"7" .ds ]W 4.4 Berkeley Distribution ! 56: .\} ! 57: .. ! 58: ' # reset the basic page layout ! 59: .de }E ! 60: .}f ! 61: .in \\n()Ru+\\n(INu ! 62: .ll \\n(LLu ! 63: .. ! 64: ' # default tabs ! 65: .de DT ! 66: 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i ! 67: .. ! 68: ' # set type font and size ! 69: .de }f ! 70: .ps 10 ! 71: .ft 1 ! 72: .. ! 73: ' # handle the head of the page ! 74: .de }H ! 75: .ev 1 ! 76: .}C ! 77: .ie "\*(.T"va" 'sp .1i ! 78: .el 'sp .5i ! 79: .ft 1 ! 80: .ps 10 ! 81: .tl @\\*(]H@\\*(]D@\\*(]H@ ! 82: 'sp .5i ! 83: .ev ! 84: .ns ! 85: .. ! 86: ' # handle the foot of the page ! 87: .de }F ! 88: .ev 1 ! 89: .ft 1 ! 90: .ps 10 ! 91: 'sp .5i ! 92: .tl @\\*(]W@\\*(]L@%@ ! 93: 'bp ! 94: .ev ! 95: .. ! 96: ' # the cut mark ! 97: .if n .ig ! 98: .if !\nv=2 .ig ! 99: .de }C ! 100: .po 0i ! 101: .lt 7.45i ! 102: .tl '__''__' ! 103: .po ! 104: .lt ! 105: .. ! 106: ' # the final cut mark ! 107: .de }M ! 108: .}N ! 109: .wh -1p }C ! 110: .ll \\n(LLu ! 111: .. ! 112: ' # no runout unless there was a .TH ! 113: .de }K ! 114: .}N ! 115: .pl 1 ! 116: .ll \\n(LLu ! 117: .. ! 118: .em }K ! 119: ' # set title and heading ! 120: .de TH ! 121: .PD ! 122: .DT ! 123: .if n .nr IN .5i ! 124: .if t .nr IN .5i ! 125: .nr LL \\n(.l ! 126: .ds ]H \\$1\|(\|\\$2\|) ! 127: .ie "\\$5"" .ds ]D UNIX Programmer's Manual ! 128: .el .ds ]D \\$5 ! 129: .wh 0 }H ! 130: .if t .ie !"\*(.T"va" .wh -1i }F ! 131: .if t .el .wh -1.4i }F ! 132: .if n .wh -1.167i }F ! 133: .em }M ! 134: .if \\n(nl .bp 1 ! 135: .ds ]L \\$3 ! 136: .}E ! 137: .DT ! 138: .nr )I .5i ! 139: .nr )R 0 ! 140: .if n .na ! 141: .mk ka ! 142: .if !'\\n(ka'-1' .bp ! 143: .if t \{\ ! 144: . ie "\\$4"" .ds ]W 7th Edition ! 145: . el .ds ]W \\$4 ! 146: .\} ! 147: .. ! 148: ' # section heading ! 149: .de SH ! 150: .ss 12 ! 151: .if "\\$2"SYNOPSIS" .ss 18 ! 152: .}X 0 ! 153: .nr )E 2 ! 154: .SM ! 155: \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 ! 156: .. ! 157: ' # sub section heading ! 158: .de SS ! 159: .}X \\n()Ru+\\n(INu ! 160: \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 ! 161: .br ! 162: .. ! 163: ' # subroutine for section heading ! 164: .de }X ! 165: .}E ! 166: .ti \\$1 ! 167: .sp \\n()Pu ! 168: .ne 2 ! 169: .nr )R 0 ! 170: .fi ! 171: .it 1 }N ! 172: .B ! 173: .. ! 174: ' # end of SH (cf }X above and }N below) ! 175: .de }2 ! 176: .nr )E 0 ! 177: .}E ! 178: .nr )I .5i ! 179: .ns ! 180: .. ! 181: ' # italic ! 182: .de I ! 183: .ft 2 ! 184: .it 1 }N ! 185: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 186: .. ! 187: ' # bold ! 188: .de B ! 189: .ft 3 ! 190: .it 1 }N ! 191: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 192: .. ! 193: ' # small ! 194: .de SM ! 195: .ps 9 ! 196: .it 1 }N ! 197: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 198: .. ! 199: ' # combinations of Roman, italic, bold ! 200: .de RI ! 201: .}S 1 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 202: .. ! 203: .de VS ! 204: 'if '\\$1'4' .mc \s12\(br\s0 ! 205: .. ! 206: .de VE ! 207: 'mc ! 208: .. ! 209: .de RB ! 210: .}S 1 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 211: .. ! 212: .de IR ! 213: .}S 2 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 214: .. ! 215: .de IB ! 216: .}S 2 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 217: .. ! 218: .de BR ! 219: .}S 3 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 220: .. ! 221: .de BI ! 222: .}S 3 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 223: .. ! 224: ' # make special case of shift out of italic ! 225: .de }S ! 226: .ds ]F ! 227: .if "\\$1"2" .if !"\\$5"" .ds ]F\^ ! 228: .ie !"\\$4"" .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" ! 229: .el \\$3 ! 230: .}f ! 231: .. ! 232: ' # paragraph ! 233: .de LP ! 234: .PP ! 235: .. ! 236: .de PP ! 237: .sp \\n()Pu ! 238: .ne 2 ! 239: .}E ! 240: .nr )I .5i ! 241: .ns ! 242: .. ! 243: ' # synonym for .PP ! 244: .de P ! 245: .PP ! 246: .. ! 247: ' # paragraph distance ! 248: .de PD ! 249: .if t .nr )P .4v ! 250: .if n .nr )P 1v ! 251: .if !"\\$1"" .nr )P \\$1v ! 252: .. ! 253: ' # paragraph with hanging indent ! 254: .de HP ! 255: .sp \\n()Pu ! 256: .ne 2 ! 257: .if !"\\$1"" .nr )I \\$1n ! 258: .ll \\n(LLu ! 259: .in \\n()Ru+\\n(INu+\\n()Iu ! 260: .ti \\n()Ru+\\n(INu ! 261: .}f ! 262: .. ! 263: ' # indented paragraph ! 264: .de IP ! 265: .TP \\$2 ! 266: \&\\$1 ! 267: .. ! 268: ' # tagged paragraph (paragraph with hanging label) ! 269: .de TP ! 270: .if !"\\$1"" .nr )I \\$1n ! 271: .sp \\n()Pu ! 272: .ne 1.1v ! 273: .in \\n()Ru ! 274: .nr )E 1 ! 275: .ns ! 276: .it 1 }N ! 277: .di ]B ! 278: .. ! 279: ' # end of TP (cf }N below) ! 280: .de }1 ! 281: .ds ]X \&\\*(]B\\ ! 282: .nr )E 0 ! 283: .if !"\\$1"" .nr )I \\$1n ! 284: .}f ! 285: .ll \\n(LLu ! 286: .in \\n()Ru+\\n(INu+\\n()Iu ! 287: .ti \\n(INu ! 288: .ie !\\n()Iu+\\n()Ru-\w@\\*(]X@u-3p \{\\*(]X ! 289: .br\} ! 290: .el \\*(]X\h@|\\n()Iu+\\n()Ru@\c ! 291: .}f ! 292: .. ! 293: ' # handle end of 1-line features ! 294: .de }N ! 295: .if \\n()E .br ! 296: .di ! 297: .if "\\n()E"0" .}f ! 298: .if "\\n()E"1" .}1 ! 299: .if "\\n()E"2" .}2 ! 300: .nr )E 0 ! 301: .. ! 302: ' # increase relative indent ! 303: .de RS ! 304: .nr ]\\n+()p \\n()I ! 305: .nr )\\n()p \\n()R ! 306: .ie !"\\$1"" .nr )R +\\$1n ! 307: .el .nr )R +\\n()I ! 308: .nr )I .5i ! 309: .}E ! 310: .. ! 311: .de DS ! 312: .RS ! 313: .nf ! 314: .sp ! 315: .. ! 316: ' # decrease relative indent ! 317: .de RE ! 318: .if !"\\$1"" \{.ie "\\$1"0" .nr )p 1 1 ! 319: . el .nr )p \\$1 1\} ! 320: .ds ]i \\*(]I\\n()p ! 321: .ds ]r \\*(]R\\n()p ! 322: .nr )I \\*(]i ! 323: .nr )R \\*(]r ! 324: .if \\n()p .nr )p -1 ! 325: .}E ! 326: .. ! 327: .de DE ! 328: .fi ! 329: .RE ! 330: .sp .5 ! 331: .. ! 332: .nr )p 0 1 ! 333: .ds ]I \\\\n(] ! 334: .ds ]R \\\\n() ! 335: .bd S B 3 ! 336: .if t .ds R \(rg ! 337: .if n .ds R (Reg.) ! 338: .ds S \s10 ! 339: .hy 14 ! 340: .if "\*(.T"va" .po -0.4i
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.