xref: /plan9/sys/src/cmd/tbl/tf.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
13e12c5d1SDavid du Colombier /* tf.c: save and restore fill mode around table */
23e12c5d1SDavid du Colombier # include "t.h"
33e12c5d1SDavid du Colombier 
43e12c5d1SDavid du Colombier void
savefill(void)53e12c5d1SDavid du Colombier savefill(void)
63e12c5d1SDavid du Colombier {
73e12c5d1SDavid du Colombier 			/* remembers various things: fill mode, vs, ps in mac 35 (SF) */
8*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".de %d\n", SF);
9*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".ps \\n(.s\n");
10*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".vs \\n(.vu\n");
11*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".in \\n(.iu\n");
12*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".if \\n(.u .fi\n");
13*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".if \\n(.j .ad\n");
14*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".if \\n(.j=0 .na\n");
15*219b2ee8SDavid du Colombier 	Bprint(&tabout, "..\n");
16*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".nf\n");
173e12c5d1SDavid du Colombier 	/* set obx offset if useful */
18*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".nr #~ 0\n");
19*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".if \\n(.T .if n .nr #~ 0.6n\n");
203e12c5d1SDavid du Colombier }
213e12c5d1SDavid du Colombier 
223e12c5d1SDavid du Colombier 
233e12c5d1SDavid du Colombier void
rstofill(void)243e12c5d1SDavid du Colombier rstofill(void)
253e12c5d1SDavid du Colombier {
26*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".%d\n", SF);
273e12c5d1SDavid du Colombier }
283e12c5d1SDavid du Colombier 
293e12c5d1SDavid du Colombier 
303e12c5d1SDavid du Colombier void
endoff(void)313e12c5d1SDavid du Colombier endoff(void)
323e12c5d1SDavid du Colombier {
333e12c5d1SDavid du Colombier 	int	i;
343e12c5d1SDavid du Colombier 
353e12c5d1SDavid du Colombier 	for (i = 0; i < MAXHEAD; i++)
363e12c5d1SDavid du Colombier 		if (linestop[i])
37*219b2ee8SDavid du Colombier 			Bprint(&tabout, ".nr #%c 0\n", linestop[i] + 'a' - 1);
383e12c5d1SDavid du Colombier 	for (i = 0; i < texct; i++)
39*219b2ee8SDavid du Colombier 		Bprint(&tabout, ".rm %c+\n", texstr[i]);
40*219b2ee8SDavid du Colombier 	Bprint(&tabout, "%s\n", last);
413e12c5d1SDavid du Colombier }
423e12c5d1SDavid du Colombier 
433e12c5d1SDavid du Colombier 
443e12c5d1SDavid du Colombier void
ifdivert(void)453e12c5d1SDavid du Colombier ifdivert(void)
463e12c5d1SDavid du Colombier {
47*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".ds #d .d\n");
48*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".if \\(ts\\n(.z\\(ts\\(ts .ds #d nl\n");
493e12c5d1SDavid du Colombier }
503e12c5d1SDavid du Colombier 
513e12c5d1SDavid du Colombier 
523e12c5d1SDavid du Colombier void
saveline(void)533e12c5d1SDavid du Colombier saveline(void)
543e12c5d1SDavid du Colombier {
55*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".if \\n+(b.=1 .nr d. \\n(.c-\\n(c.-1\n");
563e12c5d1SDavid du Colombier 	linstart = iline;
573e12c5d1SDavid du Colombier }
583e12c5d1SDavid du Colombier 
593e12c5d1SDavid du Colombier 
603e12c5d1SDavid du Colombier void
restline(void)613e12c5d1SDavid du Colombier restline(void)
623e12c5d1SDavid du Colombier {
63*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".if \\n-(b.=0 .nr c. \\n(.c-\\n(d.-%d\n", iline - linstart);
643e12c5d1SDavid du Colombier 	linstart = 0;
653e12c5d1SDavid du Colombier }
663e12c5d1SDavid du Colombier 
673e12c5d1SDavid du Colombier 
683e12c5d1SDavid du Colombier void
cleanfc(void)693e12c5d1SDavid du Colombier cleanfc(void)
703e12c5d1SDavid du Colombier {
71*219b2ee8SDavid du Colombier 	Bprint(&tabout, ".fc\n");
723e12c5d1SDavid du Colombier }
733e12c5d1SDavid du Colombier 
743e12c5d1SDavid du Colombier 
75