|
|
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: else {
21: std = 0;
22: if ((fin = fopen(argv[1], "r")) == NULL) {
23: fprintf(stderr, "can't open %s\n", argv[1]);
24: exit(1);
25: }
26: fplt(fin);
27: }
28: argv++;
29: }
30: if (std)
31: fplt( stdin );
32: exit(0);
33: }
34:
35:
36: fplt(fin) FILE *fin; {
37: int c;
38: char s[256];
39: int xi,yi,x0,y0,x1,y1,r,dx,n,i;
40: int pat[256];
41:
42: while((c=getc(fin)) != EOF){
43: switch(c){
44: case 'm':
45: xi = getsi(fin);
46: yi = getsi(fin);
47: printf("%c %6d %6d\n", c,xi,yi);
48: break;
49: case 'l':
50: x0 = getsi(fin);
51: y0 = getsi(fin);
52: x1 = getsi(fin);
53: y1 = getsi(fin);
54: printf("%c %6d %6d %6d %6d\n", c,x0,y0,x1,y1);
55: break;
56: case 't':
57: gets(s,fin);
58: printf("%c %s\n", c,s);
59: break;
60: case 'e':
61: printf("%c\n",c);
62: break;
63: case 'p':
64: xi = getsi(fin);
65: yi = getsi(fin);
66: printf("%c %6d %6d\n", c,xi,yi);
67: break;
68: case 'n':
69: xi = getsi(fin);
70: yi = getsi(fin);
71: printf("%c %6d %6d\n", c,xi,yi);
72: break;
73: case 's':
74: x0 = getsi(fin);
75: y0 = getsi(fin);
76: x1 = getsi(fin);
77: y1 = getsi(fin);
78: printf("%c %6d %6d %6d %6d\n", c,x0,y0,x1,y1);
79: break;
80: case 'a':
81: xi = getsi(fin);
82: yi = getsi(fin);
83: x0 = getsi(fin);
84: y0 = getsi(fin);
85: x1 = getsi(fin);
86: y1 = getsi(fin);
87: printf("%c %6d %6d %6d %6d %6d %6d\n", c,xi,yi,x0,y0,x1,y1);
88: break;
89: case 'c':
90: xi = getsi(fin);
91: yi = getsi(fin);
92: r = getsi(fin);
93: printf("%c %6d %6d %6d\n", c,xi,yi,r);
94: break;
95: case 'f':
96: gets(s,fin);
97: printf("%c %s\n", c,s);
98: break;
99: case 'd':
100: xi = getsi(fin);
101: yi = getsi(fin);
102: dx = getsi(fin);
103: n = getsi(fin);
104: for(i=0; i<n; i++)pat[i] = getsi(fin);
105: /* dot(xi,yi,dx,n,pat); */
106: printf("%c, %6d, %6d, %6d, %6d ???\n", c,xi,yi,dx,n);
107: break;
108: }
109: }
110: }
111:
112: getsi(fin) FILE *fin; {
113: /* 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:
123: gets(s,fin) char *s; FILE *fin; {
124: for( ; *s = getc(fin); s++)
125: if(*s == '\n')
126: break;
127: *s = '\0';
128: return;
129: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.