Blob


1 #include "a.h"
3 /*
4 * 20. Miscellaneous
5 */
7 /* .mc - margin character */
8 /* .ig - ignore; treated like a macro in t7.c */
10 /* .pm - print macros and strings */
12 void
13 r_pm(int argc, Rune **argv)
14 {
15 int i;
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 }
29 void
30 r_tm(Rune *name)
31 {
32 Rune *line;
34 USED(name);
36 line = readline(CopyMode);
37 fprint(2, "%S\n", line);
38 free(line);
39 }
41 void
42 r_ab(Rune *name)
43 {
44 USED(name);
46 r_tm(L("ab"));
47 exits(".ab");
48 }
50 void
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 }
61 void
62 r_fl(int argc, Rune **argv)
63 {
64 USED(argc);
65 USED(argv);
66 Bflush(&bout);
67 }
69 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 }