1 #ifndef lint 2 static char sccsid[] = "@(#)debug.c 4.2 (Berkeley) 01/09/85"; 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 46 printf("openpl\n"); 47 while((c=getc(fin)) != EOF){ 48 switch(c){ 49 case 'm': 50 xi = getsi(fin); 51 yi = getsi(fin); 52 printf("move %d %d\n", xi, yi); 53 break; 54 case 'l': 55 x0 = getsi(fin); 56 y0 = getsi(fin); 57 x1 = getsi(fin); 58 y1 = getsi(fin); 59 printf("line %d %d %d %d\n", x0, y0, x1, y1); 60 break; 61 case 't': 62 getstr(s,fin); 63 printf("label %s\n", s); 64 break; 65 case 'e': 66 printf("erase\n"); 67 break; 68 case 'p': 69 xi = getsi(fin); 70 yi = getsi(fin); 71 printf("point %d %d\n", xi, yi); 72 break; 73 case 'n': 74 xi = getsi(fin); 75 yi = getsi(fin); 76 printf("continue %d %d\n", xi, yi); 77 break; 78 case 's': 79 x0 = getsi(fin); 80 y0 = getsi(fin); 81 x1 = getsi(fin); 82 y1 = getsi(fin); 83 printf("space %d %d %d %d\n", x0, y0, x1, y1); 84 break; 85 case 'a': 86 xi = getsi(fin); 87 yi = getsi(fin); 88 x0 = getsi(fin); 89 y0 = getsi(fin); 90 x1 = getsi(fin); 91 y1 = getsi(fin); 92 printf("arc\n"); 93 break; 94 case 'c': 95 xi = getsi(fin); 96 yi = getsi(fin); 97 r = getsi(fin); 98 printf("circle\n"); 99 break; 100 case 'f': 101 getstr(s,fin); 102 printf("linemod %s\n", s); 103 break; 104 default: 105 fprintf(stderr, "Unknown command %c (%o)\n", c, c); 106 break; 107 } 108 } 109 printf("closepl\n"); 110 } 111 getsi(fin) FILE *fin; { /* get an integer stored in 2 ascii bytes. */ 112 short a, b; 113 if((b = getc(fin)) == EOF) 114 return(EOF); 115 if((a = getc(fin)) == EOF) 116 return(EOF); 117 a = a<<8; 118 return(a|b); 119 } 120 getstr(s,fin) char *s; FILE *fin; { 121 for( ; *s = getc(fin); s++) 122 if(*s == '\n') 123 break; 124 *s = '\0'; 125 } 126