plan9port

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

t6.c (1165B)


      1 #include "a.h"
      2 
      3 /*
      4  * Section 6 - line length and indenting.
      5  */
      6 
      7 /* set line length */
      8 void
      9 ll(int v)
     10 {
     11 	if(v == 0)
     12 		v = getnr(L(".l0"));
     13 	nr(L(".l0"), getnr(L(".l")));
     14 	nr(L(".l"), v);
     15 }
     16 void
     17 r_ll(int argc, Rune **argv)
     18 {
     19 	if(argc < 2)
     20 		ll(0);
     21 	else if(argv[1][0] == '+')
     22 		ll(getnr(L(".l"))+evalscale(argv[1]+1, 'v'));
     23 	else if(argv[1][0] == '-')
     24 		ll(getnr(L(".l"))-evalscale(argv[1]+1, 'v'));
     25 	else
     26 		ll(evalscale(argv[1], 'm'));
     27 	if(argc > 2)
     28 		warn("extra arguments to .ll");
     29 }
     30 
     31 void
     32 in(int v)
     33 {
     34 	nr(L(".i0"), getnr(L(".i")));
     35 	nr(L(".i"), v);
     36 	nr(L(".ti"), 0);
     37 	/* XXX */
     38 }
     39 void
     40 r_in(int argc, Rune **argv)
     41 {
     42 	br();
     43 	if(argc < 2)
     44 		in(getnr(L(".i0")));
     45 	else if(argv[1][0] == '+')
     46 		in(getnr(L(".i"))+evalscale(argv[1]+1, 'm'));
     47 	else if(argv[1][0] == '-')
     48 		in(getnr(L(".i"))-evalscale(argv[1]+1, 'm'));
     49 	else
     50 		in(evalscale(argv[1], 'm'));
     51 	if(argc > 3)
     52 		warn("extra arguments to .in");
     53 }
     54 
     55 void
     56 ti(int v)
     57 {
     58 	nr(L(".ti"), v);
     59 }
     60 void
     61 r_ti(int argc, Rune **argv)
     62 {
     63 	USED(argc);
     64 	br();
     65 	ti(evalscale(argv[1], 'm'));
     66 }
     67 
     68 void
     69 t6init(void)
     70 {
     71 	addreq(L("ll"), r_ll, -1);
     72 	addreq(L("in"), r_in, -1);
     73 	addreq(L("ti"), r_ti, 1);
     74 
     75 	nr(L(".l"), eval(L("6.5i")));
     76 }