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