Annotation of 43BSDReno/usr.bin/plot/plottoa.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)plottoa.c  4.2 (Berkeley) 1/9/85";
                      3: #endif
                      4: 
                      5: /*
                      6:  * Convert the standard plot input into a readable form for debugging.
                      7:  */
                      8: 
                      9: #include <stdio.h>
                     10: 
                     11: float deltx;
                     12: float delty;
                     13: 
                     14: main(argc, argv)
                     15: char **argv;
                     16: {
                     17:        int std=1;
                     18:        FILE *fin;
                     19: 
                     20:        while(argc-- > 1) {
                     21:                if(*argv[1] == '-')
                     22:                        switch(argv[1][1]) {
                     23:                        case 'l':
                     24:                                deltx = atoi(&argv[1][2]) - 1;
                     25:                                break;
                     26:                        case 'w':
                     27:                                delty = atoi(&argv[1][2]) - 1;
                     28:                                break;
                     29:                        }
                     30:                else {
                     31:                        std = 0;
                     32:                        if ((fin = fopen(argv[1], "r")) == NULL) {
                     33:                                fprintf(stderr, "can't open %s\n", argv[1]);
                     34:                                exit(1);
                     35:                        }
                     36:                        fplt(fin);
                     37:                        fclose(fin);
                     38:                }
                     39:                argv++;
                     40:        }
                     41:        if (std)
                     42:                fplt( stdin );
                     43:        exit(0);
                     44: }
                     45: 
                     46: 
                     47: fplt(fin)
                     48: FILE *fin;
                     49: {
                     50:        int c;
                     51:        char s[256];
                     52:        int xi,yi,x0,y0,x1,y1,r,dx,n,i;
                     53:        int pat[256];
                     54: 
                     55:        openpl();
                     56:        while((c = getc(fin)) != EOF){
                     57:                switch(c){
                     58:                case 'm':
                     59:                        xi = getsi(fin);
                     60:                        yi = getsi(fin);
                     61:                        move(xi,yi);
                     62:                        break;
                     63:                case 'l':
                     64:                        x0 = getsi(fin);
                     65:                        y0 = getsi(fin);
                     66:                        x1 = getsi(fin);
                     67:                        y1 = getsi(fin);
                     68:                        line(x0,y0,x1,y1);
                     69:                        break;
                     70:                case 't':
                     71:                        getstr(s,fin);
                     72:                        label(s);
                     73:                        break;
                     74:                case 'e':
                     75:                        erase();
                     76:                        break;
                     77:                case 'p':
                     78:                        xi = getsi(fin);
                     79:                        yi = getsi(fin);
                     80:                        point(xi,yi);
                     81:                        break;
                     82:                case 'n':
                     83:                        xi = getsi(fin);
                     84:                        yi = getsi(fin);
                     85:                        cont(xi,yi);
                     86:                        break;
                     87:                case 's':
                     88:                        x0 = getsi(fin);
                     89:                        y0 = getsi(fin);
                     90:                        x1 = getsi(fin);
                     91:                        y1 = getsi(fin);
                     92:                        space(x0,y0,x1,y1);
                     93:                        break;
                     94:                case 'a':
                     95:                        xi = getsi(fin);
                     96:                        yi = getsi(fin);
                     97:                        x0 = getsi(fin);
                     98:                        y0 = getsi(fin);
                     99:                        x1 = getsi(fin);
                    100:                        y1 = getsi(fin);
                    101:                        arc(xi,yi,x0,y0,x1,y1);
                    102:                        break;
                    103:                case 'c':
                    104:                        xi = getsi(fin);
                    105:                        yi = getsi(fin);
                    106:                        r = getsi(fin);
                    107:                        circle(xi,yi,r);
                    108:                        break;
                    109:                case 'f':
                    110:                        getstr(s,fin);
                    111:                        linemod(s);
                    112:                        break;
                    113:                case 'd':
                    114:                        xi = getsi(fin);
                    115:                        yi = getsi(fin);
                    116:                        dx = getsi(fin);
                    117:                        n = getsi(fin);
                    118:                        for(i=0; i<n; i++)pat[i] = getsi(fin);
                    119:                        dot(xi,yi,dx,n,pat);
                    120:                        break;
                    121:                }
                    122:        }
                    123:        closepl();
                    124: }
                    125: 
                    126: /* get an integer stored in 2 ascii bytes. */
                    127: getsi(fin)
                    128: FILE *fin;
                    129: {
                    130:        short a, b;
                    131:        if((b = getc(fin)) == EOF)
                    132:                return(EOF);
                    133:        if((a = getc(fin)) == EOF)
                    134:                return(EOF);
                    135:        a = a<<8;
                    136:        return(a|b);
                    137: }
                    138: 
                    139: getstr(s,fin)
                    140: char *s;
                    141: FILE *fin;
                    142: {
                    143:        for( ; *s = getc(fin); s++)
                    144:                if(*s == '\n')
                    145:                        break;
                    146:        *s = '\0';
                    147: }
                    148: 
                    149: /* Print out the arguments to plot routines. */
                    150: 
                    151: space(x0,y0,x1,y1)
                    152: int x0,y0,x1,y1;
                    153: {
                    154:        printf( "s %d %d %d %d\n", x0, y0, x1, y1 );
                    155: }
                    156: 
                    157: openpl()
                    158: {
                    159: }
                    160: 
                    161: closepl()
                    162: {
                    163: }
                    164: 
                    165: erase()
                    166: {
                    167:        printf( "e\n" );
                    168: }
                    169: 
                    170: move(xi,yi)
                    171: int xi,yi;
                    172: {
                    173:        printf( "m %d %d\n", xi, yi );
                    174: }
                    175: 
                    176: cont(xi,yi)
                    177: int xi,yi;
                    178: {
                    179:        printf( "n %d %d\n", xi, yi );
                    180: }
                    181: 
                    182: line(x0,y0,x1,y1)
                    183: int x0,y0,x1,y1;
                    184: {
                    185:        printf( "l %d %d %d %d\n", x0, y0, x1, y1 );
                    186: }
                    187: 
                    188: point(xi,yi)
                    189: int xi,yi;
                    190: {
                    191:        printf( "p %d %d\n", xi, yi );
                    192: }
                    193: 
                    194: label(s)
                    195: char *s;
                    196: {
                    197:        printf( "t%s\n\n", s );
                    198: }
                    199: 
                    200: 
                    201: arc(xcent,ycent,xbeg,ybeg,xend,yend)
                    202: int xcent,ycent,xbeg,ybeg,xend,yend;
                    203: {
                    204:        printf( "a %d %d %d %d %d %d\n", xcent, ycent, xbeg, ybeg, xend, yend );
                    205: }
                    206: 
                    207: circle (xc,yc,r)
                    208: int xc,yc,r;
                    209: {
                    210:        printf( "c %d %d %d\n", xc, yc, r );
                    211: }
                    212: 
                    213: linemod( line )
                    214: char   *line;
                    215: {
                    216:        printf( "f%s\n\n", line );
                    217: }
                    218: 
                    219: /* don't know what this should do */
                    220: dot(xi,yi,dx,n,pat)
                    221: int xi,yi,dx,n;
                    222: char *pat;
                    223: {
                    224:        printf("d %d %d %d %d %s\n\n", xi, yi, dx, n, pat);
                    225: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.