plan9port

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

t3.c (849B)


      1 #include "a.h"
      2 
      3 /*
      4  * Section 3 - page control (mostly irrelevant).
      5  */
      6 
      7 /* page offset */
      8 void
      9 po(int o)
     10 {
     11 	nr(L(".o0"), getnr(L(".o")));
     12 	nr(L(".o"), o);
     13 }
     14 
     15 void
     16 r_po(int argc, Rune **argv)
     17 {
     18 	if(argc == 1){
     19 		po(getnr(L(".o0")));
     20 		return;
     21 	}
     22 	if(argv[1][0] == '+')
     23 		po(getnr(L(".o"))+evalscale(argv[1]+1, 'v'));
     24 	else if(argv[1][0] == '-')
     25 		po(getnr(L(".o"))-evalscale(argv[1]+1, 'v'));
     26 	else
     27 		po(evalscale(argv[1], 'v'));
     28 }
     29 
     30 /* .ne - need vertical space */
     31 /* .mk - mark current vertical place */
     32 /* .rt - return upward */
     33 
     34 void
     35 t3init(void)
     36 {
     37 	nr(L(".o"), eval(L("1i")));
     38 	nr(L(".o0"), eval(L("1i")));
     39 	nr(L(".p"), eval(L("11i")));
     40 
     41 	addreq(L("pl"), r_warn, -1);
     42 	addreq(L("bp"), r_nop, -1);
     43 	addreq(L("pn"), r_warn, -1);
     44 	addreq(L("po"), r_po, -1);
     45 	addreq(L("ne"), r_nop, -1);
     46 	addreq(L("mk"), r_nop, -1);
     47 	addreq(L("rt"), r_warn, -1);
     48 }