|
|
1.1 ! root 1: #include <stdio.h> ! 2: ! 3: float deltx; ! 4: float delty; ! 5: ! 6: main(argc,argv) char **argv; { ! 7: int std=1; ! 8: FILE *fin; ! 9: ! 10: while(argc-- > 1) { ! 11: if(*argv[1] == '-') ! 12: switch(argv[1][1]) { ! 13: case 'l': ! 14: deltx = atoi(&argv[1][2]) - 1; ! 15: break; ! 16: case 'w': ! 17: delty = atoi(&argv[1][2]) - 1; ! 18: break; ! 19: } ! 20: ! 21: else { ! 22: std = 0; ! 23: if ((fin = fopen(argv[1], "r")) == NULL) { ! 24: fprintf(stderr, "can't open %s\n", argv[1]); ! 25: exit(1); ! 26: } ! 27: fplt(fin); ! 28: } ! 29: argv++; ! 30: } ! 31: if (std) ! 32: fplt( stdin ); ! 33: exit(0); ! 34: } ! 35: ! 36: ! 37: fplt(fin) FILE *fin; { ! 38: int c; ! 39: char s[256]; ! 40: int xi,yi,x0,y0,x1,y1,r,dx,n,i; ! 41: int pat[256]; ! 42: ! 43: openpl(); ! 44: while((c=getc(fin)) != EOF){ ! 45: switch(c){ ! 46: case 'm': ! 47: xi = getsi(fin); ! 48: yi = getsi(fin); ! 49: move(xi,yi); ! 50: break; ! 51: case 'l': ! 52: x0 = getsi(fin); ! 53: y0 = getsi(fin); ! 54: x1 = getsi(fin); ! 55: y1 = getsi(fin); ! 56: line(x0,y0,x1,y1); ! 57: break; ! 58: case 't': ! 59: gets(s,fin); ! 60: label(s); ! 61: break; ! 62: case 'e': ! 63: erase(); ! 64: break; ! 65: case 'p': ! 66: xi = getsi(fin); ! 67: yi = getsi(fin); ! 68: point(xi,yi); ! 69: break; ! 70: case 'n': ! 71: xi = getsi(fin); ! 72: yi = getsi(fin); ! 73: cont(xi,yi); ! 74: break; ! 75: case 's': ! 76: x0 = getsi(fin); ! 77: y0 = getsi(fin); ! 78: x1 = getsi(fin); ! 79: y1 = getsi(fin); ! 80: space(x0,y0,x1,y1); ! 81: break; ! 82: case 'a': ! 83: xi = getsi(fin); ! 84: yi = getsi(fin); ! 85: x0 = getsi(fin); ! 86: y0 = getsi(fin); ! 87: x1 = getsi(fin); ! 88: y1 = getsi(fin); ! 89: arc(xi,yi,x0,y0,x1,y1); ! 90: break; ! 91: case 'c': ! 92: xi = getsi(fin); ! 93: yi = getsi(fin); ! 94: r = getsi(fin); ! 95: circle(xi,yi,r); ! 96: break; ! 97: case 'f': ! 98: gets(s,fin); ! 99: linemod(s); ! 100: break; ! 101: case 'd': ! 102: xi = getsi(fin); ! 103: yi = getsi(fin); ! 104: dx = getsi(fin); ! 105: n = getsi(fin); ! 106: for(i=0; i<n; i++)pat[i] = getsi(fin); ! 107: dot(xi,yi,dx,n,pat); ! 108: break; ! 109: } ! 110: } ! 111: closepl(); ! 112: } ! 113: getsi(fin) FILE *fin; { /* get an integer stored in 2 ascii bytes. */ ! 114: short a, b; ! 115: if((b = getc(fin)) == EOF) ! 116: return(EOF); ! 117: if((a = getc(fin)) == EOF) ! 118: return(EOF); ! 119: a = a<<8; ! 120: return(a|b); ! 121: } ! 122: gets(s,fin) char *s; FILE *fin; { ! 123: for( ; *s = getc(fin); s++) ! 124: if(*s == '\n') ! 125: break; ! 126: *s = '\0'; ! 127: return; ! 128: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.