Commit | Line | Data |
---|---|---|
fec954f3 CL |
1 | .\" Copyright (c) 1991 The Regents of the University of California. |
2 | .\" All rights reserved. | |
3 | .\" | |
4 | .\" %sccs.include.redist.man% | |
5 | .\" | |
2ebf7612 | 6 | .\" @(#)doc 5.1 (Berkeley) %G% |
fec954f3 CL |
7 | .\" |
8 | .\" mdoc-parse - attempt to parse troff request arguments | |
9 | .\" %beginstrip% | |
10 | .if t \{\ | |
11 | . so /usr/share/tmac/tmac.doc-ditroff | |
12 | .\} | |
13 | .if n \{\ | |
14 | . so /usr/share/tmac/tmac.doc-nroff | |
15 | .\} | |
16 | .so /usr/share/tmac/tmac.doc-common | |
17 | .so /usr/share/tmac/tmac.doc-syms | |
18 | .\" .if t \{\ | |
19 | .\" . so /usr/u0/cael/man/tmac.doc-ditroff | |
20 | .\" .\} | |
21 | .\" .if n \{\ | |
22 | .\" . so /usr/u0/cael/man/tmac.doc-nroff | |
23 | .\" .\} | |
24 | .\" .so /usr/u0/cael/man/tmac.doc-common | |
25 | .\" .so /usr/u0/cael/man/tmac.doc-syms | |
26 | .\" | |
27 | .\" NS Db macro - start/stop DEBUG MODE | |
28 | .\" NS Db register DEBUG MODE | |
29 | .\" NS iN register DEBUG MODE (inline if 1, to stderr if 0 (default)) | |
30 | .nr Db 0 | |
31 | .de Db | |
32 | .ie \\n(.$==0 \{\ | |
33 | . ie \\n(Db==0 \{\ | |
34 | .tm DEBUGGING ON | |
35 | . nr Db 1 | |
36 | . \} | |
37 | . el \{\ | |
38 | .tm DEBUGGING OFF | |
39 | . nr Db 0 | |
40 | . \} | |
41 | .\} | |
42 | .el \{\ | |
43 | . if "\\$1"on" \{\ | |
44 | .tm DEBUGGING ON | |
45 | . nr Db 1 | |
46 | . \} | |
47 | . if "\\$1"off" \{\ | |
48 | .tm DEBUGGING OFF | |
49 | . nr Db 0 | |
50 | . \} | |
51 | .\} | |
52 | .. | |
53 | .\" NS aV macro - parse argument vector (recursive) (.aV arg ... ) | |
54 | .\" NS fV macro - parse argument vector (recursive) (.fV) | |
55 | .\" NS aC register argument counter (aV/fV) | |
56 | .\" NS fV register argument counter (must set to \\n(.$ prior to reuqest) (fV) | |
57 | .\" NS A[0-9] argument vector (aV/fV) | |
58 | .\" NS C[0-9] reg. arg type(1=macro, 2=arg, 3=punct-suf, 4=punct-pre) (aV/fV) | |
59 | .\" NS S[0-9] space vector (sV) | |
60 | .\" NS aP register argument pointer (aV) | |
61 | .\" NS yU local string used for debugging | |
62 | .\" NS iI local register (indent for inline debug mode) | |
63 | .\" NS mN name of calling request (set in each user requestable macro) | |
64 | .de aV | |
65 | .nr aC+1 | |
66 | .ds A\\n(aC \\$1 | |
67 | .aU \\n(aC | |
68 | .nr C\\n(aC \\n(aT | |
69 | .s\\n(aT | |
70 | .if \\n(Db \{\ | |
71 | . if \\n(aT==1 .ds yU Executable | |
72 | . if \\n(aT==2 .ds yU String | |
73 | . if \\n(aT==3 .ds yU Closing Punctuation or suffix | |
74 | . if \\n(aT==4 .ds yU Opening Punctuation or prefix | |
75 | . if \\n(iN==1 \{\ | |
76 | . br | |
77 | . nr iI \\n(.iu | |
78 | . in -\\n(iIu | |
79 | . if \\n(aC==1 \{\ | |
80 | \&\fBDEBUG(argv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c | |
81 | . \} | |
82 | \&\t\fBArgc:\fP \\n(aC \fBArgv:\fP `\\*(A\\n(aC' \fBLength:\fP \\n(sW | |
83 | \&\t\fBSpace:\fP `\\*(S\\n(aC' \fBClass:\fP \\*(yU | |
84 | . \} | |
85 | . if \\n(iN==0 \{\ | |
86 | . if \\n(aC==1 \{\ | |
87 | . tm DEBUG(argv) MACRO: `.\\*(mN' Line #: \\n(.c | |
88 | . \} | |
89 | . tm \tArgc: \\n(aC Argv: `\\*(A\\n(aC' Length: \\n(sW | |
90 | . tm \tSpace: `\\*(S\\n(aC' Class: \\*(yU | |
91 | . \} | |
92 | .\} | |
93 | .ie \\n(.$==1 \{\ | |
94 | . nr aP 0 | |
95 | . ie \\n(dZ==1 \{\ | |
96 | . if \\n(oM>1 .as b1 \\*(S0 | |
97 | . \} | |
98 | . el \{\ | |
99 | . if \\n(oM>0 .as b1 \\*(S0 | |
100 | . \} | |
101 | . ds S0 \\*(S\\n(aC | |
102 | . if \\n(Db \{\ | |
103 | . if \\n(iN==1 \{\ | |
104 | \&MACRO REQUEST: \t.\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 | |
105 | . br | |
106 | . in \\n(iIu | |
107 | . \} | |
108 | . if \\n(iN==0 \{\ | |
109 | .tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 | |
110 | . \} | |
111 | . \} | |
112 | .\} | |
113 | .el .aV \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
114 | .. | |
115 | .de fV | |
116 | .nr aC+1 | |
117 | .aU \\n(aC | |
118 | .nr C\\n(aC \\n(aT | |
119 | .s\\n(aT | |
120 | .if \\n(Db \{\ | |
121 | . if \\n(aT==1 .ds yU Executable | |
122 | . if \\n(aT==2 .ds yU String | |
123 | . if \\n(aT==3 .ds yU Closing Punctuation or suffix | |
124 | . if \\n(aT==4 .ds yU Opening Punctuation or prefix | |
125 | . if \\n(iN==1 \{\ | |
126 | . br | |
127 | . nr iI \\n(.iu | |
128 | . in -\\n(iIu | |
129 | . if \\n(aC==1 \{\ | |
130 | \&\fBDEBUG(fargv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c | |
131 | . \} | |
132 | \&\t\fBArgc:\fP \\n(aC \fBArgv:\fP `\\*(A\\n(aC' \fBLength:\fP \\n(sW | |
133 | \&\t\fBSpace:\fP `\\*(S\\n(aC' \fBClass:\fP \\*(yU | |
134 | . \} | |
135 | . if \\n(iN==0 \{\ | |
136 | . if \\n(aC==1 \{\ | |
137 | . tm DEBUG(fargv) MACRO: `.\\*(mN' Line #: \\n(.c | |
138 | . \} | |
139 | . tm \tArgc: \\n(aC Argv: `\\*(A\\n(aC' Length: \\n(sW | |
140 | . tm \tSpace: `\\*(S\\n(aC' Class: \\*(yU | |
141 | . \} | |
142 | .\} | |
143 | .ie \\n(fV==1 \{\ | |
144 | . nr aP 0 | |
145 | . ie \\n(dZ==1 \{\ | |
146 | . if \\n(oM>1 .as b1 \\*(S0 | |
147 | . \} | |
148 | . el \{\ | |
149 | . if \\n(oM>0 .as b1 \\*(S0 | |
150 | . \} | |
151 | . ds S0 \\*(S\\n(aC | |
152 | . nr fV 0 | |
153 | . if \\n(Db \{\ | |
154 | . ie \\n(iN \{\ | |
155 | \&\tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 | |
156 | . br | |
157 | . in \\n(iIu | |
158 | . \} | |
159 | . el \{\ | |
160 | .tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 | |
161 | . \} | |
162 | . \} | |
163 | .\} | |
164 | .el \{\ | |
165 | . nr fV-1 | |
166 | . fV | |
167 | .\} | |
168 | .. | |
169 | .\" NS aX macro - stuff saved strings into `b1' (used by -diag list) | |
170 | .de aX | |
171 | .nr aP+1 | |
172 | .as b1 \&\\*(A\\n(aP | |
173 | .ie \\n(fV==1 \{\ | |
174 | . nr aP 0 | |
175 | . nr fV 0 | |
176 | .\} | |
177 | .el \{\ | |
178 | . nr fV-1 | |
179 | . aX | |
180 | .\} | |
181 | .. | |
182 | .\" NS aI macro - append arg to arg vector: .aI [arg] [type] (used by .En only) | |
183 | .de aI | |
184 | .ie \\n(aC<9 \{\ | |
185 | . nr aC+1 | |
186 | . ds A\\n(aC \\$1 | |
187 | . nr C\\n(aC \\$2 | |
188 | . s\\$2 | |
189 | . ds xV S\\n(aC | |
190 | .\} | |
191 | .el \{\ | |
192 | . tm Usage: Too many arguments (maximum of 8 accepted) (#\\n(.c) | |
193 | . tm \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9 | |
194 | .\} | |
195 | .. | |
196 | .\" | |
197 | .\" NS aZ macro - print buffer (pB) and clean up arg vectors (aY) | |
198 | .de aZ | |
199 | .pB | |
200 | .aY | |
201 | .. | |
202 | .\" NS aY macro - clean up arg vector | |
203 | .de aY | |
204 | .rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 | |
205 | .rm A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 | |
206 | .rm S1 S2 S3 S4 S5 S6 S7 S8 S9 | |
207 | .nr aC 0 | |
208 | .nr aP 0 | |
209 | .. | |
210 | .\" NS pB macro - test for end of vector (eol) (print b1 buffer or divert) | |
211 | .de pB | |
212 | .ie \\n(dZ==1 \{\ | |
213 | . if \\n(oM==1 \{\&\\*(b1 | |
214 | . rm S0 | |
215 | . ds b1 | |
216 | . \} | |
217 | . if \\n(oM==0 \{\ | |
218 | . x2 | |
219 | . \} | |
220 | .\} | |
221 | .el \{\ | |
222 | . ie \\n(oM==0 \{\&\\*(b1 | |
223 | . rm S0 | |
224 | . ds b1 | |
225 | . \} | |
226 | . el \{\ | |
227 | . if ((\\n(sM==1)&(\\n(tP==0)) \{\ | |
228 | . x1 | |
229 | . \} | |
230 | . \} | |
231 | .\} | |
232 | .hy | |
233 | .. | |
234 | .\" NS x1 macro - save buffer and divert if tP flag set | |
235 | .\" NS eB diversion string | |
236 | .\" NS b2 string save of buffer | |
237 | .\" NS lK register count of lines read from input file | |
238 | .de x1 | |
239 | .nr dZ+1 | |
240 | .ds b2 \\*(b1 | |
241 | .ds b1 | |
242 | .nr lK \\n(.c | |
243 | .ev 2 | |
244 | .fi | |
245 | .di eB | |
246 | .. | |
247 | .\" | |
248 | .\" NS x2 macro - end diversion and print | |
249 | .\" NS b0 string local temporary | |
250 | .de x2 | |
251 | .br | |
252 | .di | |
253 | .ev | |
254 | .ie (\\n(.c-\\n(lK>1) \{\ | |
255 | . ds b0 \&\\*(eB\\ | |
256 | . ds b1 \\*(b2\\*(b0\\*(b1 | |
257 | .\} | |
258 | .el .ds b1 \\*(b2\\*(b1 | |
259 | \&\\*(b1 | |
260 | .rm eB b2 b0 b1 | |
261 | .nr dZ-1 | |
262 | .. | |
263 | .\" NS Fl macro - flags (appends - and prints flags) | |
264 | .\" NS cF register save current font | |
265 | .\" NS cZ register save current font size | |
266 | .de Fl | |
267 | .as b1 \&\\*(fL | |
268 | .if \\n(aC==0 \{\ | |
269 | . ie \\n(.$==0 \{\ | |
270 | . as b1 \&\|\-\|\fP\s0 | |
271 | . pB | |
272 | . \} | |
273 | . el \{\ | |
274 | . ds mN Fl | |
275 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
276 | . \} | |
277 | .\} | |
278 | .if \\n(aC>0 \{\ | |
279 | . ie (\\n(aC-\\n(aP)==0 \{\ | |
280 | . as b1 \&\|\-\fP\s0 | |
281 | . aZ | |
282 | . \} | |
283 | . el \{\ | |
284 | . nr aP+1 | |
285 | . ie \\n(C\\n(aP==1 \{\ | |
286 | . as b1 \&\|\-\fP\s0 | |
287 | . \\*(A\\n(aP | |
288 | . \} | |
289 | . el \{\ | |
290 | . nr cF \\n(.f | |
291 | . nr cZ \\n(.s | |
292 | . if \\n(C\\n(aP==3 \{\ | |
293 | . as b1 \&\|\-\| | |
294 | . \} | |
295 | . fR | |
296 | . \} | |
297 | . \} | |
298 | .\} | |
299 | .. | |
300 | .\" | |
301 | .\" NS fR macro - Fl flag recursion routine (special handling) | |
302 | .\" NS jM local register | |
303 | .\" NS jN local register | |
304 | .\" | |
305 | .de fR | |
306 | .hy 0 | |
307 | .nr jM \\n(C\\n(aP | |
308 | .ie \\n(jM==1 \{\ | |
309 | . as b1 \&\fP\s0 | |
310 | . \\*(A\\n(aP | |
311 | .\} | |
312 | .el \{\ | |
313 | . nr jN \\n(aP | |
314 | . ie \\n(jM==2 \{\ | |
315 | . ie "\\*(A\\n(aP"-" .as b1 \&\|\-\-\| | |
316 | . el .as b1 \&\|\-\\*(A\\n(aP | |
317 | . \} | |
318 | . el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0 | |
319 | . ie \\n(aC==\\n(aP \{\ | |
320 | . if \\n(jM==4 .as b1 \&\|\- | |
321 | . as b1 \&\fP\s0 | |
322 | . aZ | |
323 | . \} | |
324 | . el \{\ | |
325 | . nr aP+1 | |
326 | . ie ((\\n(C\\n(aP==3)&(\\n(C\\n(jN==4)) .as b1 \&\|\- | |
327 | . el .as b1 \&\\*(S\\n(jN | |
328 | . fR \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
329 | . \} | |
330 | .\} | |
331 | .rr jM jN | |
332 | .. | |
333 | .\" | |
334 | .\" NS nR macro - general name recursion routine | |
335 | .\" NS jM local register | |
336 | .\" NS jN local register | |
337 | .de nR | |
338 | .hy 0 | |
339 | .nr jM \\n(C\\n(aP | |
340 | .ie \\n(jM==1 \{\ | |
341 | . as b1 \&\f\\n(cF\s\\n(cZ | |
342 | . \\*(A\\n(aP | |
343 | .\} | |
344 | .el \{\ | |
345 | . nr jN \\n(aP | |
346 | . ie \\n(jM==2 .as b1 \&\\*(A\\n(aP | |
347 | . el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0 | |
348 | . ie \\n(aC==\\n(aP \{\ | |
349 | . as b1 \&\f\\n(cF\s\\n(cZ | |
350 | . aZ | |
351 | . \} | |
352 | . el \{\ | |
353 | . nr aP+1 | |
354 | . as b1 \&\\*(S\\n(jN | |
355 | . nR | |
356 | . \} | |
357 | .\} | |
358 | .rr jM jN | |
359 | .. | |
360 | .\" NS Ar macro - command line `argument' macro | |
361 | .\" | |
362 | .de Ar | |
363 | .as b1 \\*(aR | |
364 | .if \\n(aC==0 \{\ | |
365 | . ie \\n(.$==0 \{\ | |
366 | . as b1 file\ ...\fP\s0 | |
367 | . pB | |
368 | . \} | |
369 | . el \{\ | |
370 | . ds mN Ar | |
371 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
372 | . \} | |
373 | .\} | |
374 | .if \\n(aC>0 \{\ | |
375 | . ie (\\n(aC-\\n(aP)==0 \{\ | |
376 | . as b1 \&file\ ...\fP\s0 | |
377 | . aZ | |
378 | . \} | |
379 | . el \{\ | |
380 | . nr aP+1 | |
381 | . ie \\n(C\\n(aP==1 \{\ | |
382 | . as b1 \&file\ ...\fP\s0 | |
383 | . \\*(A\\n(aP | |
384 | . \} | |
385 | . el \{\ | |
386 | . nr cF \\n(.f | |
387 | . nr cZ \\n(.s | |
388 | . if \\n(C\\n(aP==3 \{\ | |
389 | . as b1 \&file\ ... | |
390 | . \} | |
391 | . nR | |
392 | . \} | |
393 | . \} | |
394 | .\} | |
395 | .. | |
396 | .\" NS Ad macro - Addresses | |
397 | .de Ad | |
398 | .if \\n(aC==0 \{\ | |
399 | . ie \\n(.$==0 .tm Usage: .Ad address ... \\*(Pu (#\\n(.c) | |
400 | . el \{\ | |
401 | . ds mN Ad | |
402 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
403 | . \} | |
404 | .\} | |
405 | .if \\n(aC>\\n(aP \{\ | |
406 | . as b1 \\*(aD | |
407 | . nr aP+1 | |
408 | . nr cF \\n(.f | |
409 | . nr cZ \\n(.s | |
410 | . nR | |
411 | .\} | |
412 | .. | |
413 | .\" NS Cd macro - Config declaration (for section 4 SYNOPSIS) (not callable) | |
414 | .\" needs work - not very translatable | |
415 | .de Cd | |
416 | .if \\n(aC==0 \{\ | |
417 | . ie \\n(.$==0 .tm Usage: .Cd Configuration file declaration (#\\n(.c) | |
418 | . el \{\ | |
419 | . ds mN Cd | |
420 | . ds A1 \\$1 | |
421 | . ds A2 \\$2 | |
422 | . ds A3 \\$3 | |
423 | . ds A4 \\$4 | |
424 | . ds A5 \\$5 | |
425 | . ds A6 \\$6 | |
426 | . ds A7 \\$7 | |
427 | . ds A8 \\$8 | |
428 | . ds A9 \\$9 | |
429 | . nr fV \\n(.$ | |
430 | . fV | |
431 | . \} | |
432 | .\} | |
433 | .br | |
434 | .if \\n(aC>\\n(aP \{\ | |
435 | . as b1 \\*(nM | |
436 | . nr aP+1 | |
437 | . nr cF \\n(.f | |
438 | . nr cZ \\n(.s | |
439 | . if \\n(nS \{\ | |
440 | . if "\\*(mN"Cd" \{\ | |
441 | . rs | |
442 | . in -\\n(iSu | |
443 | . ie \\n(nS>1 .br | |
444 | . el \{\ | |
445 | . if \\n(iS==0 .nr iS Dsu | |
446 | . \} | |
447 | . in +\\n(iSu | |
448 | . ti -\\n(iSu | |
449 | . nr nS \\n(nS+1 | |
450 | . \} | |
451 | . \} | |
452 | . nR | |
453 | .\} | |
454 | .. | |
455 | .\" NS Cm macro - Interactive command modifier (flag) | |
456 | .de Cm | |
457 | .if \\n(aC==0 \{\ | |
458 | . ie \\n(.$==0 .tm Usage: .Cm Interactive command modifier ... \\*(Pu (#\\n(.c) | |
459 | . el \{\ | |
460 | . ds mN Cm | |
461 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
462 | . \} | |
463 | .\} | |
464 | .if \\n(aC>\\n(aP \{\ | |
465 | . as b1 \\*(cM | |
466 | . nr aP+1 | |
467 | . nr cF \\n(.f | |
468 | . nr cZ \\n(.s | |
469 | . nR | |
470 | .\} | |
471 | .. | |
472 | .\" NS Dv macro - define variable | |
473 | .de Dv | |
474 | .if \\n(aC==0 \{\ | |
475 | . ie \\n(.$==0 .tm Usage: .Dv define_variable ... \\*(Pu (#\\n(.c) | |
476 | . el \{\ | |
477 | . ds mN Dv | |
478 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
479 | . \} | |
480 | .\} | |
481 | .if \\n(aC>\\n(aP \{\ | |
482 | . as b1 \\*(eR | |
483 | . nr aP+1 | |
484 | . nr cF \\n(.f | |
485 | . nr cZ \\n(.s | |
486 | . nR | |
487 | .\} | |
488 | .. | |
489 | .\" NS Em macro - Emphasis | |
490 | .de Em | |
491 | .if \\n(aC==0 \{\ | |
492 | . ie \\n(.$==0 \{\ | |
493 | . tm Usage: .Em text ... \\*(Pu (#\\n(.c) | |
494 | . \} | |
495 | . el \{\ | |
496 | . ds mN Em | |
497 | . ds A1 \\$1 | |
498 | . ds A2 \\$2 | |
499 | . ds A3 \\$3 | |
500 | . ds A4 \\$4 | |
501 | . ds A5 \\$5 | |
502 | . ds A6 \\$6 | |
503 | . ds A7 \\$7 | |
504 | . ds A8 \\$8 | |
505 | . ds A9 \\$9 | |
506 | . nr fV \\n(.$ | |
507 | . fV | |
508 | . \} | |
509 | .\} | |
510 | .if \\n(aC>\\n(aP \{\ | |
511 | . as b1 \\*(eM | |
512 | . nr aP+1 | |
513 | . nr cF \\n(.f | |
514 | . nr cZ \\n(.s | |
515 | . nR | |
516 | .\} | |
517 | .. | |
518 | .\" NS Er macro - Errnotype | |
519 | .de Er | |
520 | .if \\n(aC==0 \{\ | |
521 | . ie \\n(.$==0 .tm Usage: .Er ERRNOTYPE ... \\*(Pu (#\\n(.c) | |
522 | . el \{\ | |
523 | . ds mN Er | |
524 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
525 | . \} | |
526 | .\} | |
527 | .if \\n(aC>\\n(aP \{\ | |
528 | . as b1 \\*(eR | |
529 | . nr aP+1 | |
530 | . nr cF \\n(.f | |
531 | . nr cZ \\n(.s | |
532 | . nR | |
533 | .\} | |
534 | .. | |
535 | .\" NS Ev macro - Environment variable | |
536 | .de Ev | |
537 | .if \\n(aC==0 \{\ | |
538 | . ie \\n(.$==0 .tm Usage: .Ev ENVIRONMENT_VARIABLE ... \\*(Pu (#\\n(.c) | |
539 | . el \{\ | |
540 | . ds mN Ev | |
541 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
542 | . \} | |
543 | .\} | |
544 | .if \\n(aC>\\n(aP \{\ | |
545 | . as b1 \\*(eV | |
546 | . nr aP+1 | |
547 | . nr cF \\n(.f | |
548 | . nr cZ \\n(.s | |
549 | . nR | |
550 | .\} | |
551 | .. | |
552 | .\" NS Fd macro - function declaration - not callable (& no err check) | |
553 | .\" NS fD register subroutine test (in synopsis only) | |
554 | .\" NS fY register subroutine count (in synopsis only) | |
555 | .\" NS fZ register also subroutine count (in synopsis only) | |
556 | .de Fd | |
557 | .ds mN Fd | |
558 | .if \\n(nS>0 \{\ | |
559 | . if \\n(fZ>0 \{\ | |
560 | . ie \\n(fD==0 .Pp | |
561 | . el .br | |
562 | . \} | |
563 | . nr fD+1 | |
564 | . nr fZ+1 | |
565 | . nr fY+1 | |
566 | .\} | |
567 | .nr cF \\n(.f | |
568 | .nr cZ \\n(.s | |
569 | \&\\*(fD\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
570 | .br | |
571 | .ft \\n(cF | |
572 | .fs \\n(cZ | |
573 | .. | |
574 | .\" NS Fr macro - function return value - not callable (at the moment) | |
575 | .de Fr | |
576 | .if \\n(aC==0 \{\ | |
577 | . ie \\n(.$==0 .tm Usage: .Fr Function_return_value... \\*(Pu (#\\n(.c) | |
578 | . el \{\ | |
579 | . ds mN Fr | |
580 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
581 | . \} | |
582 | .\} | |
583 | .if \\n(aC>\\n(aP \{\ | |
584 | . as b1 \\*(aR | |
585 | . nr aP+1 | |
586 | . nr cF \\n(.f | |
587 | . nr cZ \\n(.s | |
588 | . nR | |
589 | .\} | |
590 | .. | |
591 | .\" NS Ic macro - Interactive command | |
592 | .de Ic | |
593 | .if \\n(aC==0 \{\ | |
594 | . ie \\n(.$==0 .tm Usage: .Ic Interactive command ... \\*(Pu (#\\n(.c) | |
595 | . el \{\ | |
596 | . ds mN Ic | |
597 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
598 | . \} | |
599 | .\} | |
600 | .if \\n(aC>\\n(aP \{\ | |
601 | . as b1 \\*(iC | |
602 | . nr aP+1 | |
603 | . nr cF \\n(.f | |
604 | . nr cZ \\n(.s | |
605 | . nR | |
606 | .\} | |
607 | .. | |
608 | .\" NS Li macro - literals | |
609 | .de Li | |
610 | .if \\n(aC==0 \{\ | |
611 | . ie \\n(.$==0 .tm Usage .Li argument ... \\*(Pu (#\\n(.c) | |
612 | . el \{\ | |
613 | . ds mN Li | |
614 | . ds A1 \\$1 | |
615 | . ds A2 \\$2 | |
616 | . ds A3 \\$3 | |
617 | . ds A4 \\$4 | |
618 | . ds A5 \\$5 | |
619 | . ds A6 \\$6 | |
620 | . ds A7 \\$7 | |
621 | . ds A8 \\$8 | |
622 | . ds A9 \\$9 | |
623 | . nr fV \\n(.$ | |
624 | . fV | |
625 | . \} | |
626 | .\} | |
627 | .if \\n(aC>\\n(aP \{\ | |
628 | . as b1 \\*(lI | |
629 | . nr aP+1 | |
630 | . nr cF \\n(.f | |
631 | . nr cZ \\n(.s | |
632 | . nR | |
633 | .\} | |
634 | .. | |
635 | .\" NS Ms macro - Math symbol | |
636 | .de Ms | |
637 | .if \\n(aC==0 \{\ | |
638 | . ie \\n(.$==0 .tm Usage: .Ms Math symbol ... \\*(Pu (#\\n(.c) | |
639 | . el \{\ | |
640 | . ds mN Ms | |
641 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
642 | . \} | |
643 | .\} | |
644 | .if \\n(aC>\\n(aP \{\ | |
645 | . as b1 \\*(sY | |
646 | . nr aP+1 | |
647 | . nr cF \\n(.f | |
648 | . nr cZ \\n(.s | |
649 | . nR | |
650 | .\} | |
651 | .. | |
652 | .\" NS Nm macro - Name of command or page topic | |
653 | .\" NS n1 string - save first invocation of .Nm | |
654 | .\" NS iS register - indent second command line in a synopsis | |
655 | .de Nm | |
656 | .as b1 \\*(nM | |
657 | .if \\n(aC==0 \{\ | |
658 | . ie \\n(.$==0 \{\ | |
659 | . ie "\\*(n1"" .tm Usage: .Nm Name(s) ... \\*(Pu (#\\n(.c) | |
660 | . el \&\\*(nM\\*(n1\fP\s0 | |
661 | . \} | |
662 | . el \{\ | |
663 | . ds mN Nm | |
664 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
665 | . \} | |
666 | .\} | |
667 | .if \\n(aC>0 \{\ | |
668 | . ie \\n(aC==\\n(aP \{\ | |
669 | . as b1 \&\\*(nM\\*(n1\fP\s0 | |
670 | . aZ | |
671 | . \} | |
672 | . el \{\ | |
673 | . nr aP+1 | |
674 | . ie \\n(C\\n(aP==1 \{\ | |
675 | . as b1 \&\\*(n1\fP\s0 | |
676 | . \\*(A\\n(aP | |
677 | . \} | |
678 | . el \{\ | |
679 | . nr cF \\n(.f | |
680 | . nr cZ \\n(.s | |
681 | . if \\n(nS \{\ | |
682 | . if "\\*(mN"Nm" \{\ | |
683 | . rs | |
684 | . in -\\n(iSu | |
685 | . ie \\n(nS>1 .br | |
686 | . el \{\ | |
687 | . if \\n(iS==0 \{\ | |
688 | . sw \\$1 | |
689 | . nr iS (\\n(sWu*\\n(fW)u | |
690 | . \} | |
691 | . \} | |
692 | . in +\\n(iSu | |
693 | . ti -\\n(iSu | |
694 | . nr nS \\n(nS+1 | |
695 | . \} | |
696 | . \} | |
697 | . if "\\*(n1"" .ds n1 \\*(A\\n(aP | |
698 | . nR | |
699 | . \} | |
700 | . \} | |
701 | .\} | |
702 | .. | |
703 | .\" NS Pa macro - Pathname | |
704 | .de Pa | |
705 | .if \\n(aC==0 \{\ | |
706 | . ie \\n(.$==0 \&\\*(pA~\fP\s0 | |
707 | . el \{\ | |
708 | . ds mN Pa | |
709 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
710 | . \} | |
711 | .\} | |
712 | .if \\n(aC>\\n(aP \{\ | |
713 | . as b1 \\*(pA | |
714 | . nr aP+1 | |
715 | . nr cF \\n(.f | |
716 | . nr cZ \\n(.s | |
717 | . nR | |
718 | .\} | |
719 | .. | |
720 | .\" NS Sy macro - Symbolics | |
721 | .de Sy | |
722 | .if \\n(aC==0 \{\ | |
723 | . ie \\n(.$==0 .tm Usage: .Sy symbolic_text ... \\*(Pu (#\\n(.c) | |
724 | . el \{\ | |
725 | . ds mN Sy | |
726 | . ds A1 \\$1 | |
727 | . ds A2 \\$2 | |
728 | . ds A3 \\$3 | |
729 | . ds A4 \\$4 | |
730 | . ds A5 \\$5 | |
731 | . ds A6 \\$6 | |
732 | . ds A7 \\$7 | |
733 | . ds A8 \\$8 | |
734 | . ds A9 \\$9 | |
735 | . nr fV \\n(.$ | |
736 | . fV | |
737 | . \} | |
738 | .\} | |
739 | .if \\n(aC>\\n(aP \{\ | |
740 | . as b1 \\*(sY | |
741 | . nr aP+1 | |
742 | . nr cF \\n(.f | |
743 | . nr cZ \\n(.s | |
744 | . nR | |
745 | .\} | |
746 | .. | |
747 | .\" NS Tn macro - Trade Name Macro | |
748 | .de Tn | |
749 | .if \\n(aC==0 \{\ | |
750 | . ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c) | |
751 | . el \{\ | |
752 | . ds mN Tn | |
753 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
754 | . \} | |
755 | .\} | |
756 | .if \\n(aC>\\n(aP \{\ | |
757 | . as b1 \\*(tN | |
758 | . nr aP+1 | |
759 | . nr cF \\n(.f | |
760 | . nr cZ \\n(.s | |
761 | . nR | |
762 | .\} | |
763 | .. | |
764 | .\" NS nN macro - Trade Name Macro for inside of reference | |
765 | .de nN | |
766 | .if \\n(aC==0 \{\ | |
767 | . ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c) | |
768 | . el \{\ | |
769 | . ds mN Tn | |
770 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
771 | . \} | |
772 | .\} | |
773 | .if \\n(aC>\\n(aP \{\ | |
774 | . as b1 \\*(tN | |
775 | . nr aP+1 | |
776 | . nr cF \\n(.f | |
777 | . nr cZ \\n(.s | |
778 | . rR | |
779 | .\} | |
780 | .. | |
781 | .\" NS Va macro - variable name macro | |
782 | .de Va | |
783 | .if \\n(aC==0 \{\ | |
784 | . ie \\n(.$==0 .tm Usage: .Va variable_name(s) ... \\*(Pu (#\\n(.c) | |
785 | . el \{\ | |
786 | . ds mN Va | |
787 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
788 | . \} | |
789 | .\} | |
790 | .if \\n(aC>\\n(aP \{\ | |
791 | . as b1 \\*(vA | |
792 | . nr aP+1 | |
793 | . nr cF \\n(.f | |
794 | . nr cZ \\n(.s | |
795 | . nR | |
796 | .\} | |
797 | .. | |
798 | .\" | |
799 | .\" NS No macro - Normal text macro (default text style if mess up) | |
800 | .de No | |
801 | .as b1 \\*(nO | |
802 | .if \\n(aC==0 \{\ | |
803 | . ie \\n(.$==0 .tm Usage: .No must be called with arguments (#\\n(.c) | |
804 | . el \{\ | |
805 | . ds mN No | |
806 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
807 | . \} | |
808 | .\} | |
809 | .if \\n(aC>\\n(aP \{\ | |
810 | . nr aP+1 | |
811 | . ie \\n(C\\n(aP==1 \{\ | |
812 | . \\*(A\\n(aP | |
813 | . \} | |
814 | . el \{\ | |
815 | . nr cF \\n(.f | |
816 | . nr cZ \\n(.s | |
817 | . nR | |
818 | . \} | |
819 | .\} | |
820 | .. | |
821 | .\"------------------------------------------------------------------------ | |
822 | .\" NS Op macro - Option Expression | |
823 | .de Op | |
824 | .if \\n(aC==0 \{\ | |
825 | . ds mN Op | |
826 | .\} | |
827 | .\" .ds qL \&\\*(lO | |
828 | .\" .ds qR \&\\*(rO | |
829 | .ds qL \&\\*(lB | |
830 | .ds qR \&\\*(rB | |
831 | .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 | |
832 | .. | |
833 | .\" NS Aq macro - Enclose string in angle brackets | |
834 | .de Aq | |
835 | .if \\n(aC==0 .ds mN Aq | |
836 | .ds qL \&< | |
837 | .ds qR \&> | |
838 | .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
839 | .. | |
840 | .\" NS Bq macro - Enclose string in square brackets | |
841 | .de Bq | |
842 | .if \\n(aC==0 .ds mN Bq | |
843 | .ds qL \&\\*(lB | |
844 | .ds qR \&\\*(rB | |
845 | .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
846 | .. | |
847 | .\" NS Dq macro - Enclose string in double quotes | |
848 | .de Dq | |
849 | .if \\n(aC==0 .ds mN Dq | |
850 | .ds qL \&\\*(Lq | |
851 | .ds qR \&\\*(Rq | |
852 | .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
853 | .. | |
854 | .\" NS Eq macro - Enclose string in double quotes | |
855 | .de Eq | |
856 | .if \\n(aC==0 .ds mN Eq | |
857 | .ds qL \\$1 | |
858 | .ds qR \\$2 | |
859 | .En \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
860 | .. | |
861 | .\" NS Pq macro - Enclose string in parenthesis | |
862 | .de Pq | |
863 | .if \\n(aC==0 .ds mN Pq | |
864 | .ds qL \&\\*(lP | |
865 | .ds qR \&\\*(rP | |
866 | .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
867 | .. | |
868 | .\" NS Ql macro - Quoted literal is in file mdoc-[dit|n|g]roff (too large | |
869 | .\" an if-else to carry along recursively for `if n ...') | |
870 | .\" | |
871 | .\" NS Sq macro - Enclose string in single quotes | |
872 | .de Sq | |
873 | .if \\n(aC==0 .ds mN Sq | |
874 | .ds qL \&\\*(sL | |
875 | .ds qR \&\\*(sR | |
876 | .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
877 | .. | |
878 | .\" | |
879 | .\" NS Es macro - Set up strings for .En call | |
880 | .de Es | |
881 | .if \\n(aC==0 \{\ | |
882 | . ie \\n(.$>2 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
883 | . el \{\ | |
884 | . ds qL \\$1 | |
885 | . ds qR \\$2 | |
886 | . \} | |
887 | .\} | |
888 | .if \\n(aC>\\n(aP \{\ | |
889 | . nr aP+1 | |
890 | . ds qL \\*(A\\n(aP | |
891 | . nr aP+1 | |
892 | . ds qR \\*(A\\n(aP | |
893 | . ie \\n(aC>\\n(aP .c\\n(C\\n(aP | |
894 | . el .aZ | |
895 | .\} | |
896 | .. | |
897 | .\" .tm En beg arg(A[\\n(aP])==\\*(A\\n(aP; | |
898 | .\" .tm En oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC | |
899 | .\" NS En macro - Enclose string with given args (eg [ and ] etc) | |
900 | .\" NS qL string variable set by calling macro | |
901 | .\" NS qR string variable set by calling macro | |
902 | .\" NS aJ register (for vR) | |
903 | .de En | |
904 | .as b1 \&\\*(qL | |
905 | .if \\n(aC==0 \{\ | |
906 | . ie \\n(.$==0 \{\ | |
907 | . as b1 \&\\*(qR | |
908 | . pB | |
909 | . \} | |
910 | . el \{\ | |
911 | . as mN (En) | |
912 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
913 | . \} | |
914 | .\} | |
915 | .if \\n(aC>0 \{\ | |
916 | . ie (\\n(aC-\\n(aP)==0 \{\ | |
917 | . as b1 \&\\*(qR | |
918 | . aZ | |
919 | . \} | |
920 | . el \{\ | |
921 | . ie \\n(C\\n(aC==3 \{\ | |
922 | . nr aJ \\n(aC-1 | |
923 | . vR | |
924 | . nr aJ+1 | |
925 | . ds A\\n(aJ \&\\*(qR\\*(A\\n(aJ | |
926 | . \} | |
927 | . el .aI \&\\*(qR 3 | |
928 | . nr aP+1 | |
929 | . if \\n(C\\n(aP==1 .\\*(A\\n(aP | |
930 | . if \\n(C\\n(aP>1 \{\ | |
931 | . nr aP-1 | |
932 | . No | |
933 | . \} | |
934 | . \} | |
935 | .\} | |
936 | .. | |
937 | .\" NS vR macro - vector routine (for En, trace backwards past trail punct) | |
938 | .de vR | |
939 | .if \\n(C\\n(aJ==3 \{\ | |
940 | . nr aJ-1 | |
941 | . vR | |
942 | .\} | |
943 | .. | |
944 | .\"------------------------------------------------------------------------ | |
945 | .\" NS Ao macro - Angle open | |
946 | .de Ao | |
947 | .if \\n(aC==0 .ds mN Ao | |
948 | .ds qL \&< | |
949 | .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
950 | .. | |
951 | .\" NS Ac macro - Angle close | |
952 | .de Ac | |
953 | .if \\n(aC==0 .ds mN Ac | |
954 | .ds qR \&> | |
955 | .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
956 | .. | |
957 | .\" NS Bo macro - Bracket open | |
958 | .de Bo | |
959 | .if \\n(aC==0 .ds mN Bo | |
960 | .ds qL \&[ | |
961 | .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
962 | .. | |
963 | .\" NS Bc macro - Bracket close | |
964 | .de Bc | |
965 | .if \\n(aC==0 .ds mN Bc | |
966 | .ds qR \&] | |
967 | .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
968 | .. | |
969 | .\" NS Do macro - Double Quote open | |
970 | .de Do | |
971 | .if \\n(aC==0 .ds mN Do | |
972 | .ds qL \&\\*(Lq | |
973 | .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
974 | .. | |
975 | .\" NS Dc macro - Double Quote close | |
976 | .de Dc | |
977 | .if \\n(aC==0 .ds mN Dc | |
978 | .ds qR \&\\*(Rq | |
979 | .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
980 | .. | |
981 | .\" NS Eo macro - Enclose open | |
982 | .de Eo | |
983 | .if \\n(aC==0 .ds mN Eo | |
984 | .ds qL \\$1 | |
985 | .eO \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
986 | .. | |
987 | .\" NS Ec macro - Enclose close | |
988 | .de Ec | |
989 | .if \\n(aC==0 .ds mN Ec | |
990 | .ds qR \\$1 | |
991 | .eC \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
992 | .. | |
993 | .\" NS Oo macro - Option open | |
994 | .de Oo | |
995 | .if \\n(aC==0 .ds mN Oo | |
996 | .ds qL \&[ | |
997 | .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
998 | .. | |
999 | .\" NS Oc macro - Option close | |
1000 | .de Oc | |
1001 | .if \\n(aC==0 .ds mN Oc | |
1002 | .ds qR \&] | |
1003 | .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1004 | .. | |
1005 | .\" NS Po macro - Parenthesis open | |
1006 | .de Po | |
1007 | .if \\n(aC==0 .ds mN Po | |
1008 | .ds qL \&( | |
1009 | .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1010 | .. | |
1011 | .\" NS Pc macro - Parenthesis close | |
1012 | .de Pc | |
1013 | .if \\n(aC==0 .ds mN Pc | |
1014 | .ds qR \&) | |
1015 | .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1016 | .. | |
1017 | .\" NS Xo macro - Extend open (continue) | |
1018 | .de Xo | |
1019 | .if \\n(aC==0 .ds mN Xo | |
1020 | .ds qL | |
1021 | .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1022 | .. | |
1023 | .\" NS Xe macro - Extend close (end) | |
1024 | .de Xc | |
1025 | .if \\n(aC==0 .ds mN Xc | |
1026 | .ds qR | |
1027 | .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1028 | .. | |
1029 | .\" NS eO macro - enclose string open | |
1030 | .\" NS oM register (extension possible) | |
1031 | .nr oM 0 | |
1032 | .de eO | |
1033 | .as b1 \\*(qL | |
1034 | .nr oM+1 | |
1035 | .\" .tm eO last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ; | |
1036 | .if \\n(aC==0 \{\ | |
1037 | . ie \\n(.$>0 \{\ | |
1038 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1039 | . \} | |
1040 | . el \{\ | |
1041 | . if (\\n(dZ==0)&(\\n(sM==1) \{\ | |
1042 | . nr dZ+1 | |
1043 | . ds b2 \\*(b1 | |
1044 | . ds b1 | |
1045 | . nr lK \\n(.c | |
1046 | . ev 2 | |
1047 | . fi | |
1048 | . di eB | |
1049 | . \} | |
1050 | . \} | |
1051 | .\} | |
1052 | .ie \\n(aC>0 \{\ | |
1053 | . if \\n(aC>\\n(aP \{\ | |
1054 | . nr aP +1 | |
1055 | . ie \\n(C\\n(aP==1 .\\*(A\\n(aP | |
1056 | . el \{\ | |
1057 | . nr aP-1 | |
1058 | . No | |
1059 | . \} | |
1060 | . \} | |
1061 | . if \\n(aC==\\n(aP \{\ | |
1062 | . if \\n(tP==1 \{\ | |
1063 | . nr Xt 1 | |
1064 | . \} | |
1065 | . aY | |
1066 | . \} | |
1067 | .\} | |
1068 | .el \{\ | |
1069 | . if \\n(oM>1 .as b1 \\*(sV | |
1070 | .\} | |
1071 | .. | |
1072 | .\" | |
1073 | .\" NS eC macro - enclose string close | |
1074 | .\" NS aa local register | |
1075 | .de eC | |
1076 | .nr oM-1 | |
1077 | .\" .tm eO last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ; | |
1078 | .as b1 \\*(qR | |
1079 | .if \\n(aC==0 \{\ | |
1080 | . ie \\n(.$>0 \{\ | |
1081 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1082 | . \} | |
1083 | . el \{\ | |
1084 | . ie "\\*(xB"" \{\ | |
1085 | . pB | |
1086 | . \} | |
1087 | . el \{\ | |
1088 | . pB | |
1089 | .\\*(L\\n(lC | |
1090 | . nr Xt 0 | |
1091 | . ds xB | |
1092 | . \} | |
1093 | . \} | |
1094 | .\} | |
1095 | .if \\n(aC>0 \{\ | |
1096 | . ie \\n(aC==\\n(aP \{\ | |
1097 | . ie \\n(oM==0 \{\ | |
1098 | . aZ | |
1099 | . \} | |
1100 | . el .aY | |
1101 | . \} | |
1102 | . el \{\ | |
1103 | . nr aa \\n(aP+1 | |
1104 | . if \\n(C\\n(aa==2 .as b1 \\*(S\\n(aC | |
1105 | . rr aa | |
1106 | . No | |
1107 | . \} | |
1108 | .\} | |
1109 | .. | |
1110 | .\"------------------------------------------------------------------------ | |
1111 | .\" NS Pf macro - Prefix (calls .pF) | |
1112 | .de Pf | |
1113 | .if \\n(aC==0 .ds mN Pf | |
1114 | .ds qL \&\\$1 | |
1115 | .pF \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1116 | .. | |
1117 | .\" NS pF macro - Prefix (for prefixing open quotes, brackets etc) | |
1118 | .de pF | |
1119 | .ie \\n(aC==0 \{\ | |
1120 | . as b1 \&\\*(qL | |
1121 | . ie \\n(.$<2 \{\ | |
1122 | . tm Warning: Missing arguments - prefix .Pf) | |
1123 | . pB | |
1124 | . \} | |
1125 | . el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1126 | .\} | |
1127 | .el \{\ | |
1128 | . ie (\\n(aC-\\n(aP)>1 \{\ | |
1129 | . nr aP+1 | |
1130 | . as b1 \&\\*(A\\n(aP | |
1131 | . \} | |
1132 | . el .tm Warning: trailing prefix Pf) | |
1133 | .\} | |
1134 | .if \\n(aC>0 \{\ | |
1135 | . ie (\\n(aC-\\n(aP)==0 .aZ | |
1136 | . el \{\ | |
1137 | . nr aP+1 | |
1138 | . c\\n(C\\n(aP | |
1139 | . \} | |
1140 | .\} | |
1141 | .. | |
1142 | .\" NS Ns macro - remove space (space remove done by .aV or .fV) | |
1143 | .de Ns | |
1144 | .if \\n(aC==0 \{\ | |
1145 | . ds mN Ns | |
1146 | . ie \\n(.$>0 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1147 | . el .tm Usage: .Ns must be called with arguments (#\\n(.c) | |
1148 | .\} | |
1149 | .No | |
1150 | .. | |
1151 | .de Ap | |
1152 | .if \\n(aC==0 \{\ | |
1153 | . ds mN Ap | |
1154 | . tm Usage: Ap "cannot be first request on a line (no .Ap)" (#\\n(.c) | |
1155 | .\} | |
1156 | .as b1 \&' | |
1157 | .No | |
1158 | .. | |
1159 | .\" NS Hv macro - Hard (unpaddable) Space vector | |
1160 | .\" NS iV string inter-vector space | |
1161 | .\" NS sV string inter-argument space | |
1162 | .de Hv | |
1163 | .ds iV \\*(sV | |
1164 | .ds sV \\*(hV | |
1165 | .. | |
1166 | .\" NS Sv macro - Soft Space vector (troff limitation) | |
1167 | .de Sv | |
1168 | .ds sV \\*(iV | |
1169 | .. | |
1170 | .\" NS Tv macro - Tab Space vector | |
1171 | .de Tv | |
1172 | .ds sV \\*(tV | |
1173 | .. | |
1174 | .\" NS Sm macro - Space mode | |
1175 | .\" NS sM register - default is one (space mode on) | |
1176 | .nr sM 1 | |
1177 | .de Sm | |
1178 | .if \\n(aC==0 \{\ | |
1179 | . ie \\n(.$==0 .tm "Usage: .Sm [off | on]" (#\\n(.c) | |
1180 | . el \{\ | |
1181 | . ds mN Sm | |
1182 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1183 | . \} | |
1184 | .\} | |
1185 | .if \\n(aC>0 \{\ | |
1186 | . nr aP+1 | |
1187 | . if "\\*(A\\n(aP"on" \{\ | |
1188 | . ds sV \\*(iV | |
1189 | . nr sM 1 | |
1190 | . \} | |
1191 | . if "\\*(A\\n(aP"off" \{\ | |
1192 | . ds sV | |
1193 | . rm S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 | |
1194 | . nr sM 0 | |
1195 | . \} | |
1196 | . ie \\n(aC>\\n(aP \{\ | |
1197 | . No | |
1198 | . \} | |
1199 | . el .aY | |
1200 | .\} | |
1201 | .. | |
1202 | .\"------------------------------------------------------------------------ | |
1203 | .\" Size and Argument type macros | |
1204 | .\" NS aT macro - argument type | |
1205 | .\" NS aU macro - argument type (same as .aT but uses A[1-9] strings | |
1206 | .\" NS aT register argument type | |
1207 | .de aT | |
1208 | .nr aT 0 | |
1209 | .ie \\n(sW>2 \{\ | |
1210 | . nr aT 2 | |
1211 | .\} | |
1212 | .el \{\ | |
1213 | . if \\n(sW==1 \{\ | |
1214 | . ie \\n(z\\$1>2 \{\ | |
1215 | . nr aT \\n(z\\$1 | |
1216 | . \} | |
1217 | . el .nr aT 2 | |
1218 | . \} | |
1219 | . if \\n(sW==2 \{\ | |
1220 | . ie \\n(\\$1 \{\ | |
1221 | . nr aT 1 | |
1222 | . \} | |
1223 | . el .nr aT 2 | |
1224 | . \} | |
1225 | .\} | |
1226 | .. | |
1227 | .de aU | |
1228 | .nr aT 0 | |
1229 | .aW \\$1 | |
1230 | .ie \\n(sW>2 .nr aT 2 | |
1231 | .el \{\ | |
1232 | . if \\n(sW==1 \{\ | |
1233 | . ie \\n(z\\*(A\\$1>2 \{\ | |
1234 | . nr aT \\n(z\\*(A\\$1 | |
1235 | . \} | |
1236 | . el .nr aT 2 | |
1237 | . \} | |
1238 | . if \\n(sW==2 \{\ | |
1239 | . ie (\\n(\\*(A\\$1) \{\ | |
1240 | . nr aT 1 | |
1241 | . \} | |
1242 | . el .nr aT 2 | |
1243 | . \} | |
1244 | .\} | |
1245 | .. | |
1246 | .\" NS s0 macro - catch errors (spacing for non-existent class type 0) | |
1247 | .\" NS s1 macro - set spacing for class type 1 | |
1248 | .\" NS s1 macro - set spacing for class type 1 | |
1249 | .\" NS s2 macro - set spacing for class type 2 | |
1250 | .\" NS s3 macro - set spacing for class type 3 | |
1251 | .\" NS s4 macro - set spacing for class type 4 | |
1252 | .\" NS S[0-9] string spacing | |
1253 | .\" NS xX local register | |
1254 | .\" NS aa local register | |
1255 | .de s0 | |
1256 | .tm MDOC-ERROR: bogus type 0 (can't set space \\*(A\\n(aC) (#\\n(.c) | |
1257 | .. | |
1258 | .de s1 | |
1259 | .if \\n(\\*(A\\n(aC==3 \{\ | |
1260 | . nr xX \\n(aC-1 | |
1261 | . rm S\\n(xX | |
1262 | . ds S\\n(aC \\*(sV | |
1263 | .\} | |
1264 | .if \\n(\\*(A\\n(aC==2 \{\ | |
1265 | . nr xX \\n(aC-1 | |
1266 | . rm S\\n(xX | |
1267 | .\} | |
1268 | .. | |
1269 | .de s2 | |
1270 | .ds S\\n(aC \\*(sV | |
1271 | .. | |
1272 | .de s3 | |
1273 | .if \\n(aC>1 \{\ | |
1274 | . nr xX \\n(aC-1 | |
1275 | . rm S\\n(xX | |
1276 | .\} | |
1277 | .ds S\\n(aC \\*(sV | |
1278 | .. | |
1279 | .de s4 | |
1280 | .nr aa 0 | |
1281 | .. | |
1282 | .\" Class switches (on current argument aP) | |
1283 | .\" NS c0 macro - catch errors (non-existent class type 0) | |
1284 | .\" NS c1 macro - call request if type 1 | |
1285 | .\" NS c2 macro - call .No if type 2 | |
1286 | .\" NS c3 macro - call .No if type 3 | |
1287 | .\" NS c4 macro - call .No if type 4 | |
1288 | .de c0 | |
1289 | .tm MDOC-ERROR: bogus class 0 (can't determine \\*(A\\n(aC) (#\\n(.c) | |
1290 | .. | |
1291 | .de c1 | |
1292 | .\\*(A\\n(aP | |
1293 | .. | |
1294 | .de c2 | |
1295 | .nr aP-1 | |
1296 | .No | |
1297 | .. | |
1298 | .de c3 | |
1299 | .nr aP-1 | |
1300 | .No | |
1301 | .. | |
1302 | .de c4 | |
1303 | .nr aP-1 | |
1304 | .No | |
1305 | .. | |
1306 | .\" NS y1 macro - ignore if class 1 | |
1307 | .\" NS y2 macro - ignore if class 2 | |
1308 | .\" NS y3 macro - append if type 3 | |
1309 | .\" NS y4 macro - append if type 4 | |
1310 | .de y1 | |
1311 | .nr aa 1 | |
1312 | .. | |
1313 | .de y2 | |
1314 | .nr aa 1 | |
1315 | .. | |
1316 | .de y3 | |
1317 | .as b1 \\*(A\\n(aP | |
1318 | .nr aP+1 | |
1319 | .n\\C\\n(aP | |
1320 | .. | |
1321 | .de y4 | |
1322 | .as b1 \\*(A\\n(aP | |
1323 | .nr aP+1 | |
1324 | .n\\C\\n(aP | |
1325 | .. | |
1326 | .\"-------------------------------------------------------------------------- | |
1327 | .\" Ns Bf macro - Begin Font Mode (will be begin-mode/end-mode in groff & TeX) | |
1328 | .\" Ns Ef macro - End Font Mode | |
1329 | .de Bf | |
1330 | .ds mN Bf | |
1331 | .ie \\n(.$>0 \{\ | |
1332 | . nr bF \\n(.f | |
1333 | . nr bZ \\n(.s | |
1334 | . if "\\$1"Em" \&\\*(eM | |
1335 | . if "\\$1"Li" \&\\*(lI | |
1336 | . if "\\$1"Sy" \&\\*(sY | |
1337 | . if "\\$1"-emphasis" \&\\*(eM | |
1338 | . if "\\$1"-literal" \&\\*(lI | |
1339 | . if "\\$1"-symbolic" \&\\*(sY | |
1340 | .\} | |
1341 | .el .tm Usage .Bf [Em | emphasis | Li | literal | Sy | symbolic] (#\\n(.c) | |
1342 | .. | |
1343 | .de Ef | |
1344 | .ds mN Ef | |
1345 | .ie \\n(.$>0 .tm Usage .Ef (#\\n(.c) | |
1346 | .el \&\f\\n(bF\s\\n(bZ | |
1347 | .. | |
1348 | .\" NS Bd macro - Begin Display display-type [offset string] | |
1349 | .\" NS Ed macro - end Display | |
1350 | .\" NS O[0-9] registers - stack of indent | |
1351 | .\" NS d[0-9] registers - display-type stack | |
1352 | .de Bd | |
1353 | .ds mN Bd | |
1354 | .ie \\n(.$==0 \{\ | |
1355 | .tm Usage: .Bd [-literal | -filled | -ragged ] [-offset [string]] [-compact] (#\\n(.c) | |
1356 | .\} | |
1357 | .el \{\ | |
1358 | . ds aa | |
1359 | . nr bV 0 | |
1360 | . nr iD 0 | |
1361 | . nr dP+1 | |
1362 | . if "\\$1"-literal" \{\ | |
1363 | . nr iD+1 | |
1364 | . ds d\\n(dP dL | |
1365 | . nr cF \\n(.f | |
1366 | . nr cZ \\n(.s | |
1367 | . ie t \{\&\\*(lI | |
1368 | ' ta 9n 18n 27n 36n 45n 54n 63n 72n | |
1369 | . \} | |
1370 | . el \{\ | |
1371 | ' ta 8n 16n 24n 32n 40n 48n 56n 64n 72n | |
1372 | . \} | |
1373 | . nf | |
1374 | . \} | |
1375 | . if "\\$1"-filled" \{\ | |
1376 | . nr iD+1 | |
1377 | . ds d\\n(dP dF | |
1378 | . br | |
1379 | . \} | |
1380 | . if "\\$1"-ragged" \{\ | |
1381 | . nr iD+1 | |
1382 | . ds d\\n(dP dR | |
1383 | . nf | |
1384 | . \} | |
1385 | .\" .tm Here is argc: \\n(.$ and here is iD \\n(iD | |
1386 | . if ((\\n(iD>=1)&(\\n(.$>\\n(iD)) \{\ | |
1387 | . bV \\$2 \\$3 \\$4 | |
1388 | . \} | |
1389 | . if \\n(O\\n(dP>0 'in \\n(.iu+\\n(O\\n(dPu | |
1390 | . if (\\n(bV==0)&(\\n(nS==0) \{\ | |
1391 | ' sp \\n(dVu | |
1392 | . \} | |
1393 | . if \\n(cR==0 .ne 2v | |
1394 | . nr bV 0 | |
1395 | . nr iD 0 | |
1396 | .\} | |
1397 | .. | |
1398 | .\" NS bV macro - resolve remaining .Bd arguments | |
1399 | .de bV | |
1400 | .\" .tm in bV with args: \\$1 \\$2 \\$3 | |
1401 | .nr iD 1 | |
1402 | .ds bY | |
1403 | .if "\\$1"-offset" \{\ | |
1404 | . ds bY \\$2 | |
1405 | . if "\\*(bY"left" \{\ | |
1406 | . nr iD+1 | |
1407 | . nr O\\n(dP 0 | |
1408 | . \} | |
1409 | . if "\\*(bY"right" \{\ | |
1410 | . nr iD+1 | |
1411 | . nr O\\n(dP (\\n(.l/3)u | |
1412 | . \} | |
1413 | . if "\\*(bY"center" \{\ | |
1414 | . nr iD+1 | |
1415 | . nr O\\n(dP (\\n(.l-\\n(.i)/4u | |
1416 | . \} | |
1417 | . if "\\*(bY"indent" \{\ | |
1418 | . nr iD+1 | |
1419 | . nr O\\n(dP \\n(dIu | |
1420 | . \} | |
1421 | . if "\\*(bY"indent-two" \{\ | |
1422 | . nr iD+1 | |
1423 | . nr O\\n(dP \\n(dIu+\\n(dIu | |
1424 | . \} | |
1425 | . if \\n(iD==1 \{\ | |
1426 | . nr iD+1 | |
1427 | . sW "\\*(bY" | |
1428 | . ie \\n(sW>2 \{\ | |
1429 | . ie ((\\*(bY>9n)&(\\$3<100n)) \{\ | |
1430 | . nr O\\n(dP \\*(bY | |
1431 | . \} | |
1432 | . el .nr O\\n(dP (\\n(sW)*\\n(fWu | |
1433 | . \} | |
1434 | . el \{\ | |
1435 | . if \\n(sW==2 .aT \\*(bY | |
1436 | . ie \\n(aT==1 \{\ | |
1437 | . nr O\\n(dP \\n(\\*(bY | |
1438 | . \} | |
1439 | . el .nr O\\n(dP \\*(bY | |
1440 | . \} | |
1441 | . \} | |
1442 | .\} | |
1443 | .if "\\$1"-compact" \{\ | |
1444 | . nr bV 1 | |
1445 | .\} | |
1446 | .if \\n(iD<\\n(.$ \{\ | |
1447 | . ie "\\*(bY"" \{\ | |
1448 | . bV \\$2 \\$3 | |
1449 | . \} | |
1450 | . el \{\ | |
1451 | . bV \\$3 | |
1452 | . \} | |
1453 | .\} | |
1454 | .. | |
1455 | .\" NS Ed macro - end display | |
1456 | .de Ed | |
1457 | .ds mN Ed | |
1458 | .br | |
1459 | .if "\\*(d\\n(dP"dL" \{\ | |
1460 | . ft \\n(cF | |
1461 | . fz \\n(cZ | |
1462 | .\} | |
1463 | .in \\n(.iu-\\n(O\\n(dPu | |
1464 | .rr O\\n(dP | |
1465 | .rm d\\n(dP | |
1466 | .nr dP \\n(dP-1 | |
1467 | .fi | |
1468 | .. | |
1469 | .\"-------------------------------------------------------------------------- | |
1470 | .\" NS Bl macro - begin list (.Bl list-type) | |
1471 | .\" NS L[0-9] registers - stack of list types | |
1472 | .de Bl | |
1473 | .ie \\n(.$==0 \{\ | |
1474 | .tm Usage: .Bl [[-hang | -tag] [-width]] [ -item | -enum | -bullet | -diag] (#\\n(.c) | |
1475 | .\} | |
1476 | .el \{\ | |
1477 | . ds mN Bl | |
1478 | . nr aP 0 | |
1479 | . nr lC+1 | |
1480 | . ds A1 \\$2 | |
1481 | . ds A2 \\$3 | |
1482 | . ds A3 \\$4 | |
1483 | . ds A4 \\$5 | |
1484 | . ds A5 \\$6 | |
1485 | . ds A6 \\$7 | |
1486 | . ds A7 \\$8 | |
1487 | . ds A8 \\$9 | |
1488 | . nr fV \\n(.$-1 | |
1489 | . if "\\$1"-hang" \{\ | |
1490 | . nr aP+1 | |
1491 | . ds L\\n(lC hL | |
1492 | . nr w\\n(lC 6n | |
1493 | . nr tC 1 | |
1494 | . \} | |
1495 | . if "\\$1"-tag" \{\ | |
1496 | . nr aP+1 | |
1497 | . ds L\\n(lC tL | |
1498 | . nr tC 1 | |
1499 | . \} | |
1500 | . if "\\$1"-item" \{\ | |
1501 | . nr aP+1 | |
1502 | . ds L\\n(lC iT | |
1503 | . nr tC 1 | |
1504 | . \} | |
1505 | . if "\\$1"-enum" \{\ | |
1506 | . nr aP+1 | |
1507 | . ds L\\n(lC nU | |
1508 | . nr w\\n(lC 2n | |
1509 | . nr tC 1 | |
1510 | . \} | |
1511 | . if "\\$1"-bullet" \{\ | |
1512 | . nr aP+1 | |
1513 | . ds L\\n(lC bU | |
1514 | . nr w\\n(lC 2n | |
1515 | . nr tC 1 | |
1516 | . \} | |
1517 | . if "\\$1"-dash" \{\ | |
1518 | . nr aP+1 | |
1519 | . ds L\\n(lC hU | |
1520 | . nr w\\n(lC 2n | |
1521 | . nr tC 1 | |
1522 | . \} | |
1523 | . if "\\$1"-inset" \{\ | |
1524 | . nr aP+1 | |
1525 | . ds L\\n(lC lL | |
1526 | . nr tC 1 | |
1527 | . \} | |
1528 | . if "\\$1"-diag" \{\ | |
1529 | . nr aP+1 | |
1530 | . ds L\\n(lC mL | |
1531 | . nr mL 1 | |
1532 | . \} | |
1533 | . if "\\$1"-ohang" \{\ | |
1534 | . nr aP+1 | |
1535 | . ds L\\n(lC oL | |
1536 | . nr tC 1 | |
1537 | . \} | |
1538 | . if "\\$1"-column" \{\ | |
1539 | . nr aP+1 | |
1540 | . ds L\\n(lC cL | |
1541 | . \} | |
1542 | . ie \\n(aP==0 \{\ | |
1543 | . tm \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
1544 | . tm Usage: .Bl [[-inset|-tag] -width] [-item|-enum|-bullet|-diag] (#\\n(.c) | |
1545 | . \} | |
1546 | . el \{\ | |
1547 | . tY | |
1548 | . if (\\n(aP==1)&(\\n(aP<\\n(.$) \{\ | |
1549 | . nr aP 0 | |
1550 | . lV | |
1551 | . if "\\*(L\\n(lC"cL" \{\ | |
1552 | . W\\n(wV | |
1553 | . nr w\\n(lC 0 | |
1554 | ' in -\\n(eWu | |
1555 | . ie \\n(v\\n(lC==1 \{\ | |
1556 | . nr aa 0 | |
1557 | . \} | |
1558 | . el \{\ | |
1559 | . sp \\n(dVu | |
1560 | . \} | |
1561 | . nf | |
1562 | . nr wV 0 | |
1563 | . \} | |
1564 | . \} | |
1565 | . \} | |
1566 | . nr aP 0 | |
1567 | . aY | |
1568 | .\" .tm Here is L[\\n(lC]==\\*(L\\n(lC | |
1569 | .\} | |
1570 | .. | |
1571 | .\" NS lV macro - resolve remaining .Bl arguments | |
1572 | .de lV | |
1573 | .nr aP+1 | |
1574 | .if \\n(fV>=\\n(aP \{\ | |
1575 | . nr iD 0 | |
1576 | . if "\\*(A\\n(aP"-compact" \{\ | |
1577 | . nr iD 1 | |
1578 | . nr v\\n(lC 1 | |
1579 | . \} | |
1580 | . if "\\*(A\\n(aP"-width" \{\ | |
1581 | . nr iD 1 | |
1582 | . nr aP+1 | |
1583 | . nr tW 1 | |
1584 | . ds t\\n(lC TagwidtH | |
1585 | . ds tS \\*(A\\n(aP | |
1586 | . aW \\n(aP | |
1587 | . ie \\n(sW>2 \{\ | |
1588 | . ie \\n(sW==3 \{\ | |
1589 | . ie (\\*(tS>9n)&(\\*(tS<99n) \{\ | |
1590 | . nr w\\n(lC \\*(tSu | |
1591 | . \} | |
1592 | . el .nr w\\n(lC (\\n(sW)*\\n(fWu | |
1593 | . \} | |
1594 | . el .nr w\\n(lC (\\n(sW)*\\n(fWu | |
1595 | . \} | |
1596 | . el \{\ | |
1597 | . aT \\*(tS | |
1598 | . ie \\n(aT==1 \{\ | |
1599 | . nr w\\n(lC \\n(\\*(tS | |
1600 | . \} | |
1601 | . el \{\ | |
1602 | . nr w\\n(lC \\*(tSu | |
1603 | . \} | |
1604 | . \} | |
1605 | . \} | |
1606 | . if "\\*(A\\n(aP"-offset" \{\ | |
1607 | . nr iD 1 | |
1608 | . nr aP+1 | |
1609 | . ie "\\*(A\\n(aP"indent" \{\ | |
1610 | . nr o\\n(lC \\n(Dsu | |
1611 | . \} | |
1612 | . el \{\ | |
1613 | . ds tS \\*(A\\n(aP | |
1614 | . aW \\n(aP | |
1615 | . ie \\n(sW>2 \{\ | |
1616 | . ie (\\*(tS>9n)&(\\*(tS<100n) \{\ | |
1617 | . nr o\\n(lC \\*(tS | |
1618 | . \} | |
1619 | . el .nr o\\n(lC (\\n(sW)*\\n(fWu | |
1620 | . \} | |
1621 | . el \{\ | |
1622 | . ie \\n(C\\n(aP==1 .nr o\\n(lC \\n(\\*(tS | |
1623 | . el .nr o\\n(lC \\*(tS | |
1624 | . \} | |
1625 | . \} | |
1626 | . \} | |
1627 | . if \\n(iD==0 \{\ | |
1628 | . if "\\*(L\\n(lC"cL" \{\ | |
1629 | . nr wV+1 | |
1630 | . ds A\\n(wV \\*(A\\n(aP | |
1631 | . \} | |
1632 | . \} | |
1633 | . if \\n(fV>\\n(aP .lV | |
1634 | .\} | |
1635 | .. | |
1636 | .\" NS El macro - end list | |
1637 | .\" NS iD local register | |
1638 | .de El | |
1639 | .ie \\n(.$>0 \{\ | |
1640 | . tm Usage: .El (#\\n(.c) | |
1641 | .\} | |
1642 | .el \{\ | |
1643 | . ds mN El | |
1644 | . nr iD 0 | |
1645 | . if "\\*(L\\n(lC"cL" \{\ | |
1646 | . nr iD 1 | |
1647 | . cC | |
1648 | . \} | |
1649 | . if "\\*(L\\n(lC"nU" \{\ | |
1650 | . nr nU 0 | |
1651 | . \} | |
1652 | . if \\n(mL>0 \{\ | |
1653 | . nr iD 1 | |
1654 | . nr mL 0 | |
1655 | . \} | |
1656 | . if "\\*(L\\n(lC"iT" \{\ | |
1657 | ' in \\n(.iu-\\n(o\\n(lCu | |
1658 | . tZ | |
1659 | . nr lC-1 | |
1660 | . tY | |
1661 | . nr iD 1 | |
1662 | . \} | |
1663 | . if "\\*(L\\n(lC"oL" \{\ | |
1664 | ' in \\n(.iu-\\n(o\\n(lCu | |
1665 | . tZ | |
1666 | . nr lC-1 | |
1667 | . tY | |
1668 | . nr iD 1 | |
1669 | . \} | |
1670 | . if "\\*(L\\n(lC"lL" \{\ | |
1671 | ' in \\n(.iu-\\n(o\\n(lCu | |
1672 | . tZ | |
1673 | . nr lC-1 | |
1674 | . tY | |
1675 | . nr iD 1 | |
1676 | . \} | |
1677 | . if \\n(iD==0 \{\ | |
1678 | . lE | |
1679 | . \} | |
1680 | . br | |
1681 | . nr iD 0 | |
1682 | .\} | |
1683 | .. | |
1684 | .\" NS It macro - list item | |
1685 | .\" NS iD local register | |
1686 | .\" NS aA save pA font string for section FILES (no underline if nroff) | |
1687 | .de It | |
1688 | .if "\\*(L\\n(lC"" \{\ | |
1689 | . tm Usage .Bl -list-type [-width [string] | -compact | -offset [string]] (#\\n(.c) | |
1690 | . tm .It \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 | |
1691 | .\} | |
1692 | .\" .tm Here is L[\\n(lC]==\\*(L\\n(lC | |
1693 | .ne 2v | |
1694 | .ie \\n(.$>0 \{\ | |
1695 | . ds mN It | |
1696 | . ds b1 | |
1697 | . nr iD 0 | |
1698 | . ds A1 \\$1 | |
1699 | . ds A2 \\$2 | |
1700 | . ds A3 \\$3 | |
1701 | . ds A4 \\$4 | |
1702 | . ds A5 \\$5 | |
1703 | . ds A6 \\$6 | |
1704 | . ds A7 \\$7 | |
1705 | . ds A8 \\$8 | |
1706 | . ds A9 \\$9 | |
1707 | . nr fV \\n(.$ | |
1708 | . if "\\*(L\\n(lC"mL" \{\ | |
1709 | . nr iD 1 | |
1710 | . nr aP 0 | |
1711 | . aX | |
1712 | . \\*(L\\n(lC | |
1713 | . \} | |
1714 | . if "\\*(L\\n(lC"cL" \{\ | |
1715 | . ds b1 | |
1716 | . nr aP 0 | |
1717 | . nr iD 1 | |
1718 | . \\*(L\\n(lC | |
1719 | . \} | |
1720 | . if "\\*(L\\n(lC"iT" \{\ | |
1721 | . nr aP 0 | |
1722 | . nr iD 1 | |
1723 | . \\*(L\\n(lC | |
1724 | . \} | |
1725 | . if \\n(iD==0 \{\ | |
1726 | . fV | |
1727 | .\" .tm It list-type==\\*(L\\n(lC, aP==\\n(aP | |
1728 | .\" .tm It beg arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC | |
1729 | . nr oM+1 | |
1730 | . nr tP 1 | |
1731 | . nr aP+1 | |
1732 | . nr tX \\n(C\\n(aP | |
1733 | . ds tX \\*(A\\n(aP | |
1734 | . if \\n(nF==1 \{\ | |
1735 | . ds aA \\*(pA | |
1736 | . if n .ds pA \\*(nO | |
1737 | . \} | |
1738 | . ie \\n(C\\n(aP==1 \{\ | |
1739 | . \\*(A\\n(aP | |
1740 | . \} | |
1741 | . el \{\ | |
1742 | . nr aP-1 | |
1743 | . No | |
1744 | . \} | |
1745 | . ie \\n(Xt==1 .ds xB \&\\*(L\\n(lC | |
1746 | . el .\\*(L\\n(lC | |
1747 | . \} | |
1748 | . nr iD 0 | |
1749 | .\} | |
1750 | .el .\\*(L\\n(lC | |
1751 | .. | |
1752 | .\" NS lL macro - .It item of list-type inset | |
1753 | .de lL | |
1754 | .lY | |
1755 | .br | |
1756 | \&\\*(b1 | |
1757 | .nr oM-1 | |
1758 | .nr tP 0 | |
1759 | .dZ+1 | |
1760 | .ds b1 | |
1761 | .aY | |
1762 | 'fi | |
1763 | .. | |
1764 | .\" NS hL macro - .It item of list-type hanging label (as opposed to tagged) | |
1765 | .de hL | |
1766 | .lX | |
1767 | .nr bb \\n(w\\n(lCu+\\n(lSu | |
1768 | .ti -\\n(bbu | |
1769 | .\" .ie \w'\\*(b1'u>=(\\n(w\\n(lCu) \&\\*(b1\\*(lS | |
1770 | .ie \w'\\*(b1'u>=(\\n(w\\n(lCu) \&\\*(b1 | |
1771 | .el \&\\*(b1\h'|\\n(bbu'\c | |
1772 | .nr oM-1 | |
1773 | .dZ+1 | |
1774 | .ds b1 | |
1775 | .nr tP 0 | |
1776 | .aY | |
1777 | 'fi | |
1778 | .. | |
1779 | .\" NS oL macro - .It item of list-type overhanging label | |
1780 | .de oL | |
1781 | .lY | |
1782 | \&\\*(b1 | |
1783 | .br | |
1784 | .nr oM-1 | |
1785 | .dZ+1 | |
1786 | .ds b1 | |
1787 | .nr tP 0 | |
1788 | .aY | |
1789 | 'fi | |
1790 | .. | |
1791 | .\" NS iT macro - .It item of list-type [empty label] | |
1792 | .de iT | |
1793 | .lY | |
1794 | .br | |
1795 | .aY | |
1796 | 'fi | |
1797 | .. | |
1798 | .\" NS nU macro - Enumerated list | |
1799 | .\" NS nU register count | |
1800 | .\" NS hU macro - Hyphen paragraph list (sub bullet list) | |
1801 | .\" NS bU macro - Bullet paragraph list | |
1802 | .de nU | |
1803 | .nr oM+1 | |
1804 | .nr nU+1 | |
1805 | .ds b1 \&\\n(nU | |
1806 | .uL | |
1807 | .. | |
1808 | .de bU | |
1809 | .nr oM+1 | |
1810 | .nr bU+1 | |
1811 | .ds b1 \&\\*(sY\&\(bu\fP | |
1812 | .uL | |
1813 | .. | |
1814 | .de hU | |
1815 | .nr oM+1 | |
1816 | .nr bU+1 | |
1817 | .ds b1 \&\\*(sY\&\-\fP | |
1818 | .uL | |
1819 | .. | |
1820 | .\" NS uL macro - .It item of list-type enum/bullet/hyphen | |
1821 | .de uL | |
1822 | .lX | |
1823 | .nr bb \\n(w\\n(lCu+\\n(lSu | |
1824 | .ti -\\n(bbu | |
1825 | .ie \w'\\*(b1'u>=(\\n(w\\n(lCu) \&\\*(b1 | |
1826 | .\" .ie \w'\\*(b1'u>=(\\n(w\\n(lCu) \&\\*(b1\0 | |
1827 | .el \&\\*(b1\h'|\\n(bbu'\c | |
1828 | .nr oM-1 | |
1829 | .dZ+1 | |
1830 | .ds b1 | |
1831 | .nr tP 0 | |
1832 | .aY | |
1833 | 'fi | |
1834 | .. | |
1835 | .\" NS mL macro - .It item of list-type diagnostic-message | |
1836 | .de mL | |
1837 | .nr cF \\n(.f | |
1838 | .nr cZ \\n(.s | |
1839 | .ie \\n(mL==1 \{\ | |
1840 | . nr zB \\n(.c | |
1841 | . ie (\\n(zB-\\n(zA)>1 .Pp | |
1842 | . el .br | |
1843 | . nr zA \\n(zB | |
1844 | . nr zB 0 | |
1845 | .\} | |
1846 | .el \{\ | |
1847 | . nr zA \\n(.c | |
1848 | . br | |
1849 | .\} | |
1850 | \&\\*(sY\\*(b1\f\\n(cF\s\\n(cZ\\*(lS\c | |
1851 | .aY | |
1852 | .ds b1 | |
1853 | 'fi | |
1854 | .. | |
1855 | .\" NS tL macro - .It item of list-type "tag" | |
1856 | .de tL | |
1857 | .if \\n(tW==0 .lW | |
1858 | .lX | |
1859 | .if "\\*(A1"Ql" .tm -mdoc limitation: Cannot create item of type `Ql' | |
1860 | .\" . nr bb \\n(w\\n(lCu+\\n(lSu+2n | |
1861 | .\" . ti -\\n(bbu | |
1862 | .\" . ie (\w'\\*(b1'u)>(\\n(w\\n(lCu) \{\\&\\*(sL\\*(b1\\*(sR | |
1863 | .\" . br | |
1864 | .\" . \} | |
1865 | .\" . el \&\\*(sL\\*(b1\\*(sR\h'|\\n(bbu'\c | |
1866 | .\" .\} | |
1867 | .\" .el \{\ | |
1868 | .\" 'nf | |
1869 | .nr bb \\n(w\\n(lCu+\\n(lSu | |
1870 | .ti -\\n(bbu | |
1871 | .ie (\w'\\*(b1'u)>(\\n(w\\n(lCu) \{\&\\*(b1 | |
1872 | . br | |
1873 | .\} | |
1874 | .el \&\\*(b1\h'|\\n(bbu'\c | |
1875 | .if \\n(nF==1 \{\ | |
1876 | . if n .ds pA \\*(aA | |
1877 | .\} | |
1878 | .nr oM-1 | |
1879 | .nr tP 0 | |
1880 | .dZ+1 | |
1881 | .ds b1 | |
1882 | .aY | |
1883 | 'fi | |
1884 | .. | |
1885 | .\" NS lW macro - resolve unknown label/tag width (if .Bl [inset | tag] only) | |
1886 | .de lW | |
1887 | .if !"TagwidtH"\\*(t\\n(lC" \{\ | |
1888 | . ie \\n(tX==1 \{\ | |
1889 | . ds t\\n(lN \\*(tX | |
1890 | . nr w\\n(lN \\n(\\*(tX | |
1891 | . \} | |
1892 | . el \{\ | |
1893 | . ds t\\n(lN No | |
1894 | . nr w\\n(lN \\n(No | |
1895 | . \} | |
1896 | . if !"\\*(t\\n(lC"\\*(t\\n(lN" .nr tC 1 | |
1897 | .\} | |
1898 | .. | |
1899 | .\" NS lX macro - set up vertical spacing (if compact) and offset+indent (all) | |
1900 | .de lX | |
1901 | .ie \\n(tC \{\ | |
1902 | . nr tC 0 | |
1903 | . nr tW 0 | |
1904 | . if \\n(v\\n(lC==0 .sp \\n(dVu | |
1905 | . in \\n(.iu+\\n(w\\n(lCu+\\n(o\\n(lCu+\\n(lSu | |
1906 | .\} | |
1907 | .el \{\ | |
1908 | . ie \\n(v\\n(lC==1 \{\ | |
1909 | . nr aa 0 | |
1910 | . \} | |
1911 | . el \{\ | |
1912 | . sp \\n(dVu | |
1913 | . \} | |
1914 | .\} | |
1915 | .if !\\n(cR .ne 2v | |
1916 | .. | |
1917 | .\" NS lY macro - set up vertical spacing (if compact) and offset+indent (all) | |
1918 | .de lY | |
1919 | .ie \\n(tC \{\ | |
1920 | . nr tC 0 | |
1921 | . nr tW 0 | |
1922 | . if \\n(v\\n(lC==0 .sp \\n(dVu | |
1923 | . in \\n(.iu+\\n(o\\n(lCu | |
1924 | .\} | |
1925 | .el \{\ | |
1926 | . ie \\n(v\\n(lC==1 \{\ | |
1927 | . nr aa 0 | |
1928 | . \} | |
1929 | . el \{\ | |
1930 | . sp \\n(dVu | |
1931 | . \} | |
1932 | .\} | |
1933 | .if !\\n(cR .ne 2v | |
1934 | .. | |
1935 | .\" NS tS temporary string | |
1936 | .\" NS hL macro - hanging list function | |
1937 | .\" NS tS temporary string | |
1938 | .\" NS hL macro - hanging list function | |
1939 | .\" NS lT macro - tagged list function | |
1940 | .\" NS lE macro - list end function | |
1941 | .\" NS tX string (initial string) | |
1942 | .\" NS tX register (initial class) | |
1943 | .\" NS tC parameter change flag | |
1944 | .\" NS Xt something to do with diversions... | |
1945 | .\" NS lC register - list type stack counter | |
1946 | .\" NS tP register tag flag (for diversions) | |
1947 | .\" NS w[0-9] register tag stack (nested tags) | |
1948 | .\" NS t[0-9] register tag string stack (nested tags) | |
1949 | .\" NS o[0-9] register offset stack (nested tags) | |
1950 | .\" NS v[0-9] register vertical tag break stack | |
1951 | .\" NS h[0-9] register horizontal tag stack (continuous if 1, break if 0) | |
1952 | .nr lC 0 | |
1953 | .nr wV 0 | |
1954 | .nr w1 0 | |
1955 | .nr o1 0 | |
1956 | .nr v1 0 | |
1957 | .nr h1 0 | |
1958 | .ds t\n(lC | |
1959 | .de lE | |
1960 | .\" IN lC o[\\n(lC]==\\n(o\\n(lC, w[\\n(lC]==\\n(w\\n(lC, | |
1961 | .ie \\n(o\\n(lC>0 \{\ | |
1962 | ' in \\n(.iu-(\\n(w\\n(lCu)-(\\n(o\\n(lCu)-\\n(lSu | |
1963 | . rr o\\n(lC | |
1964 | .\} | |
1965 | .el 'in \\n(.iu-\\n(w\\n(lCu-\\n(lSu | |
1966 | .if \\n(lC<=0 .tm Extraneous .Bl or .El call (#\\n(.c) | |
1967 | .tZ | |
1968 | .nr lC-1 | |
1969 | .tY | |
1970 | .. | |
1971 | .\" NS tY macro - set up next block for list | |
1972 | .\" NS tZ macro - decrement stack | |
1973 | .\" NS tY register (next possible lC value) | |
1974 | .de tY | |
1975 | .nr tY (\\n(lC+1) | |
1976 | .nr w\\n(tY 0 | |
1977 | .nr h\\n(tY 0 | |
1978 | .nr o\\n(tY 0 | |
1979 | .ds t\\n(tY \\*(t\\n(lC | |
1980 | .ds L\\n(tY | |
1981 | .nr v\\n(tY 0 | |
1982 | .. | |
1983 | .de tZ | |
1984 | .rm L\\n(tY | |
1985 | .rr w\\n(tY | |
1986 | .rr h\\n(tY | |
1987 | .rr o\\n(tY | |
1988 | .rm t\\n(tY | |
1989 | .rr v\\n(tY | |
1990 | .nr tY-1 | |
1991 | .. | |
1992 | .\" initial values | |
1993 | .nr w1 0 | |
1994 | .nr o1 0 | |
1995 | .nr h1 0 | |
1996 | .ds t1 | |
1997 | .nr v1 0 | |
1998 | .nr tY 1 | |
1999 | .\" NS Xr macro - cross reference (man page only) | |
2000 | .de Xr | |
2001 | .if \\n(aC==0 \{\ | |
2002 | . ie \\n(.$==0 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c) | |
2003 | . el \{\ | |
2004 | . ds mN Xr | |
2005 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2006 | . \} | |
2007 | .\} | |
2008 | .if \\n(aC>\\n(aP \{\ | |
2009 | . nr aP+1 | |
2010 | . ie \\n(C\\n(aP==1 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c) | |
2011 | . el \{\ | |
2012 | . ie \\n(C\\n(aP>2 .y\\n(C\\n(aP | |
2013 | . el \{\ | |
2014 | . as b1 \&\\*(xR\\*(A\\n(aP\fP\s0 | |
2015 | . if \\n(aC>\\n(aP \{\ | |
2016 | . nr aP+1 | |
2017 | . if \\n(C\\n(aP==2 \{\ | |
2018 | . as b1 \&(\\*(A\\n(aP) | |
2019 | . nr aP+1 | |
2020 | . \} | |
2021 | . if \\n(aC>=\\n(aP \{\ | |
2022 | . c\\n(C\\n(aP | |
2023 | . \} | |
2024 | . \} | |
2025 | . \} | |
2026 | . aZ | |
2027 | . \} | |
2028 | .\} | |
2029 | .. | |
2030 | .\" NS Sx macro - cross section reference | |
2031 | .de Sx | |
2032 | .if \\n(aC==0 \{\ | |
2033 | . ie \\n(.$==0 .tm Sx Usage: .Sx Section Header \\*(Pu (#\\n(.c) | |
2034 | . el \{\ | |
2035 | . ds mN Sx | |
2036 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2037 | . \} | |
2038 | .\} | |
2039 | .\} | |
2040 | .if \\n(aC>\\n(aP \{\ | |
2041 | . nr aP+1 | |
2042 | . as b1 \\*(sX | |
2043 | . nr cF \\n(.f | |
2044 | . nr cZ \\n(.s | |
2045 | . nR | |
2046 | .\} | |
2047 | .. | |
2048 | .\" NS cC macro - column-list end-list | |
2049 | .\" NS eW macro - column indent width | |
2050 | .\" NS cI register - column indent width | |
2051 | .\" NS W[1-5] macro - establish tabs for list-type column | |
2052 | .de cC | |
2053 | 'in \\n(.iu-\\n(o\\n(lCu-\\n(w\\n(lCu | |
2054 | .ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i | |
2055 | .fi | |
2056 | .tZ | |
2057 | .nr lC-1 | |
2058 | .tY | |
2059 | .. | |
2060 | .de W1 | |
2061 | .ta \w'\\*(A1 'u | |
2062 | .nr eW \w'\\*(A1 'u | |
2063 | 'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu | |
2064 | .. | |
2065 | .de W2 | |
2066 | .\" ARGS2 Here is offset == \\n(o\\n(lCu | |
2067 | .ta \w'\\*(A1 'u +\w'\\*(A2 'u | |
2068 | .nr eW \w'\\*(A1 'u+\w'\\*(A2 'u | |
2069 | 'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu | |
2070 | .. | |
2071 | .de W3 | |
2072 | .ta \w'\\*(A1 'u +\w'\\*(A2 'u +\w'\\*(A3 'u | |
2073 | .nr eW \w'\\*(A1 'u+\w'\\*(A2 'u+\w'\\*(A3 'u | |
2074 | 'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu | |
2075 | .. | |
2076 | .de W4 | |
2077 | .\" ARGS4Here is o[\\n(lC] == \\n(o\\n(lCu, | |
2078 | .\" A1==\\*(A1 | |
2079 | .\" A2==\\*(A2 | |
2080 | .\" A3==\\*(A3 | |
2081 | .\" A4==\\*(A4 | |
2082 | .ta \w'\\*(A1 'u +\w'\\*(A2 'u +\w'\\*(A3 'u +\w'\\*(A4 'u | |
2083 | .nr eW \w'\\*(A1 'u+\w'\\*(A2 'u+\w'\\*(A3 'u +\w'\\*(A4 'u | |
2084 | 'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu | |
2085 | .. | |
2086 | .de W5 | |
2087 | .ta \w'\\*(A1 'u +\w'\\*(A2 'u +\w'\\*(A3 'u +\w'\\*(A4 'u +\w'\\*(A5 'u | |
2088 | .nr eW \w'\\*(A1 'u +\w'\\*(A2 'u +\w'\\*(A3 'u +\w'\\*(A4 'u +\w'\\*(A5 'u | |
2089 | ' in \\n(.iu+\\n(eWu+\\n(o\\n(lCu | |
2090 | .. | |
2091 | .\" NS cL macro - column items | |
2092 | .de cL | |
2093 | .if \\n(w\\n(lC==0 .nr w\\n(lC \\n(eWu | |
2094 | .if \\n(.u==0 \{\ | |
2095 | . fi | |
2096 | ' in \\n(.iu+\\n(eWu | |
2097 | .\} | |
2098 | .ti -\\n(eWu | |
2099 | .fV | |
2100 | .nr aP+1 | |
2101 | .ie \\n(aC>=\\n(aP \{\ | |
2102 | . if "\\*(A\\n(aP"Ta" \{\ | |
2103 | . nr jJ \\n(aP-1 | |
2104 | . rm S\\n(jJ | |
2105 | . rr jJ | |
2106 | . \} | |
2107 | . c\\n(C\\n(aP | |
2108 | .\} | |
2109 | .el .tm Usage: .It column_string [Ta [column_string ...] ] (#\\n(.c) | |
2110 | .. | |
2111 | .\" NS Ta macro - append tab (\t) | |
2112 | .de Ta | |
2113 | .ie \\n(aC>0 \{\ | |
2114 | . nr aP+1 | |
2115 | . ie \\n(aC>=\\n(aP \{\ | |
2116 | . if "\\*(A\\n(aP"Ta" \{\ | |
2117 | . nr jJ \\n(aP-1 | |
2118 | . rm S\\n(jJ | |
2119 | . rr jJ | |
2120 | . \} | |
2121 | . as b1 \\t | |
2122 | . c\\n(C\\n(aP | |
2123 | . \} | |
2124 | . el \{\ | |
2125 | . as b1 \\t\\c | |
2126 | . rm S\\n(aP | |
2127 | . pB | |
2128 | . aY | |
2129 | . \} | |
2130 | .\} | |
2131 | .el \{\ | |
2132 | . tm Usage: Ta must follow column entry: e.g. (#\\n(.c) | |
2133 | . tm .It column_string [Ta [column_string ...] ] | |
2134 | .\} | |
2135 | .. | |
2136 | .\" | |
2137 | .\" NS Dl macro - display (one line) literal | |
2138 | .de Dl | |
2139 | 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i | |
2140 | .in \\n(.iu+\\n(Dsu | |
2141 | .ie \\n(aC==0 \{\ | |
2142 | . ie \\n(.$==0 \{\ | |
2143 | . tm Usage: .Dl argument ... (#\\n(.c) | |
2144 | . \} | |
2145 | . el \{\ | |
2146 | . ds mN Dl | |
2147 | . ds A1 \\$1 | |
2148 | . ds A2 \\$2 | |
2149 | . ds A3 \\$3 | |
2150 | . ds A4 \\$4 | |
2151 | . ds A5 \\$5 | |
2152 | . ds A6 \\$6 | |
2153 | . ds A7 \\$7 | |
2154 | . ds A8 \\$8 | |
2155 | . ds A9 \\$9 | |
2156 | . nr fV \\n(.$ | |
2157 | . fV | |
2158 | . Li | |
2159 | . \} | |
2160 | .\} | |
2161 | .el \{\ | |
2162 | . tm Usage: .Dl not callable by other macros (#\\n(.c) | |
2163 | .\} | |
2164 | .in \\n(.iu-\\n(Dsu | |
2165 | .. | |
2166 | .\" | |
2167 | .\" NS D1 macro - display (one line) | |
2168 | .de D1 | |
2169 | 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i | |
2170 | .in \\n(.iu+\\n(Dsu | |
2171 | .ie \\n(aC==0 \{\ | |
2172 | . ie \\n(.$==0 \{\ | |
2173 | . tm Usage: .D1 argument ... (#\\n(.c) | |
2174 | . \} | |
2175 | . el \{\ | |
2176 | . ds mN D1 | |
2177 | . ds A1 \\$1 | |
2178 | . ds A2 \\$2 | |
2179 | . ds A3 \\$3 | |
2180 | . ds A4 \\$4 | |
2181 | . ds A5 \\$5 | |
2182 | . ds A6 \\$6 | |
2183 | . ds A7 \\$7 | |
2184 | . ds A8 \\$8 | |
2185 | . ds A9 \\$9 | |
2186 | . nr fV \\n(.$ | |
2187 | . fV | |
2188 | . nr aP+1 | |
2189 | . ie \\n(C\\n(aP==1 .\\*(A\\n(aP | |
2190 | . el .No | |
2191 | . \} | |
2192 | .\} | |
2193 | .el \{\ | |
2194 | . tm Usage: .D1 not callable by other macros (#\\n(.c) | |
2195 | .\} | |
2196 | .in \\n(.iu-\\n(Dsu | |
2197 | .. | |
2198 | .\" NS Ex macro - DEFUNCT | |
2199 | .de Ex | |
2200 | .tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2201 | .. | |
2202 | .\" | |
2203 | .\" NS Ex macro - DEFUNCT | |
2204 | .de Ex | |
2205 | .tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2206 | .. | |
2207 | .\" | |
2208 | .\" NS Vt macro - Variable type (for forcing old style variable declarations) | |
2209 | .de Vt | |
2210 | .nr cF \\n(.f | |
2211 | .ft \\n(vT | |
2212 | \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2213 | .ft \\n(cF | |
2214 | .. | |
2215 | .\" | |
2216 | .\" NS Ft macro - Function type | |
2217 | .nr fZ 0 | |
2218 | .de Ft | |
2219 | .if \\n(nS>0 \{\ | |
2220 | . if \\n(fZ>0 .Pp | |
2221 | . nr fZ+1 | |
2222 | . nr fY+1 | |
2223 | .\} | |
2224 | .nr cF \\n(.f | |
2225 | .nr cZ \\n(.s | |
2226 | .\" .ft \\n(fT | |
2227 | \&\\*(fT\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2228 | .ft \\n(cF | |
2229 | .fs \\n(cZ | |
2230 | .br | |
2231 | .. | |
2232 | .\" | |
2233 | .\" NS Ot macro - Old Function type (fortran - no newline) | |
2234 | .de Ot | |
2235 | .if \\n(nS>0 \{\ | |
2236 | . if \\n(fZ>0 .Pp | |
2237 | . nr fZ+1 | |
2238 | . nr fY+1 | |
2239 | .\} | |
2240 | .nr cF \\n(.f | |
2241 | .ft \\n(fT | |
2242 | \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2243 | .ft \\n(cF | |
2244 | .. | |
2245 | .\" | |
2246 | .\" NS Fa macro - Function arguments | |
2247 | .de Fa | |
2248 | .if \\n(aC==0 \{\ | |
2249 | . ie \\n(.$==0 .tm Usage: .Fa Function Arguments ... \\*(Pu (#\\n(.c) | |
2250 | . el \{\ | |
2251 | . ds mN Fa | |
2252 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2253 | . \} | |
2254 | .\} | |
2255 | .if \\n(aC>\\n(aP \{\ | |
2256 | . as b1 \\*(fA | |
2257 | . nr aP+1 | |
2258 | . nr cF \\n(.f | |
2259 | . nr cZ \\n(.s | |
2260 | . nR | |
2261 | . if \\n(nS>0 \{\ | |
2262 | . if \\n(fZ>0 .br | |
2263 | . \} | |
2264 | .\} | |
2265 | .. | |
2266 | .\" NS Fn macro - functions | |
2267 | .\" NS fY register - dick with old style function declarations (fortran) | |
2268 | .\" NS fZ register - break a line when more than one function in a synopsis | |
2269 | .\" | |
2270 | .de Fn | |
2271 | .if \\n(aC==0 \{\ | |
2272 | . ie \\n(.$==0 .tm Usage: .Fn function_name function_arg(s) ... \\*(Pu (#\\n(.c) | |
2273 | . el \{\ | |
2274 | . ds mN Fn | |
2275 | . ds A1 \\$1 | |
2276 | . ds A2 \\$2 | |
2277 | . ds A3 \\$3 | |
2278 | . ds A4 \\$4 | |
2279 | . ds A5 \\$5 | |
2280 | . ds A6 \\$6 | |
2281 | . ds A7 \\$7 | |
2282 | . ds A8 \\$8 | |
2283 | . ds A9 \\$9 | |
2284 | . nr fV \\n(.$ | |
2285 | . fV | |
2286 | . \} | |
2287 | .\} | |
2288 | .if \\n(nS>0 \{\ | |
2289 | . if (\\n(fY==0) \{\ | |
2290 | . if \\n(fZ>0 .Pp | |
2291 | . nr fZ+1 | |
2292 | . \} | |
2293 | . nr fD 0 | |
2294 | .\} | |
2295 | .if \\n(aC>\\n(aP \{\ | |
2296 | . nr aP+1 | |
2297 | . nr cF \\n(.f | |
2298 | . nr cZ \\n(.s | |
2299 | . as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp | |
2300 | . ie \\n(aC>\\n(aP \{\ | |
2301 | . as b1 \\*(fA | |
2302 | . nr aP+1 | |
2303 | . f\\n(C\\n(aP | |
2304 | . \} | |
2305 | . el \{\ | |
2306 | . as b1 \\*(rp | |
2307 | . aZ | |
2308 | . \} | |
2309 | . if \\n(nS>0 .br | |
2310 | .\} | |
2311 | .. | |
2312 | .\" | |
2313 | .\" NS f1 macro - class switch | |
2314 | .\" NS f2 macro - handle function arguments | |
2315 | .\" NS f3 macro - punctuation | |
2316 | .\" NS f4 macro - write out function | |
2317 | .de f1 | |
2318 | .as b1 \\*(rp\f\\n(cF\s\\n(cZ | |
2319 | .\\*(A\\n(aP | |
2320 | .. | |
2321 | .de f2 | |
2322 | .as b1 \\*(A\\n(aP | |
2323 | .ie \\n(aC>\\n(aP \{\ | |
2324 | . nr aa \\n(aP | |
2325 | . nr aP+1 | |
2326 | . if \\n(C\\n(aP==2 \{\ | |
2327 | . as b1 \&\|\f\\n(cF\s\\n(cZ,\\*(S\\n(aa\fP\s0\| | |
2328 | . \} | |
2329 | . f\\n(C\\n(aP | |
2330 | .\} | |
2331 | .el \{\ | |
2332 | . as b1 \\*(rp\f\\n(cF\s\\n(cZ | |
2333 | . aZ | |
2334 | .\} | |
2335 | .. | |
2336 | .de f3 | |
2337 | .as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(A\\n(aP | |
2338 | .ie \\n(aC>\\n(aP \{\ | |
2339 | . No | |
2340 | .\} | |
2341 | .el .aZ | |
2342 | .. | |
2343 | .de f4 | |
2344 | .as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(S\\n(aP\\*(A\\n(aP | |
2345 | .ie \\n(aC>\\n(aP \{\ | |
2346 | . nr aP+1 | |
2347 | . No | |
2348 | .\} | |
2349 | .el .aZ | |
2350 | .. | |
2351 | .\" NS Fc - Function close - not implemented yet | |
2352 | .\" NS Fo - Function open - not implemented yet | |
2353 | .\" | |
2354 | .\" Very crude references, stash all reference info into strings (usual | |
2355 | .\" use of b1 buffer, then b1 contents copied to string of retrievable | |
2356 | .\" naming convention), print out reference on .Re request and clean up. | |
2357 | .\" Ordering very limited, no fancy citations, but can do articles, journals | |
2358 | .\" and books - need to add several missing options (like date, city etc). | |
2359 | .\" should be able to grab a refer entry, massage it a wee bit (prefix | |
2360 | .\" a `.' to the %[A-Z]) and not worry (ha!) | |
2361 | .\" | |
2362 | .\" NS Rs macro - Reference Start | |
2363 | .\" NS rS register - Reference Start flag | |
2364 | .\" NS rS string - Reference Start buffer name for next save (of b1 buffer) | |
2365 | .de Rs | |
2366 | .nr rS 1 | |
2367 | .rC | |
2368 | .if \\n(nA==1 .br | |
2369 | .nr Kl 0 | |
2370 | .. | |
2371 | .\" NS Re macro - Reference End | |
2372 | .de Re | |
2373 | .rZ | |
2374 | .rC | |
2375 | .nr rS 0 | |
2376 | .. | |
2377 | .\" NS Js macro - Journal Citation Start | |
2378 | .\" .de Js | |
2379 | .\" .ds rS | |
2380 | .\" .if \\n(nA==1 .br | |
2381 | .\" .rC | |
2382 | .\" .nr jS 1 | |
2383 | .\" .. | |
2384 | .\" .\" .\" NS Je macro - Journal Citation End | |
2385 | .\" .de Je | |
2386 | .\" .jZ | |
2387 | .\" .rC | |
2388 | .\" .nr jS 0 | |
2389 | .\" .. | |
2390 | .\" NS rC macro - reference cleanup | |
2391 | .de rC | |
2392 | .nr uK 0 | |
2393 | .nr jK 0 | |
2394 | .nr nK 0 | |
2395 | .nr oK 0 | |
2396 | .nr qK 0 | |
2397 | .nr rK 0 | |
2398 | .nr tK 0 | |
2399 | .nr vK 0 | |
2400 | .ds rS | |
2401 | .rm U1 U2 U3 U4 U5 U6 U7 U8 | |
2402 | .rm uK jK nK oK rK qK tK vK | |
2403 | .. | |
2404 | .\" NS rZ macro - reference print | |
2405 | .de rZ | |
2406 | .tm here is Kl==\\n(Kl | |
2407 | .tm Here is tK==\\n(tK %T \\*(tK | |
2408 | .tm here is oK==\\n(oK %O \\*(oK | |
2409 | .if \\n(uK \{\&\\*(U1, | |
2410 | . nr aK 1 | |
2411 | . if (\\n(uK>1 \{\ | |
2412 | . aK | |
2413 | . \} | |
2414 | . nr Kl-\\n(uK | |
2415 | .\} | |
2416 | .if \\n(tK \{\ | |
2417 | . nr Kl-1 | |
2418 | . if \\n(Kl==0 \{\ | |
2419 | . ie (\\n(jK:\\n(bK) \&\\*(tK. | |
2420 | . el \&\\*(eM\\*(tK\\*(nO. | |
2421 | . \} | |
2422 | . if \\n(Kl>0 \{\ | |
2423 | . ie (\\n(jK:\\n(bK) \&\\*(tK | |
2424 | . el \&\\*(eM\\*(tK\\*(nO, | |
2425 | . \} | |
2426 | .\} | |
2427 | .if \\n(bK \{\ | |
2428 | . nr Kl-1 | |
2429 | . if \\n(Kl==0 \&\\*(eM\\*(bK\\*(nO. | |
2430 | . if \\n(Kl>0 \&\\*(eM\\*(bK\\*(nO, | |
2431 | .\} | |
2432 | .if \\n(jK \{\ | |
2433 | . nr Kl-1 | |
2434 | . if \\n(Kl==0 \&\\*(eM\\*(jK\\*(nO. | |
2435 | . if \\n(Kl>0 \&\\*(eM\\*(jK\\*(nO, | |
2436 | .\} | |
2437 | .if \\n(rK \{\ | |
2438 | . nr Kl-1 | |
2439 | . if \\n(Kl==0 \&\\*(rK. | |
2440 | . if \\n(Kl>0 \&\\*(rK, | |
2441 | .\} | |
2442 | .if \\n(nK \{\ | |
2443 | . nr Kl-1 | |
2444 | . if \\n(Kl==0 \&\\*(nK. | |
2445 | . if \\n(Kl>0 \&\\*(nK, | |
2446 | .\} | |
2447 | .if \\n(vK \{\ | |
2448 | . nr Kl-1 | |
2449 | . if \\n(Kl==0 \&\\*(vK. | |
2450 | . if \\n(Kl>0 \&\\*(vK, | |
2451 | .\} | |
2452 | .if \\n(oK \{\ | |
2453 | . nr Kl-1 | |
2454 | . if \\n(Kl==0 \&\\*(oK. | |
2455 | . if \\n(Kl>0 \&\\*(oK, | |
2456 | .\} | |
2457 | .if \\n(Kl>0 .tm unresolved reference problem | |
2458 | .. | |
2459 | .\" NS aK macro - print out reference authors | |
2460 | .de aK | |
2461 | .nr aK+1 | |
2462 | .ie (\\n(uK-\\n(aK)==0 \{\&and \\*(U\\n(aK, | |
2463 | .el \{\&\\*(U\\n(aK, | |
2464 | . aK | |
2465 | .\} | |
2466 | .. | |
2467 | .\" NS %A macro - reference author(s) | |
2468 | .\" NS uK register - reference author(s) counter | |
2469 | .\" NS U[1-9] strings - reference author(s) names | |
2470 | .de %A | |
2471 | .if \\n(aC==0 \{\ | |
2472 | . ie \\n(.$==0 .tm Usage: .%A Author_name (#\\n(.c) | |
2473 | . el \{\ | |
2474 | . nr uK+1 | |
2475 | . nr Kl+1 | |
2476 | . ds rS U\\n(uK | |
2477 | . ds mN %A | |
2478 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2479 | . \} | |
2480 | .\} | |
2481 | .if \\n(aC>\\n(aP \{\ | |
2482 | . as b1 \\*(rA | |
2483 | . nr aP+1 | |
2484 | . nr cF \\n(.f | |
2485 | . nr cZ \\n(.s | |
2486 | . rR | |
2487 | .\} | |
2488 | .. | |
2489 | .\" NS %B macro - [reference] Book Name | |
2490 | .\" NS bK string - Book Name | |
2491 | .\" NS bK register - Book Name flag | |
2492 | .de %B | |
2493 | .if \\n(aC==0 \{\ | |
2494 | . ie \\n(.$==0 .tm Usage: .%B Book Name (#\\n(.c) | |
2495 | . el \{\ | |
2496 | . ds mN %B | |
2497 | . nr bK+1 | |
2498 | . nr Kl+1 | |
2499 | . ds rS bK | |
2500 | . ds A1 \\$1 | |
2501 | . ds A2 \\$2 | |
2502 | . ds A3 \\$3 | |
2503 | . ds A4 \\$4 | |
2504 | . ds A5 \\$5 | |
2505 | . ds A6 \\$6 | |
2506 | . ds A7 \\$7 | |
2507 | . ds A8 \\$8 | |
2508 | . ds A9 \\$9 | |
2509 | . nr fV \\n(.$ | |
2510 | . fV | |
2511 | . \} | |
2512 | .\} | |
2513 | .if \\n(aC>\\n(aP \{\ | |
2514 | . as b1 \\*(rA | |
2515 | . nr aP+1 | |
2516 | . nr cF \\n(.f | |
2517 | . nr cZ \\n(.s | |
2518 | . rR | |
2519 | .\} | |
2520 | .. | |
2521 | .\" NS %J macro - [reference] Journal Name | |
2522 | .\" NS jK register - [reference] Journal Name flag | |
2523 | .\" NS jK string - [reference] Journal Name | |
2524 | .de %J | |
2525 | .if \\n(aC==0 \{\ | |
2526 | . ie \\n(.$==0 .tm Usage: .%J Journal Name (#\\n(.c) | |
2527 | . el \{\ | |
2528 | . ds mN %J | |
2529 | . nr jK+1 | |
2530 | . ds rS jK | |
2531 | . nr Kl+1 | |
2532 | . ds A1 \\$1 | |
2533 | . ds A2 \\$2 | |
2534 | . ds A3 \\$3 | |
2535 | . ds A4 \\$4 | |
2536 | . ds A5 \\$5 | |
2537 | . ds A6 \\$6 | |
2538 | . ds A7 \\$7 | |
2539 | . ds A8 \\$8 | |
2540 | . ds A9 \\$9 | |
2541 | . nr fV \\n(.$ | |
2542 | . fV | |
2543 | . \} | |
2544 | .\} | |
2545 | .if \\n(aC>\\n(aP \{\ | |
2546 | . as b1 \\*(eM | |
2547 | . nr aP+1 | |
2548 | . nr cF \\n(.f | |
2549 | . nr cZ \\n(.s | |
2550 | . rR | |
2551 | .\} | |
2552 | .. | |
2553 | .\" NS %N macro - [reference] issue number | |
2554 | .\" NS nK register - [reference] issue number flag | |
2555 | .\" NS nK string - [reference] issue number | |
2556 | .de %N | |
2557 | .if \\n(aC==0 \{\ | |
2558 | . ie \\n(.$==0 .tm Usage: .%N issue number (#\\n(.c) | |
2559 | . el \{\ | |
2560 | . nr nK+1 | |
2561 | . nr Kl+1 | |
2562 | . ds rS nK | |
2563 | . ds mN %N | |
2564 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2565 | . \} | |
2566 | .\} | |
2567 | .if \\n(aC>\\n(aP \{\ | |
2568 | . as b1 \\*(rA | |
2569 | . nr aP+1 | |
2570 | . nr cF \\n(.f | |
2571 | . nr cZ \\n(.s | |
2572 | . rR | |
2573 | .\} | |
2574 | .. | |
2575 | .\" NS %O macro - [reference] optional information | |
2576 | .\" NS oK register - [reference] optional information flag | |
2577 | .\" NS oK string - [reference] optional information | |
2578 | .de %O | |
2579 | .if \\n(aC==0 \{\ | |
2580 | . ie \\n(.$==0 .tm Usage: .%O optional information ... \\*(Pu (#\\n(.c) | |
2581 | . el \{\ | |
2582 | . ds mN %O | |
2583 | . nr oK+1 | |
2584 | . nr Kl+1 | |
2585 | . ds rS oK | |
2586 | . ds A1 \\$1 | |
2587 | . ds A2 \\$2 | |
2588 | . ds A3 \\$3 | |
2589 | . ds A4 \\$4 | |
2590 | . ds A5 \\$5 | |
2591 | . ds A6 \\$6 | |
2592 | . ds A7 \\$7 | |
2593 | . ds A8 \\$8 | |
2594 | . ds A9 \\$9 | |
2595 | . nr fV \\n(.$ | |
2596 | . fV | |
2597 | . \} | |
2598 | .\} | |
2599 | .if \\n(aC>\\n(aP \{\ | |
2600 | . as b1 \\*(rA | |
2601 | . nr aP+1 | |
2602 | . nr cF \\n(.f | |
2603 | . nr cZ \\n(.s | |
2604 | . rR | |
2605 | .\} | |
2606 | .. | |
2607 | .\" NS %Q macro - Corporate or Foreign Author | |
2608 | .\" NS qK string - Corporate or Foreign Author | |
2609 | .\" NS qK register - Corporate or Foreign Author flag | |
2610 | .de %Q | |
2611 | .if \\n(aC==0 \{\ | |
2612 | . ie \\n(.$==0 .tm Usage: .%Q Corporate or Foreign Author (#\\n(.c) | |
2613 | . el \{\ | |
2614 | . ds mN %Q | |
2615 | . nr qK+1 | |
2616 | . nr Kl+1 | |
2617 | . ds rS qK | |
2618 | . ds A1 \\$1 | |
2619 | . ds A2 \\$2 | |
2620 | . ds A3 \\$3 | |
2621 | . ds A4 \\$4 | |
2622 | . ds A5 \\$5 | |
2623 | . ds A6 \\$6 | |
2624 | . ds A7 \\$7 | |
2625 | . ds A8 \\$8 | |
2626 | . ds A9 \\$9 | |
2627 | . nr fV \\n(.$ | |
2628 | . fV | |
2629 | . \} | |
2630 | .\} | |
2631 | .if \\n(aC>\\n(aP \{\ | |
2632 | . as b1 \\*(rA | |
2633 | . nr aP+1 | |
2634 | . nr cF \\n(.f | |
2635 | . nr cZ \\n(.s | |
2636 | . rR | |
2637 | .\} | |
2638 | .. | |
2639 | .\" NS %R macro - [reference] report name | |
2640 | .\" NS rK string - [reference] report name | |
2641 | .\" NS rK register - [reference] report flag | |
2642 | .de %R | |
2643 | .if \\n(aC==0 \{\ | |
2644 | . ie \\n(.$==0 .tm Usage: .%R reference report (#\\n(.c) | |
2645 | . el \{\ | |
2646 | . ds mN %R | |
2647 | . nr rK+1 | |
2648 | . nr Kl+1 | |
2649 | . ds rS rK | |
2650 | . ds A1 \\$1 | |
2651 | . ds A2 \\$2 | |
2652 | . ds A3 \\$3 | |
2653 | . ds A4 \\$4 | |
2654 | . ds A5 \\$5 | |
2655 | . ds A6 \\$6 | |
2656 | . ds A7 \\$7 | |
2657 | . ds A8 \\$8 | |
2658 | . ds A9 \\$9 | |
2659 | . nr fV \\n(.$ | |
2660 | . fV | |
2661 | . \} | |
2662 | .\} | |
2663 | .if \\n(aC>\\n(aP \{\ | |
2664 | . as b1 \\*(rA | |
2665 | . nr aP+1 | |
2666 | . nr cF \\n(.f | |
2667 | . nr cZ \\n(.s | |
2668 | . rR | |
2669 | .\} | |
2670 | .. | |
2671 | .\" NS %T macro - reference title | |
2672 | .\" NS tK string - reference title | |
2673 | .\" NS tK register - reference title flag | |
2674 | .de %T | |
2675 | .if \\n(aC==0 \{\ | |
2676 | . ie \\n(.$==0 .tm Usage: .%T (#\\n(.c) | |
2677 | . el \{\ | |
2678 | . ds mN %T | |
2679 | . nr tK+1 | |
2680 | . nr Kl+1 | |
2681 | . ds rS tK | |
2682 | . ds A1 \\$1 | |
2683 | . ds A2 \\$2 | |
2684 | . ds A3 \\$3 | |
2685 | . ds A4 \\$4 | |
2686 | . ds A5 \\$5 | |
2687 | . ds A6 \\$6 | |
2688 | . ds A7 \\$7 | |
2689 | . ds A8 \\$8 | |
2690 | . ds A9 \\$9 | |
2691 | . nr fV \\n(.$ | |
2692 | . fV | |
2693 | . \} | |
2694 | .\} | |
2695 | .if \\n(aC>\\n(aP \{\ | |
2696 | . ie \\n(jS==1 \{\ | |
2697 | . nr cF \\n(.f | |
2698 | . nr cZ \\n(.s | |
2699 | . ds qL \&\\*(Lq\\*(rA | |
2700 | . ds qR \&\\*(Rq\f\\n(cF\s\\n(cZ | |
2701 | . En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2702 | . \} | |
2703 | . el \{\ | |
2704 | . as b1 \\*(eM | |
2705 | . nr aP+1 | |
2706 | . nr cF \\n(.f | |
2707 | . nr cZ \\n(.s | |
2708 | . rR | |
2709 | . \} | |
2710 | .\} | |
2711 | .. | |
2712 | .\" NS %V macro - reference volume | |
2713 | .\" NS vK string - reference volume | |
2714 | .\" NS vK register - reference volume flag | |
2715 | .de %V | |
2716 | .if \\n(aC==0 \{\ | |
2717 | . ie \\n(.$==0 .tm Usage: .%V Volume , ... \\*(Pu (#\\n(.c) | |
2718 | . el \{\ | |
2719 | . ds mN %V | |
2720 | . nr vK+1 | |
2721 | . nr Kl+1 | |
2722 | . ds rS vK | |
2723 | . aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2724 | . \} | |
2725 | .\} | |
2726 | .if \\n(aC>\\n(aP \{\ | |
2727 | . as b1 \\*(rA | |
2728 | . nr aP+1 | |
2729 | . nr cF \\n(.f | |
2730 | . nr cZ \\n(.s | |
2731 | . nR | |
2732 | .\} | |
2733 | .. | |
2734 | .\" NS rR macro - reference recursion routine | |
2735 | .\" NS jM local register | |
2736 | .\" NS jN local register | |
2737 | .de rR | |
2738 | .hy 0 | |
2739 | .nr jM \\n(C\\n(aP | |
2740 | .ie \\n(jM==1 \{\ | |
2741 | . as b1 \&\f\\n(cF\s\\n(cZ | |
2742 | . ie "\\*(A\\n(aP"Tn" \{\ | |
2743 | . .nN | |
2744 | . \} | |
2745 | . el \{\ | |
2746 | . if \\n(aC>8 .tm Usage: \\*(mN - maximum 8 arguments (#\\n(.c) | |
2747 | . aI rR 1 | |
2748 | . \\*(A\\n(aP | |
2749 | . \} | |
2750 | .\} | |
2751 | .el \{\ | |
2752 | . nr jN \\n(aP | |
2753 | . ie \\n(jM==2 .as b1 \&\\*(A\\n(aP | |
2754 | . el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0 | |
2755 | . ie \\n(aC==\\n(aP \{\ | |
2756 | . as b1 \&\f\\n(cF\s\\n(cZ | |
2757 | . rD | |
2758 | . \} | |
2759 | . el \{\ | |
2760 | . nr aP+1 | |
2761 | . as b1 \&\\*(S\\n(jN | |
2762 | . rR | |
2763 | . \} | |
2764 | .\} | |
2765 | .rr jM jN | |
2766 | .. | |
2767 | .\" NS rD macro - save b1 buffer in to appropriate name | |
2768 | .de rD | |
2769 | .as \\*(rS \\*(b1 | |
2770 | .ds b1 | |
2771 | .ds rS | |
2772 | .aY | |
2773 | .. | |
2774 | .\" NS Hf macro - source include header files. | |
2775 | .de Hf | |
2776 | .Pp | |
2777 | File: | |
2778 | .Pa \\$1 | |
2779 | .Pp | |
2780 | .nr cF \\n(.f | |
2781 | .nr cZ \\n(.s | |
2782 | .ie t \{\ | |
2783 | \&\\*(lI | |
2784 | .br | |
2785 | .ta +9n 18n 27n 36n 45n 54n 63n 72n | |
2786 | .\} | |
2787 | .el \{\ | |
2788 | .ta +8n 16n 24n 32n 40n 48n 56n 64n 72n | |
2789 | .\} | |
2790 | .nf | |
2791 | .so \\$1 | |
2792 | .fi | |
2793 | .ft \\n(cF | |
2794 | .fz \\n(cZ | |
2795 | .Pp | |
2796 | .. | |
2797 | .\" NS An macro - author name (for AUTHOR section only) | |
2798 | .\" NS aN register | |
2799 | .nr aN 0 | |
2800 | .de An | |
2801 | .ie \\n(aN==1 \{\ | |
2802 | . br | |
2803 | .\} | |
2804 | .el \{\ | |
2805 | . nr aN 1 | |
2806 | .\} | |
2807 | \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 | |
2808 | .. | |
2809 | .\" NS Sf macro -defunct | |
2810 | .de Sf | |
2811 | .tm .Sf defunct, use prefix or Ns | |
2812 | .. |