Annotation of researchv10no/cmd/xref/xrefb.c, revision 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.