Annotation of researchv10no/cmd/ccom/vax/tests/T.i, revision 1.1.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.