Annotation of researchv10no/cmd/xref/xrefb.c, revision 1.1.1.1

1.1       root        1: #include "ctype.h"
                      2: #include "output.h"
                      3: #include "input.h"
                      4: #define eqstr(a,b) (cf(a,b)==0)
                      5: #define cpstr(x) movstr(w,x)
                      6: #define MAXW 128
                      7: 
                      8: char   w[MAXW];
                      9: char   word();
                     10: int    width=120;
                     11: 
                     12: main(argc,argv)
                     13: int    argc;
                     14: char   *argv[];
                     15: {
                     16:        char f1[MAXW], f2[MAXW];
                     17:        FILEBLK f;
                     18:        char first;
                     19: 
                     20:        /* args ? */
                     21:        if(argc>1) {
                     22:                width=atoi(argv[1]);
                     23:        }
                     24: 
                     25:        initf(0);
                     26:        f1[0]=0; f2[0]=0;
                     27: 
                     28:        while(eof==0) {
                     29:                word();
                     30: 
                     31:                if(w[0]!=first) {
                     32:                        first=w[0];
                     33:                        newline();
                     34:                }
                     35: 
                     36:                if(eqstr(w,f1)) {
                     37:                        word();
                     38:                        if(!eqstr(w,f2)) {
                     39:                                print("\n%16t%s", w);
                     40:                                ensure(32);
                     41:                                cpstr(f2);
                     42:                        }
                     43:                }else{  cpstr(f1);
                     44:                        print("\n%s", f1);
                     45:                        ensure(16);
                     46:                        word(); cpstr(f2);
                     47:                        print("%s", f2);
                     48:                        ensure(32);
                     49:                }
                     50: 
                     51:                word();
                     52:                if(charpos()>=width) {
                     53:                        print("\n%32t");
                     54:                }
                     55:                print("%s %4t", w);
                     56:        }
                     57:        exit(0);
                     58: }
                     59: 
                     60: ensure(n)
                     61: int    n;
                     62: {
                     63:        if(charpos()<n-1)
                     64:                print("%T",n);
                     65:        else    print("\n%T",n);
                     66: }
                     67: 
                     68: char   word()
                     69: {
                     70:        register char *p=w;
                     71:        register char c;
                     72: 
                     73:        while((c=readc())!=':' && c!='\n' && c!=EOF) {
                     74:                if(p<&w[MAXW]) {
                     75:                        *p++ = c;
                     76:                }
                     77:        }
                     78:        *p++ = 0;
                     79:        return(c&0377);
                     80: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.