|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <string.h> ! 3: #include <stdlib.h> ! 4: #include "grap.h" ! 5: #include "y.tab.h" ! 6: ! 7: char *dflt_coord = "gg"; ! 8: char *curr_coord = "gg"; ! 9: int ncoord = 0; /* number of explicit coord's given */ ! 10: ! 11: Point xcoord; ! 12: Point ycoord; ! 13: int xcflag = 0; /* 1 if xcoord set */ ! 14: int ycflag = 0; ! 15: int logcoord = 0; ! 16: ! 17: void coord_x(Point pt) /* remember x coord */ ! 18: { ! 19: xcoord = pt; ! 20: xcflag = 1; ! 21: margin = 0; /* no extra space around picture if explicit coords */ ! 22: } ! 23: ! 24: void coord_y(Point pt) ! 25: { ! 26: ycoord = pt; ! 27: ycflag = 1; ! 28: margin = 0; /* no extra space if explicit coords */ ! 29: } ! 30: ! 31: void coordlog(int n) /* remember log scaling */ ! 32: { ! 33: logcoord = n; ! 34: } ! 35: ! 36: void coord(Obj *p) /* set coord range */ ! 37: { ! 38: static char buf[10]; ! 39: ! 40: ncoord++; ! 41: if (ncoord > 1 && strcmp(p->name, dflt_coord) == 0) { ! 42: /* resetting default coordinate by implication */ ! 43: sprintf(buf, "gg%d", ncoord); ! 44: dflt_coord = buf; ! 45: p = lookup(dflt_coord, 1); ! 46: } ! 47: if (xcflag) { ! 48: p->coord |= XFLAG; ! 49: p->pt.x = min(xcoord.x,xcoord.y); /* "xcoord" is xmin, xmax */ ! 50: p->pt1.x = max(xcoord.x,xcoord.y); ! 51: if ((logcoord&XFLAG) && p->pt.x <= 0.0) ! 52: ERROR "can't have log of x coord %g,%g", p->pt.x, p->pt1.x FATAL; ! 53: xcflag = 0; ! 54: } ! 55: if (ycflag) { ! 56: p->coord |= YFLAG; ! 57: p->pt.y = min(ycoord.x,ycoord.y); /* "ycoord" is ymin, ymax */ ! 58: p->pt1.y = max(ycoord.x,ycoord.y); ! 59: if ((logcoord&YFLAG) && p->pt.y <= 0.0) ! 60: ERROR "can't have log of y coord %g,%g", p->pt.y, p->pt1.y FATAL; ! 61: ycflag = 0; ! 62: } ! 63: p->log = logcoord; ! 64: logcoord = 0; ! 65: auto_x = 0; ! 66: } ! 67: ! 68: void resetcoord(Obj *p) /* reset current coordinate */ ! 69: { ! 70: curr_coord = p->name; ! 71: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.