|
|
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.4 (Berkeley) 5/30/86 ! 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: .\} ! 56: .. ! 57: ' # reset the basic page layout ! 58: .de }E ! 59: .}f ! 60: .in \\n()Ru+\\n(INu ! 61: .ll \\n(LLu ! 62: .. ! 63: ' # default tabs ! 64: .de DT ! 65: 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i ! 66: .. ! 67: ' # set type font and size ! 68: .de }f ! 69: .ps 10 ! 70: .ft 1 ! 71: .. ! 72: ' # handle the head of the page ! 73: .de }H ! 74: .ev 1 ! 75: .}C ! 76: .ie "\*(.T"va" 'sp .1i ! 77: .el 'sp .5i ! 78: .ft 1 ! 79: .ps 10 ! 80: .tl @\\*(]H@\\*(]D@\\*(]H@ ! 81: 'sp .5i ! 82: .ev ! 83: .ns ! 84: .. ! 85: ' # handle the foot of the page ! 86: .de }F ! 87: .ev 1 ! 88: .ft 1 ! 89: .ps 10 ! 90: 'sp .5i ! 91: .tl @\\*(]W@\\*(]L@%@ ! 92: 'bp ! 93: .ev ! 94: .. ! 95: ' # the cut mark ! 96: .if n .ig ! 97: .if !\nv=2 .ig ! 98: .de }C ! 99: .po 0i ! 100: .lt 7.45i ! 101: .tl '__''__' ! 102: .po ! 103: .lt ! 104: .. ! 105: ' # the final cut mark ! 106: .de }M ! 107: .}N ! 108: .wh -1p }C ! 109: .ll \\n(LLu ! 110: .. ! 111: ' # no runout unless there was a .TH ! 112: .de }K ! 113: .}N ! 114: .pl 1 ! 115: .ll \\n(LLu ! 116: .. ! 117: .em }K ! 118: ' # set title and heading ! 119: .de TH ! 120: .PD ! 121: .DT ! 122: .if n .nr IN .5i ! 123: .if t .nr IN .5i ! 124: .nr LL \\n(.l ! 125: .ds ]H \\$1\|(\|\\$2\|) ! 126: .ie "\\$5"" .ds ]D UNIX Programmer's Manual ! 127: .el .ds ]D \\$5 ! 128: .wh 0 }H ! 129: .if t .ie !"\*(.T"va" .wh -1i }F ! 130: .if t .el .wh -1.4i }F ! 131: .if n .wh -1.167i }F ! 132: .em }M ! 133: .if \\n(nl .bp 1 ! 134: .ds ]L \\$3 ! 135: .}E ! 136: .DT ! 137: .nr )I .5i ! 138: .nr )R 0 ! 139: .if n .na ! 140: .mk ka ! 141: .if !'\\n(ka'-1' .bp ! 142: .if t \{\ ! 143: . ie "\\$4"" .ds ]W 7th Edition ! 144: . el .ds ]W \\$4 ! 145: .\} ! 146: .. ! 147: ' # section heading ! 148: .de SH ! 149: .ss 12 ! 150: .if "\\$2"SYNOPSIS" .ss 18 ! 151: .}X 0 ! 152: .nr )E 2 ! 153: .SM ! 154: \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 ! 155: .. ! 156: ' # sub section heading ! 157: .de SS ! 158: .}X \\n()Ru+\\n(INu ! 159: \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 ! 160: .br ! 161: .. ! 162: ' # subroutine for section heading ! 163: .de }X ! 164: .}E ! 165: .ti \\$1 ! 166: .sp \\n()Pu ! 167: .ne 2 ! 168: .nr )R 0 ! 169: .fi ! 170: .it 1 }N ! 171: .B ! 172: .. ! 173: ' # end of SH (cf }X above and }N below) ! 174: .de }2 ! 175: .nr )E 0 ! 176: .}E ! 177: .nr )I .5i ! 178: .ns ! 179: .. ! 180: ' # italic ! 181: .de I ! 182: .ft 2 ! 183: .it 1 }N ! 184: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 185: .. ! 186: ' # bold ! 187: .de B ! 188: .ft 3 ! 189: .it 1 }N ! 190: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 191: .. ! 192: ' # small ! 193: .de SM ! 194: .ps 9 ! 195: .it 1 }N ! 196: .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 ! 197: .. ! 198: ' # combinations of Roman, italic, bold ! 199: .de RI ! 200: .}S 1 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 201: .. ! 202: .de VS ! 203: 'if '\\$1'4' .mc \s12\(br\s0 ! 204: .. ! 205: .de VE ! 206: 'mc ! 207: .. ! 208: .de RB ! 209: .}S 1 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 210: .. ! 211: .de IR ! 212: .}S 2 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 213: .. ! 214: .de IB ! 215: .}S 2 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 216: .. ! 217: .de BR ! 218: .}S 3 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 219: .. ! 220: .de BI ! 221: .}S 3 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" ! 222: .. ! 223: ' # make special case of shift out of italic ! 224: .de }S ! 225: .ds ]F ! 226: .if "\\$1"2" .if !"\\$5"" .ds ]F\^ ! 227: .ie !"\\$4"" .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" ! 228: .el \\$3 ! 229: .}f ! 230: .. ! 231: ' # paragraph ! 232: .de LP ! 233: .PP ! 234: .. ! 235: .de PP ! 236: .sp \\n()Pu ! 237: .ne 2 ! 238: .}E ! 239: .nr )I .5i ! 240: .ns ! 241: .. ! 242: ' # synonym for .PP ! 243: .de P ! 244: .PP ! 245: .. ! 246: ' # paragraph distance ! 247: .de PD ! 248: .if t .nr )P .4v ! 249: .if n .nr )P 1v ! 250: .if !"\\$1"" .nr )P \\$1v ! 251: .. ! 252: ' # paragraph with hanging indent ! 253: .de HP ! 254: .sp \\n()Pu ! 255: .ne 2 ! 256: .if !"\\$1"" .nr )I \\$1n ! 257: .ll \\n(LLu ! 258: .in \\n()Ru+\\n(INu+\\n()Iu ! 259: .ti \\n()Ru+\\n(INu ! 260: .}f ! 261: .. ! 262: ' # indented paragraph ! 263: .de IP ! 264: .TP \\$2 ! 265: \&\\$1 ! 266: .. ! 267: ' # tagged paragraph (paragraph with hanging label) ! 268: .de TP ! 269: .if !"\\$1"" .nr )I \\$1n ! 270: .sp \\n()Pu ! 271: .ne 1.1v ! 272: .in \\n()Ru ! 273: .nr )E 1 ! 274: .ns ! 275: .it 1 }N ! 276: .di ]B ! 277: .. ! 278: ' # end of TP (cf }N below) ! 279: .de }1 ! 280: .ds ]X \&\\*(]B\\ ! 281: .nr )E 0 ! 282: .if !"\\$1"" .nr )I \\$1n ! 283: .}f ! 284: .ll \\n(LLu ! 285: .in \\n()Ru+\\n(INu+\\n()Iu ! 286: .ti \\n(INu ! 287: .ie !\\n()Iu+\\n()Ru-\w@\\*(]X@u-3p \{\\*(]X ! 288: .br\} ! 289: .el \\*(]X\h@|\\n()Iu+\\n()Ru@\c ! 290: .}f ! 291: .. ! 292: ' # handle end of 1-line features ! 293: .de }N ! 294: .if \\n()E .br ! 295: .di ! 296: .if "\\n()E"0" .}f ! 297: .if "\\n()E"1" .}1 ! 298: .if "\\n()E"2" .}2 ! 299: .nr )E 0 ! 300: .. ! 301: ' # increase relative indent ! 302: .de RS ! 303: .nr ]\\n+()p \\n()I ! 304: .nr )\\n()p \\n()R ! 305: .ie !"\\$1"" .nr )R +\\$1n ! 306: .el .nr )R +\\n()I ! 307: .nr )I .5i ! 308: .}E ! 309: .. ! 310: .de DS ! 311: .RS ! 312: .nf ! 313: .sp ! 314: .. ! 315: ' # decrease relative indent ! 316: .de RE ! 317: .if !"\\$1"" \{.ie "\\$1"0" .nr )p 1 1 ! 318: . el .nr )p \\$1 1\} ! 319: .ds ]i \\*(]I\\n()p ! 320: .ds ]r \\*(]R\\n()p ! 321: .nr )I \\*(]i ! 322: .nr )R \\*(]r ! 323: .if \\n()p .nr )p -1 ! 324: .}E ! 325: .. ! 326: .de DE ! 327: .fi ! 328: .RE ! 329: .sp .5 ! 330: .. ! 331: .nr )p 0 1 ! 332: .ds ]I \\\\n(] ! 333: .ds ]R \\\\n() ! 334: .bd S B 3 ! 335: .if t .ds R \(rg ! 336: .if n .ds R (Reg.) ! 337: .ds S \s10 ! 338: .hy 14 ! 339: .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.