t20.c (1020B)
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 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 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 42 r_ab(Rune *name) 43 { 44 USED(name); 45 46 r_tm(L("ab")); 47 exits(".ab"); 48 } 49 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 } 60 61 void 62 r_fl(int argc, Rune **argv) 63 { 64 USED(argc); 65 USED(argv); 66 Bflush(&bout); 67 } 68 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 }