diff options
Diffstat (limited to 'usr/src/ucbcmd/plot/debug.c')
-rw-r--r-- | usr/src/ucbcmd/plot/debug.c | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/usr/src/ucbcmd/plot/debug.c b/usr/src/ucbcmd/plot/debug.c new file mode 100644 index 0000000000..8a89258de5 --- /dev/null +++ b/usr/src/ucbcmd/plot/debug.c @@ -0,0 +1,140 @@ +/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ +/* All Rights Reserved */ + + +#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ + + +/* + * Copyright (c) 1980 Regents of the University of California. + * All rights reserved. The Berkeley software License Agreement + * specifies the terms and conditions for redistribution. + */ + +/* + * Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc. + * All Rights Reserved. + */ + + +#include <stdio.h> + +float deltx; +float delty; + +main(argc,argv) char **argv; { + int std=1; + FILE *fin; + + while(argc-- > 1) { + if(*argv[1] == '-') + switch(argv[1][1]) { + case 'l': + deltx = atoi(&argv[1][2]) - 1; + break; + case 'w': + delty = atoi(&argv[1][2]) - 1; + break; + } + + else { + std = 0; + if ((fin = fopen(argv[1], "r")) == NULL) { + fprintf(stderr, "can't open %s\n", argv[1]); + exit(1); + } + fplt(fin); + } + argv++; + } + if (std) + fplt( stdin ); + exit(0); + } + + +fplt(fin) FILE *fin; { + int c; + char s[256]; + int xi,yi,x0,y0,x1,y1,r/*,dx,n,i*/; + + printf("openpl\n"); + while((c=getc(fin)) != EOF){ + switch(c){ + case 'm': + xi = getsi(fin); + yi = getsi(fin); + printf("move %d %d\n", xi, yi); + break; + case 'l': + x0 = getsi(fin); + y0 = getsi(fin); + x1 = getsi(fin); + y1 = getsi(fin); + printf("line %d %d %d %d\n", x0, y0, x1, y1); + break; + case 't': + getstr(s,fin); + printf("label %s\n", s); + break; + case 'e': + printf("erase\n"); + break; + case 'p': + xi = getsi(fin); + yi = getsi(fin); + printf("point %d %d\n", xi, yi); + break; + case 'n': + xi = getsi(fin); + yi = getsi(fin); + printf("continue %d %d\n", xi, yi); + break; + case 's': + x0 = getsi(fin); + y0 = getsi(fin); + x1 = getsi(fin); + y1 = getsi(fin); + printf("space %d %d %d %d\n", x0, y0, x1, y1); + break; + case 'a': + xi = getsi(fin); + yi = getsi(fin); + x0 = getsi(fin); + y0 = getsi(fin); + x1 = getsi(fin); + y1 = getsi(fin); + printf("arc\n"); + break; + case 'c': + xi = getsi(fin); + yi = getsi(fin); + r = getsi(fin); + printf("circle\n"); + break; + case 'f': + getstr(s,fin); + printf("linemod %s\n", s); + break; + default: + fprintf(stderr, "Unknown command %c (%o)\n", c, c); + break; + } + } + printf("closepl\n"); + } +getsi(fin) FILE *fin; { /* get an integer stored in 2 ascii bytes. */ + short a, b; + if((b = getc(fin)) == EOF) + return(EOF); + if((a = getc(fin)) == EOF) + return(EOF); + a = a<<8; + return(a|b); +} +getstr(s,fin) char *s; FILE *fin; { + for( ; *s = getc(fin); s++) + if(*s == '\n') + break; + *s = '\0'; +} |