Annotation of researchv10no/cmd/ccom/vax/tests/T.i, revision 1.1

1.1     ! root        1: int x;  float f;
        !             2: struct {
        !             3:      int  d;
        !             4:      int  x;
        !             5: } s, *sp;
        !             6: 
        !             7: main() {
        !             8:      sp->x = x + f * x;
        !             9: }
        !            10: extern struct  _iobuf {
        !            11:        int     _cnt;
        !            12:        char    *_ptr;
        !            13:        char    *_base;
        !            14:        short   _flag;
        !            15:        char    _file;
        !            16: } _iob[20];
        !            17: struct _iobuf  *fopen();
        !            18: struct _iobuf  *fdopen();
        !            19: struct _iobuf  *freopen();
        !            20: long   ftell();
        !            21: char   *fgets();
        !            22:   struct _Point {
        !            23:        int     x;
        !            24:        int     y;
        !            25: };
        !            26: struct _Rectangle {
        !            27:          struct _Point ll;
        !            28:          struct _Point ur;
        !            29: };
        !            30:   struct _Object {
        !            31:          struct _Object        *link;
        !            32: };
        !            33:   struct _Pool {
        !            34:          struct _Object        *freelist;
        !            35:          struct _Object        *arealist;
        !            36:        int     objsize;
        !            37: };
        !            38:   struct _Vpool {
        !            39:          struct _Object        *next;
        !            40:          struct _Object        *arealist;
        !            41:        int     left;
        !            42:        int     quantum;
        !            43: };
        !            44:          struct _SEQFILE {
        !            45:                int     hidden;
        !            46:        };
        !            47: extern char *myname;
        !            48: extern int nullstring;
        !            49: extern char *stringtab;
        !            50: extern char *execname();
        !            51: extern struct _iobuf *chkfopen();
        !            52: extern   struct _Pool *newpool();
        !            53: extern   struct _Vpool *newvpool();
        !            54: extern char *maketemp();
        !            55: extern char *permspace();
        !            56: extern   struct _SEQFILE *seqopen();
        !            57: extern char *nettoname();
        !            58: extern char *strchr();
        !            59: extern char *strrchr();
        !            60: extern char debug;
        !            61: typedef struct {
        !            62:        float   x;
        !            63:        float   y;
        !            64: } FPT;
        !            65: typedef struct {
        !            66:        FPT     ll;
        !            67:        FPT     ur;
        !            68: } FRECT;
        !            69:   struct _Traphd {
        !            70:        int magicnumb;
        !            71:        int nrows, ncols;
        !            72:        int xdelta, ydelta;     
        !            73:        struct _Rectangle bb;           
        !            74:        struct _Rectangle rbb ;         
        !            75:        char empty;
        !            76: };
        !            77: struct _Trapezoid {
        !            78:        int net;
        !            79:        int xmin, xmax, lby, lty, rby, rty;
        !            80: };
        !            81: struct _Traplabel {
        !            82:        int net;
        !            83:        int x, y;
        !            84:        char label[4*sizeof(int)];
        !            85: };
        !            86: extern char intrflag;
        !            87: extern   struct _Point center;
        !            88: extern struct _Rectangle iuwind;
        !            89: extern double supiu;
        !            90: extern char debug;
        !            91: extern short netcolor;
        !            92: extern char debug;
        !            93: int iuplu =    1000;
        !            94: short nlayers = 40;
        !            95: short color [40];
        !            96: char *layername [40];
        !            97: char *colorfile;
        !            98: char *fullname [40];
        !            99: static   struct _Traphd *header;
        !           100: static int **index;
        !           101: static int identify (i, p)
        !           102:   struct _Point p;
        !           103: {
        !           104:        register   struct _Traphd *h;
        !           105:        register struct _iobuf *f;
        !           106:        int col, row, pos, addr, stop;
        !           107:        float w, x, slope;
        !           108:        struct _Trapezoid t;
        !           109:        h = &header[i];
        !           110:        col =   (((p.x) - ( h)->rbb.ll.x) / ( h)->xdelta);
        !           111:        row =   (((p.y) - ( h)->rbb.ll.y) / ( h)->ydelta);
        !           112:        if (col < 0 || col >= h->ncols) return -1;
        !           113:        if (row < 0 || row >= h->nrows) return -1;
        !           114:        pos = col * h->nrows + row;
        !           115:        addr = index[i][pos];
        !           116:        stop = index[i][pos + 1];
        !           117:        if (addr >= stop) return -1;
        !           118:        f = (struct _iobuf *) forceopen(i);
        !           119:        fseek (f, addr, 0);
        !           120:        while (addr < stop) {
        !           121:                if (intrflag) return -1;
        !           122:                chkfread (&t, sizeof(struct _Trapezoid), 1, f);
        !           123:                addr += sizeof(struct _Trapezoid);
        !           124:                if (p.x < t.xmin || t.xmax < p.x) continue;
        !           125:                x = p.x - t.xmin;
        !           126:                w = t.xmax - t.xmin;
        !           127:                
        !           128:                  slope = (t.rby - t.lby) / w;
        !           129:                  if (p.y < t.lby + x*slope) continue;
        !           130:                
        !           131:                  slope = (t.rty - t.lty) / w;
        !           132:                  if (p.y > t.lty + x*slope) continue;
        !           133:                
        !           134:                return t.net;
        !           135:        }
        !           136:        return -1;
        !           137: }
        !           138: m()
        !           139: {      register unsigned char a, b;
        !           140:        a/=b;
        !           141: }

unix.superglobalmegacorp.com

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