Blame


1 c42a1d3d 2006-02-21 devnull #include "a.h"
2 c42a1d3d 2006-02-21 devnull
3 c42a1d3d 2006-02-21 devnull /*
4 c42a1d3d 2006-02-21 devnull * 11. Local Horizontal and Vertical Motions, and the Width Function.
5 c42a1d3d 2006-02-21 devnull */
6 c42a1d3d 2006-02-21 devnull
7 c42a1d3d 2006-02-21 devnull int
8 c42a1d3d 2006-02-21 devnull e_0(void)
9 c42a1d3d 2006-02-21 devnull {
10 c42a1d3d 2006-02-21 devnull /* digit-width space */
11 c42a1d3d 2006-02-21 devnull return ' ';
12 c42a1d3d 2006-02-21 devnull }
13 c42a1d3d 2006-02-21 devnull
14 c42a1d3d 2006-02-21 devnull int
15 c42a1d3d 2006-02-21 devnull dv(int d)
16 c42a1d3d 2006-02-21 devnull {
17 c42a1d3d 2006-02-21 devnull Rune sub[6];
18 c42a1d3d 2006-02-21 devnull
19 c42a1d3d 2006-02-21 devnull d += getnr(L(".dv"));
20 c42a1d3d 2006-02-21 devnull nr(L(".dv"), d);
21 c42a1d3d 2006-02-21 devnull
22 c42a1d3d 2006-02-21 devnull runestrcpy(sub, L("<sub>"));
23 c42a1d3d 2006-02-21 devnull sub[0] = Ult;
24 c42a1d3d 2006-02-21 devnull sub[4] = Ugt;
25 c42a1d3d 2006-02-21 devnull if(d < 0){
26 c42a1d3d 2006-02-21 devnull sub[3] = 'p';
27 c42a1d3d 2006-02-21 devnull ihtml(L(".dv"), sub);
28 c42a1d3d 2006-02-21 devnull }else if(d > 0)
29 c42a1d3d 2006-02-21 devnull ihtml(L(".dv"), sub);
30 c42a1d3d 2006-02-21 devnull else
31 c42a1d3d 2006-02-21 devnull ihtml(L(".dv"), nil);
32 c42a1d3d 2006-02-21 devnull return 0;
33 c42a1d3d 2006-02-21 devnull }
34 c42a1d3d 2006-02-21 devnull
35 c42a1d3d 2006-02-21 devnull int
36 c42a1d3d 2006-02-21 devnull e_v(void)
37 c42a1d3d 2006-02-21 devnull {
38 c42a1d3d 2006-02-21 devnull dv(eval(getqarg()));
39 c42a1d3d 2006-02-21 devnull return 0;
40 c42a1d3d 2006-02-21 devnull }
41 c42a1d3d 2006-02-21 devnull
42 c42a1d3d 2006-02-21 devnull int
43 c42a1d3d 2006-02-21 devnull e_u(void)
44 c42a1d3d 2006-02-21 devnull {
45 c42a1d3d 2006-02-21 devnull dv(eval(L("-0.5m")));
46 c42a1d3d 2006-02-21 devnull return 0;
47 c42a1d3d 2006-02-21 devnull }
48 c42a1d3d 2006-02-21 devnull
49 c42a1d3d 2006-02-21 devnull int
50 c42a1d3d 2006-02-21 devnull e_d(void)
51 c42a1d3d 2006-02-21 devnull {
52 c42a1d3d 2006-02-21 devnull dv(eval(L("0.5m")));
53 c42a1d3d 2006-02-21 devnull return 0;
54 c42a1d3d 2006-02-21 devnull }
55 c42a1d3d 2006-02-21 devnull
56 c42a1d3d 2006-02-21 devnull int
57 c42a1d3d 2006-02-21 devnull e_r(void)
58 c42a1d3d 2006-02-21 devnull {
59 c42a1d3d 2006-02-21 devnull dv(eval(L("-1m")));
60 c42a1d3d 2006-02-21 devnull return 0;
61 c42a1d3d 2006-02-21 devnull }
62 c42a1d3d 2006-02-21 devnull
63 c42a1d3d 2006-02-21 devnull int
64 c42a1d3d 2006-02-21 devnull e_h(void)
65 c42a1d3d 2006-02-21 devnull {
66 c42a1d3d 2006-02-21 devnull getqarg();
67 c42a1d3d 2006-02-21 devnull return 0;
68 c42a1d3d 2006-02-21 devnull }
69 c42a1d3d 2006-02-21 devnull
70 c42a1d3d 2006-02-21 devnull int
71 c42a1d3d 2006-02-21 devnull e_w(void)
72 c42a1d3d 2006-02-21 devnull {
73 c42a1d3d 2006-02-21 devnull Rune *a;
74 c42a1d3d 2006-02-21 devnull Rune buf[40];
75 d0648192 2007-04-21 devnull static Rune zero;
76 d0648192 2007-04-21 devnull
77 c42a1d3d 2006-02-21 devnull a = getqarg();
78 d0648192 2007-04-21 devnull if(a == nil){
79 d0648192 2007-04-21 devnull warn("no arg for \\w");
80 d0648192 2007-04-21 devnull a = &zero;
81 d0648192 2007-04-21 devnull }
82 c42a1d3d 2006-02-21 devnull runesnprint(buf, sizeof buf, "%ld", runestrlen(a));
83 c42a1d3d 2006-02-21 devnull pushinputstring(buf);
84 c42a1d3d 2006-02-21 devnull nr(L("st"), 0);
85 c42a1d3d 2006-02-21 devnull nr(L("sb"), 0);
86 c42a1d3d 2006-02-21 devnull nr(L("ct"), 0);
87 c42a1d3d 2006-02-21 devnull return 0;
88 c42a1d3d 2006-02-21 devnull }
89 c42a1d3d 2006-02-21 devnull
90 c42a1d3d 2006-02-21 devnull int
91 c42a1d3d 2006-02-21 devnull e_k(void)
92 c42a1d3d 2006-02-21 devnull {
93 c42a1d3d 2006-02-21 devnull getname();
94 c42a1d3d 2006-02-21 devnull warn("%Ck not available", backslash);
95 c42a1d3d 2006-02-21 devnull return 0;
96 c42a1d3d 2006-02-21 devnull }
97 c42a1d3d 2006-02-21 devnull
98 c42a1d3d 2006-02-21 devnull void
99 c42a1d3d 2006-02-21 devnull t11init(void)
100 c42a1d3d 2006-02-21 devnull {
101 c42a1d3d 2006-02-21 devnull addesc('|', e_nop, 0);
102 c42a1d3d 2006-02-21 devnull addesc('^', e_nop, 0);
103 c42a1d3d 2006-02-21 devnull addesc('v', e_v, 0);
104 c42a1d3d 2006-02-21 devnull addesc('h', e_h, 0);
105 c42a1d3d 2006-02-21 devnull addesc('w', e_w, 0);
106 c42a1d3d 2006-02-21 devnull addesc('0', e_0, 0);
107 c42a1d3d 2006-02-21 devnull addesc('u', e_u, 0);
108 c42a1d3d 2006-02-21 devnull addesc('d', e_d, 0);
109 c42a1d3d 2006-02-21 devnull addesc('r', e_r, 0);
110 c42a1d3d 2006-02-21 devnull addesc('k', e_k, 0);
111 c42a1d3d 2006-02-21 devnull }