|
|
1.1 ! root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.