Research V7 development
[unix-history] / usr / src / cmd / neqn / diacrit.c
CommitLineData
44df7640
BK
1# include "e.h"
2# include "e.def"
3
4diacrit(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}