Commit | Line | Data |
---|---|---|
16f3713b TL |
1 | # include "e.h" |
2 | # include "e.def" | |
3 | ||
4 | diacrit(p1, type) int p1, type; { | |
5 | int c, t; | |
6 | ||
7 | c = oalloc(); | |
8 | t = oalloc(); | |
9 | nrwid(p1, ps, p1); | |
10 | printf(".nr 10 %du\n", max(eht[p1]-ebase[p1]-VERT(2),0)); | |
11 | switch(type) { | |
12 | case VEC: /* vec */ | |
13 | case DYAD: /* dyad */ | |
14 | printf(".ds %d \\v'-1'_\\v'1'\n", c); | |
15 | break; | |
16 | case HAT: | |
17 | printf(".ds %d ^\n", c); | |
18 | break; | |
19 | case TILDE: | |
20 | printf(".ds %d ~\n", c); | |
21 | break; | |
22 | case DOT: | |
23 | printf(".ds %d \\v'-1'.\\v'1'\n", c); | |
24 | break; | |
25 | case DOTDOT: | |
26 | printf(".ds %d \\v'-1'..\\v'1'\n", c); | |
27 | break; | |
28 | case BAR: | |
29 | printf(".ds %d \\v'-1'\\l'\\n(%du'\\v'1'\n", | |
30 | c, p1); | |
31 | break; | |
32 | case UNDER: | |
33 | printf(".ds %d \\l'\\n(%du'\n", c, p1); | |
34 | break; | |
35 | } | |
36 | nrwid(c, ps, c); | |
37 | printf(".as %d \\h'-\\n(%du-\\n(%du/2u'\\v'0-\\n(10u'\\*(%d", | |
38 | p1, p1, c, c); | |
39 | printf("\\v'\\n(10u'\\h'-\\n(%du+\\n(%du/2u'\n", c, p1); | |
40 | if (type != UNDER) | |
41 | eht[p1] += VERT(1); | |
42 | if (dbg) printf(".\tdiacrit: %c over S%d, h=%d, b=%d\n", type, p1, eht[p1], ebase[p1]); | |
43 | ofree(c); ofree(t); | |
44 | } |