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