1*48286Sbostic /*-
2*48286Sbostic * %sccs.include.proprietary.c%
3*48286Sbostic */
4*48286Sbostic
515506Sralph #ifndef lint
6*48286Sbostic static char sccsid[] = "@(#)plottoa.c 4.3 (Berkeley) 04/18/91";
7*48286Sbostic #endif /* not lint */
815506Sralph
915506Sralph /*
1015506Sralph * Convert the standard plot input into a readable form for debugging.
1115506Sralph */
1215506Sralph
1315506Sralph #include <stdio.h>
1415506Sralph
1515506Sralph float deltx;
1615506Sralph float delty;
1715506Sralph
main(argc,argv)1815506Sralph main(argc, argv)
1915506Sralph char **argv;
2015506Sralph {
2115506Sralph int std=1;
2215506Sralph FILE *fin;
2315506Sralph
2415506Sralph while(argc-- > 1) {
2515506Sralph if(*argv[1] == '-')
2615506Sralph switch(argv[1][1]) {
2715506Sralph case 'l':
2815506Sralph deltx = atoi(&argv[1][2]) - 1;
2915506Sralph break;
3015506Sralph case 'w':
3115506Sralph delty = atoi(&argv[1][2]) - 1;
3215506Sralph break;
3315506Sralph }
3415506Sralph else {
3515506Sralph std = 0;
3615506Sralph if ((fin = fopen(argv[1], "r")) == NULL) {
3715506Sralph fprintf(stderr, "can't open %s\n", argv[1]);
3815506Sralph exit(1);
3915506Sralph }
4015506Sralph fplt(fin);
4115506Sralph fclose(fin);
4215506Sralph }
4315506Sralph argv++;
4415506Sralph }
4515506Sralph if (std)
4615506Sralph fplt( stdin );
4715506Sralph exit(0);
4815506Sralph }
4915506Sralph
5015506Sralph
fplt(fin)5115506Sralph fplt(fin)
5215506Sralph FILE *fin;
5315506Sralph {
5415506Sralph int c;
5515506Sralph char s[256];
5615506Sralph int xi,yi,x0,y0,x1,y1,r,dx,n,i;
5715506Sralph int pat[256];
5815506Sralph
5915506Sralph openpl();
6015506Sralph while((c = getc(fin)) != EOF){
6115506Sralph switch(c){
6215506Sralph case 'm':
6315506Sralph xi = getsi(fin);
6415506Sralph yi = getsi(fin);
6515506Sralph move(xi,yi);
6615506Sralph break;
6715506Sralph case 'l':
6815506Sralph x0 = getsi(fin);
6915506Sralph y0 = getsi(fin);
7015506Sralph x1 = getsi(fin);
7115506Sralph y1 = getsi(fin);
7215506Sralph line(x0,y0,x1,y1);
7315506Sralph break;
7415506Sralph case 't':
7517674Sralph getstr(s,fin);
7615506Sralph label(s);
7715506Sralph break;
7815506Sralph case 'e':
7915506Sralph erase();
8015506Sralph break;
8115506Sralph case 'p':
8215506Sralph xi = getsi(fin);
8315506Sralph yi = getsi(fin);
8415506Sralph point(xi,yi);
8515506Sralph break;
8615506Sralph case 'n':
8715506Sralph xi = getsi(fin);
8815506Sralph yi = getsi(fin);
8915506Sralph cont(xi,yi);
9015506Sralph break;
9115506Sralph case 's':
9215506Sralph x0 = getsi(fin);
9315506Sralph y0 = getsi(fin);
9415506Sralph x1 = getsi(fin);
9515506Sralph y1 = getsi(fin);
9615506Sralph space(x0,y0,x1,y1);
9715506Sralph break;
9815506Sralph case 'a':
9915506Sralph xi = getsi(fin);
10015506Sralph yi = getsi(fin);
10115506Sralph x0 = getsi(fin);
10215506Sralph y0 = getsi(fin);
10315506Sralph x1 = getsi(fin);
10415506Sralph y1 = getsi(fin);
10515506Sralph arc(xi,yi,x0,y0,x1,y1);
10615506Sralph break;
10715506Sralph case 'c':
10815506Sralph xi = getsi(fin);
10915506Sralph yi = getsi(fin);
11015506Sralph r = getsi(fin);
11115506Sralph circle(xi,yi,r);
11215506Sralph break;
11315506Sralph case 'f':
11417674Sralph getstr(s,fin);
11515506Sralph linemod(s);
11615506Sralph break;
11715506Sralph case 'd':
11815506Sralph xi = getsi(fin);
11915506Sralph yi = getsi(fin);
12015506Sralph dx = getsi(fin);
12115506Sralph n = getsi(fin);
12215506Sralph for(i=0; i<n; i++)pat[i] = getsi(fin);
12315506Sralph dot(xi,yi,dx,n,pat);
12415506Sralph break;
12515506Sralph }
12615506Sralph }
12715506Sralph closepl();
12815506Sralph }
12915506Sralph
13015506Sralph /* get an integer stored in 2 ascii bytes. */
getsi(fin)13115506Sralph getsi(fin)
13215506Sralph FILE *fin;
13315506Sralph {
13415506Sralph short a, b;
13515506Sralph if((b = getc(fin)) == EOF)
13615506Sralph return(EOF);
13715506Sralph if((a = getc(fin)) == EOF)
13815506Sralph return(EOF);
13915506Sralph a = a<<8;
14015506Sralph return(a|b);
14115506Sralph }
14215506Sralph
getstr(s,fin)14317674Sralph getstr(s,fin)
14415506Sralph char *s;
14515506Sralph FILE *fin;
14615506Sralph {
14715506Sralph for( ; *s = getc(fin); s++)
14815506Sralph if(*s == '\n')
14915506Sralph break;
15015506Sralph *s = '\0';
15115506Sralph }
15215506Sralph
15315506Sralph /* Print out the arguments to plot routines. */
15415506Sralph
space(x0,y0,x1,y1)15515506Sralph space(x0,y0,x1,y1)
15615506Sralph int x0,y0,x1,y1;
15715506Sralph {
15815506Sralph printf( "s %d %d %d %d\n", x0, y0, x1, y1 );
15915506Sralph }
16015506Sralph
openpl()16115506Sralph openpl()
16215506Sralph {
16315506Sralph }
16415506Sralph
closepl()16515506Sralph closepl()
16615506Sralph {
16715506Sralph }
16815506Sralph
erase()16915506Sralph erase()
17015506Sralph {
17115506Sralph printf( "e\n" );
17215506Sralph }
17315506Sralph
move(xi,yi)17415506Sralph move(xi,yi)
17515506Sralph int xi,yi;
17615506Sralph {
17715506Sralph printf( "m %d %d\n", xi, yi );
17815506Sralph }
17915506Sralph
cont(xi,yi)18015506Sralph cont(xi,yi)
18115506Sralph int xi,yi;
18215506Sralph {
18315506Sralph printf( "n %d %d\n", xi, yi );
18415506Sralph }
18515506Sralph
line(x0,y0,x1,y1)18615506Sralph line(x0,y0,x1,y1)
18715506Sralph int x0,y0,x1,y1;
18815506Sralph {
18915506Sralph printf( "l %d %d %d %d\n", x0, y0, x1, y1 );
19015506Sralph }
19115506Sralph
point(xi,yi)19215506Sralph point(xi,yi)
19315506Sralph int xi,yi;
19415506Sralph {
19515506Sralph printf( "p %d %d\n", xi, yi );
19615506Sralph }
19715506Sralph
label(s)19815506Sralph label(s)
19915506Sralph char *s;
20015506Sralph {
20115506Sralph printf( "t%s\n\n", s );
20215506Sralph }
20315506Sralph
20415506Sralph
arc(xcent,ycent,xbeg,ybeg,xend,yend)20515506Sralph arc(xcent,ycent,xbeg,ybeg,xend,yend)
20615506Sralph int xcent,ycent,xbeg,ybeg,xend,yend;
20715506Sralph {
20815506Sralph printf( "a %d %d %d %d %d %d\n", xcent, ycent, xbeg, ybeg, xend, yend );
20915506Sralph }
21015506Sralph
circle(xc,yc,r)21115506Sralph circle (xc,yc,r)
21215506Sralph int xc,yc,r;
21315506Sralph {
21415506Sralph printf( "c %d %d %d\n", xc, yc, r );
21515506Sralph }
21615506Sralph
linemod(line)21715506Sralph linemod( line )
21815506Sralph char *line;
21915506Sralph {
22015506Sralph printf( "f%s\n\n", line );
22115506Sralph }
22215506Sralph
22315506Sralph /* don't know what this should do */
dot(xi,yi,dx,n,pat)22415506Sralph dot(xi,yi,dx,n,pat)
22515506Sralph int xi,yi,dx,n;
22615506Sralph char *pat;
22715506Sralph {
22815506Sralph printf("d %d %d %d %d %s\n\n", xi, yi, dx, n, pat);
22915506Sralph }
230