1: #ifndef lint
   2: static char sccsid[] = "@(#)plottoa.c	4.2 (Berkeley) 1/9/85";
   3: #endif
   4: 
   5: /*
   6:  * Convert the standard plot input into a readable form for debugging.
   7:  */
   8: 
   9: #include <stdio.h>
  10: 
  11: float deltx;
  12: float delty;
  13: 
  14: main(argc, argv)
  15: char **argv;
  16: {
  17:     int std=1;
  18:     FILE *fin;
  19: 
  20:     while(argc-- > 1) {
  21:         if(*argv[1] == '-')
  22:             switch(argv[1][1]) {
  23:             case 'l':
  24:                 deltx = atoi(&argv[1][2]) - 1;
  25:                 break;
  26:             case 'w':
  27:                 delty = atoi(&argv[1][2]) - 1;
  28:                 break;
  29:             }
  30:         else {
  31:             std = 0;
  32:             if ((fin = fopen(argv[1], "r")) == NULL) {
  33:                 fprintf(stderr, "can't open %s\n", argv[1]);
  34:                 exit(1);
  35:             }
  36:             fplt(fin);
  37:             fclose(fin);
  38:         }
  39:         argv++;
  40:     }
  41:     if (std)
  42:         fplt( stdin );
  43:     exit(0);
  44: }
  45: 
  46: 
  47: fplt(fin)
  48: FILE *fin;
  49: {
  50:     int c;
  51:     char s[256];
  52:     int xi,yi,x0,y0,x1,y1,r,dx,n,i;
  53:     int pat[256];
  54: 
  55:     openpl();
  56:     while((c = getc(fin)) != EOF){
  57:         switch(c){
  58:         case 'm':
  59:             xi = getsi(fin);
  60:             yi = getsi(fin);
  61:             move(xi,yi);
  62:             break;
  63:         case 'l':
  64:             x0 = getsi(fin);
  65:             y0 = getsi(fin);
  66:             x1 = getsi(fin);
  67:             y1 = getsi(fin);
  68:             line(x0,y0,x1,y1);
  69:             break;
  70:         case 't':
  71:             getstr(s,fin);
  72:             label(s);
  73:             break;
  74:         case 'e':
  75:             erase();
  76:             break;
  77:         case 'p':
  78:             xi = getsi(fin);
  79:             yi = getsi(fin);
  80:             point(xi,yi);
  81:             break;
  82:         case 'n':
  83:             xi = getsi(fin);
  84:             yi = getsi(fin);
  85:             cont(xi,yi);
  86:             break;
  87:         case 's':
  88:             x0 = getsi(fin);
  89:             y0 = getsi(fin);
  90:             x1 = getsi(fin);
  91:             y1 = getsi(fin);
  92:             space(x0,y0,x1,y1);
  93:             break;
  94:         case 'a':
  95:             xi = getsi(fin);
  96:             yi = getsi(fin);
  97:             x0 = getsi(fin);
  98:             y0 = getsi(fin);
  99:             x1 = getsi(fin);
 100:             y1 = getsi(fin);
 101:             arc(xi,yi,x0,y0,x1,y1);
 102:             break;
 103:         case 'c':
 104:             xi = getsi(fin);
 105:             yi = getsi(fin);
 106:             r = getsi(fin);
 107:             circle(xi,yi,r);
 108:             break;
 109:         case 'f':
 110:             getstr(s,fin);
 111:             linemod(s);
 112:             break;
 113:         case 'd':
 114:             xi = getsi(fin);
 115:             yi = getsi(fin);
 116:             dx = getsi(fin);
 117:             n = getsi(fin);
 118:             for(i=0; i<n; i++)pat[i] = getsi(fin);
 119:             dot(xi,yi,dx,n,pat);
 120:             break;
 121:         }
 122:     }
 123:     closepl();
 124: }
 125: 
 126: /* get an integer stored in 2 ascii bytes. */
 127: getsi(fin)
 128: FILE *fin;
 129: {
 130:     short a, b;
 131:     if((b = getc(fin)) == EOF)
 132:         return(EOF);
 133:     if((a = getc(fin)) == EOF)
 134:         return(EOF);
 135:     a = a<<8;
 136:     return(a|b);
 137: }
 138: 
 139: getstr(s,fin)
 140: char *s;
 141: FILE *fin;
 142: {
 143:     for( ; *s = getc(fin); s++)
 144:         if(*s == '\n')
 145:             break;
 146:     *s = '\0';
 147: }
 148: 
 149: /* Print out the arguments to plot routines. */
 150: 
 151: space(x0,y0,x1,y1)
 152: int x0,y0,x1,y1;
 153: {
 154:     printf( "s %d %d %d %d\n", x0, y0, x1, y1 );
 155: }
 156: 
 157: openpl()
 158: {
 159: }
 160: 
 161: closepl()
 162: {
 163: }
 164: 
 165: erase()
 166: {
 167:     printf( "e\n" );
 168: }
 169: 
 170: move(xi,yi)
 171: int xi,yi;
 172: {
 173:     printf( "m %d %d\n", xi, yi );
 174: }
 175: 
 176: cont(xi,yi)
 177: int xi,yi;
 178: {
 179:     printf( "n %d %d\n", xi, yi );
 180: }
 181: 
 182: line(x0,y0,x1,y1)
 183: int x0,y0,x1,y1;
 184: {
 185:     printf( "l %d %d %d %d\n", x0, y0, x1, y1 );
 186: }
 187: 
 188: point(xi,yi)
 189: int xi,yi;
 190: {
 191:     printf( "p %d %d\n", xi, yi );
 192: }
 193: 
 194: label(s)
 195: char *s;
 196: {
 197:     printf( "t%s\n\n", s );
 198: }
 199: 
 200: 
 201: arc(xcent,ycent,xbeg,ybeg,xend,yend)
 202: int xcent,ycent,xbeg,ybeg,xend,yend;
 203: {
 204:     printf( "a %d %d %d %d %d %d\n", xcent, ycent, xbeg, ybeg, xend, yend );
 205: }
 206: 
 207: circle (xc,yc,r)
 208: int xc,yc,r;
 209: {
 210:     printf( "c %d %d %d\n", xc, yc, r );
 211: }
 212: 
 213: linemod( line )
 214: char    *line;
 215: {
 216:     printf( "f%s\n\n", line );
 217: }
 218: 
 219: /* don't know what this should do */
 220: dot(xi,yi,dx,n,pat)
 221: int xi,yi,dx,n;
 222: char *pat;
 223: {
 224:     printf("d %d %d %d %d %s\n\n", xi, yi, dx, n, pat);
 225: }

Defined functions

dot defined in line 220; used 3 times
erase defined in line 165; used 3 times
fplt defined in line 47; used 2 times
getsi defined in line 127; used 28 times
getstr defined in line 139; used 2 times
line defined in line 182; used 7 times
main defined in line 14; never used
move defined in line 170; used 3 times

Defined variables

deltx defined in line 11; used 1 times
  • in line 24
delty defined in line 12; used 1 times
  • in line 27
sccsid defined in line 2; never used
Last modified: 1985-01-09
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1504
Valid CSS Valid XHTML 1.0 Strict