xref: /plan9/sys/src/cmd/htmlroff/t20.c (revision 426d2b71458df9b491ba6c167f699b3f1f7b0428)
1 #include "a.h"
2 
3 /*
4  * 20. Miscellaneous
5  */
6 
7 /* .mc - margin character */
8 /* .ig - ignore; treated like a macro in t7.c */
9 
10 /* .pm - print macros and strings */
11 
12 void
r_pm(int argc,Rune ** argv)13 r_pm(int argc, Rune **argv)
14 {
15 	int i;
16 
17 	if(argc == 1){
18 		printds(0);
19 		return;
20 	}
21 	if(runestrcmp(argv[1], L("t")) == 0){
22 		printds(1);
23 		return;
24 	}
25 	for(i=1; i<argc; i++)
26 		fprint(2, "%S: %S\n", argv[i], getds(argv[i]));
27 }
28 
29 void
r_tm(Rune * name)30 r_tm(Rune *name)
31 {
32 	Rune *line;
33 
34 	USED(name);
35 
36 	line = readline(CopyMode);
37 	fprint(2, "%S\n", line);
38 	free(line);
39 }
40 
41 void
r_ab(Rune * name)42 r_ab(Rune *name)
43 {
44 	USED(name);
45 
46 	r_tm(L("ab"));
47 	exits(".ab");
48 }
49 
50 void
r_lf(int argc,Rune ** argv)51 r_lf(int argc, Rune **argv)
52 {
53 	if(argc == 1)
54 		return;
55 	if(argc == 2)
56 		setlinenumber(nil, eval(argv[1]));
57 	if(argc == 3)
58 		setlinenumber(argv[2], eval(argv[1]));
59 }
60 
61 void
r_fl(int argc,Rune ** argv)62 r_fl(int argc, Rune **argv)
63 {
64 	USED(argc);
65 	USED(argv);
66 	Bflush(&bout);
67 }
68 
69 void
t20init(void)70 t20init(void)
71 {
72 	addreq(L("mc"), r_warn, -1);
73 	addraw(L("tm"), r_tm);
74 	addraw(L("ab"), r_ab);
75 	addreq(L("lf"), r_lf, -1);
76 	addreq(L("pm"), r_pm, -1);
77 	addreq(L("fl"), r_fl, 0);
78 }
79 
80