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