xref: /csrg-svn/usr.bin/plot/plottoa.c (revision 48286)
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