|
|
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.