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 * 5. Vertical spacing.
5 c42a1d3d 2006-02-21 devnull */
6 c42a1d3d 2006-02-21 devnull
7 c42a1d3d 2006-02-21 devnull /* set vertical baseline spacing */
8 c42a1d3d 2006-02-21 devnull void
9 c42a1d3d 2006-02-21 devnull vs(int v)
10 c42a1d3d 2006-02-21 devnull {
11 c42a1d3d 2006-02-21 devnull if(v == 0)
12 c42a1d3d 2006-02-21 devnull v = getnr(L(".v0"));
13 c42a1d3d 2006-02-21 devnull nr(L(".v0"), getnr(L(".v")));
14 c42a1d3d 2006-02-21 devnull nr(L(".v"), v);
15 c42a1d3d 2006-02-21 devnull }
16 c42a1d3d 2006-02-21 devnull
17 c42a1d3d 2006-02-21 devnull void
18 c42a1d3d 2006-02-21 devnull r_vs(int argc, Rune **argv)
19 c42a1d3d 2006-02-21 devnull {
20 c42a1d3d 2006-02-21 devnull if(argc < 2)
21 c42a1d3d 2006-02-21 devnull vs(eval(L("12p")));
22 c42a1d3d 2006-02-21 devnull else if(argv[1][0] == '+')
23 c42a1d3d 2006-02-21 devnull vs(getnr(L(".v"))+evalscale(argv[1]+1, 'p'));
24 c42a1d3d 2006-02-21 devnull else if(argv[1][0] == '-')
25 c42a1d3d 2006-02-21 devnull vs(getnr(L(".v"))-evalscale(argv[1]+1, 'p'));
26 c42a1d3d 2006-02-21 devnull else
27 c42a1d3d 2006-02-21 devnull vs(evalscale(argv[1], 'p'));
28 c42a1d3d 2006-02-21 devnull }
29 c42a1d3d 2006-02-21 devnull
30 c42a1d3d 2006-02-21 devnull /* set line spacing */
31 c42a1d3d 2006-02-21 devnull void
32 c42a1d3d 2006-02-21 devnull ls(int v)
33 c42a1d3d 2006-02-21 devnull {
34 c42a1d3d 2006-02-21 devnull if(v == 0)
35 c42a1d3d 2006-02-21 devnull v = getnr(L(".ls0"));
36 c42a1d3d 2006-02-21 devnull nr(L(".ls0"), getnr(L(".ls")));
37 c42a1d3d 2006-02-21 devnull nr(L(".ls"), v);
38 c42a1d3d 2006-02-21 devnull }
39 c42a1d3d 2006-02-21 devnull void
40 c42a1d3d 2006-02-21 devnull r_ls(int argc, Rune **argv)
41 c42a1d3d 2006-02-21 devnull {
42 c42a1d3d 2006-02-21 devnull ls(argc < 2 ? 0 : eval(argv[1]));
43 c42a1d3d 2006-02-21 devnull }
44 c42a1d3d 2006-02-21 devnull
45 c42a1d3d 2006-02-21 devnull /* .sp - space vertically */
46 c42a1d3d 2006-02-21 devnull /* .sv - save a contiguous vertical block */
47 c42a1d3d 2006-02-21 devnull void
48 c42a1d3d 2006-02-21 devnull sp(int v)
49 c42a1d3d 2006-02-21 devnull {
50 c42a1d3d 2006-02-21 devnull Rune buf[100];
51 c42a1d3d 2006-02-21 devnull double fv;
52 c42a1d3d 2006-02-21 devnull
53 c42a1d3d 2006-02-21 devnull br();
54 c42a1d3d 2006-02-21 devnull fv = v * 1.0/UPI;
55 c42a1d3d 2006-02-21 devnull if(fv > 5)
56 c42a1d3d 2006-02-21 devnull fv = eval(L("1v")) * 1.0/UPI;
57 c42a1d3d 2006-02-21 devnull runesnprint(buf, nelem(buf), "<p style=\"margin-top: 0; margin-bottom: %.2fin\"></p>\n", fv);
58 c42a1d3d 2006-02-21 devnull outhtml(buf);
59 c42a1d3d 2006-02-21 devnull }
60 c42a1d3d 2006-02-21 devnull void
61 c42a1d3d 2006-02-21 devnull r_sp(int argc, Rune **argv)
62 c42a1d3d 2006-02-21 devnull {
63 c42a1d3d 2006-02-21 devnull if(getnr(L(".ns")))
64 c42a1d3d 2006-02-21 devnull return;
65 c42a1d3d 2006-02-21 devnull if(argc < 2)
66 c42a1d3d 2006-02-21 devnull sp(eval(L("1v")));
67 c42a1d3d 2006-02-21 devnull else{
68 c42a1d3d 2006-02-21 devnull if(argv[1][0] == '|'){
69 c42a1d3d 2006-02-21 devnull /* XXX if there's no output yet, do the absolute! */
70 c42a1d3d 2006-02-21 devnull if(verbose)
71 c42a1d3d 2006-02-21 devnull warn("ignoring absolute .sp %d", eval(argv[1]+1));
72 c42a1d3d 2006-02-21 devnull return;
73 c42a1d3d 2006-02-21 devnull }
74 c42a1d3d 2006-02-21 devnull sp(evalscale(argv[1], 'v'));
75 c42a1d3d 2006-02-21 devnull }
76 c42a1d3d 2006-02-21 devnull }
77 c42a1d3d 2006-02-21 devnull
78 c42a1d3d 2006-02-21 devnull void
79 c42a1d3d 2006-02-21 devnull r_ns(int argc, Rune **argv)
80 c42a1d3d 2006-02-21 devnull {
81 c42a1d3d 2006-02-21 devnull USED(argc);
82 c42a1d3d 2006-02-21 devnull USED(argv);
83 c42a1d3d 2006-02-21 devnull nr(L(".ns"), 1);
84 c42a1d3d 2006-02-21 devnull }
85 c42a1d3d 2006-02-21 devnull
86 c42a1d3d 2006-02-21 devnull void
87 c42a1d3d 2006-02-21 devnull r_rs(int argc, Rune **argv)
88 c42a1d3d 2006-02-21 devnull {
89 c42a1d3d 2006-02-21 devnull USED(argc);
90 c42a1d3d 2006-02-21 devnull USED(argv);
91 c42a1d3d 2006-02-21 devnull nr(L(".ns"), 0);
92 c42a1d3d 2006-02-21 devnull }
93 c42a1d3d 2006-02-21 devnull
94 c42a1d3d 2006-02-21 devnull void
95 c42a1d3d 2006-02-21 devnull t5init(void)
96 c42a1d3d 2006-02-21 devnull {
97 c42a1d3d 2006-02-21 devnull addreq(L("vs"), r_vs, -1);
98 c42a1d3d 2006-02-21 devnull addreq(L("ls"), r_ls, -1);
99 c42a1d3d 2006-02-21 devnull addreq(L("sp"), r_sp, -1);
100 c42a1d3d 2006-02-21 devnull addreq(L("sv"), r_sp, -1);
101 c42a1d3d 2006-02-21 devnull addreq(L("os"), r_nop, -1);
102 c42a1d3d 2006-02-21 devnull addreq(L("ns"), r_ns, 0);
103 c42a1d3d 2006-02-21 devnull addreq(L("rs"), r_rs, 0);
104 c42a1d3d 2006-02-21 devnull
105 c42a1d3d 2006-02-21 devnull nr(L(".v"), eval(L("12p")));
106 c42a1d3d 2006-02-21 devnull nr(L(".v0"), eval(L("12p")));
107 c42a1d3d 2006-02-21 devnull nr(L(".ls"), 1);
108 c42a1d3d 2006-02-21 devnull nr(L(".ls0"), 1);
109 c42a1d3d 2006-02-21 devnull }
110 c42a1d3d 2006-02-21 devnull