1: #
   2: 
   3: #include "m6.h"
   4: 
   5: char *
   6: finddef(n) {
   7:     char *p;
   8:     if((p = lookup(arg(n)))==0)
   9:         if((p = lookup(""))==0) diag("Software error");
  10:     return(p);
  11: }
  12: 
  13: char *
  14: lookup(s) {
  15:     char *dt;
  16:     dt = df;
  17:     while(dt>d0) {
  18:         if(dt->dswitch>=0 && comp(s,&dt->dident)) return(dt);
  19:         dt =+ dt->prev;
  20:     }
  21:     return(0);
  22: }
  23: 
  24: comp(s,t)
  25: char *s, *t;
  26: {
  27:     for(;*s++ == *t;t++)
  28:         if(*t==0) return(1);
  29:     return(0);
  30: }
  31: 
  32: remove(n) {
  33:     char *p;
  34:     if(p = lookup(arg(n))) if(p>d0+2) {
  35:         trashflag++;
  36:         p->dswitch = -1;
  37:     }
  38: }
  39: 
  40: trash() {
  41:     char *p,*q,*r;
  42:     if(lg>0) return;
  43:     while(df->dswitch<0) {
  44:         de = df;
  45:         df =+ df->prev;
  46:         trashflag--;
  47:     }
  48:     if(trashflag<=0) return;
  49:     de = (de+1)&0177776;
  50:     revptr(de,df,&p,&q);
  51:     q = p;
  52:     for(;p->word!=0;p=+r->word) {
  53:         r = p;
  54:         if(p->dswitch>=0) {
  55:             r = q;
  56:             q = move(p,q,p->word);
  57:         }
  58:     }
  59:     q->word = 0;
  60:     revptr(d0,d0+2,&df,&de);
  61: }
  62: 
  63: 
  64: revptr(p,q,np,nq)
  65: char *p, *q, **np, **nq;
  66: {
  67:     int t;
  68:     p->word = 0;
  69:     while((t = q->word)!=0) {
  70:         q->word = p-q;
  71:         p = q;
  72:         q =+ t;
  73:         if(q<d0 || q>dmax) diag("Software error");
  74:     }
  75:     *np = p;
  76:     *nq = q;
  77: }
  78: 
  79: char *
  80: move(from,to,count)
  81: char *from, *to;
  82: {
  83:     while(count-->0) *to++ = *from++;
  84:     return(to);
  85: }

Defined functions

comp defined in line 24; used 5 times
finddef defined in line 5; used 4 times
lookup defined in line 13; used 3 times
  • in line 8-9(2), 34
move defined in line 79; used 3 times
remove defined in line 32; used 3 times
revptr defined in line 64; used 3 times
trash defined in line 40; used 1 times
Last modified: 1975-07-17
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 584
Valid CSS Valid XHTML 1.0 Strict