plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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 }