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

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)atoplot.c  4.2 (Berkeley) 1/9/85";
                      3: #endif
                      4: 
                      5: #include <stdio.h>
                      6: 
                      7: float deltx;
                      8: float delty;
                      9: 
                     10: char   *mapLineType();
                     11: 
                     12: main(argc,argv)  char **argv; {
                     13:        int std=1;
                     14:        FILE *fin;
                     15: 
                     16:        while(argc-- > 1) {
                     17:                if(*argv[1] == '-')
                     18:                        switch(argv[1][1]) {
                     19:                                case 'l':
                     20:                                        deltx = atoi(&argv[1][2]) - 1;
                     21:                                        break;
                     22:                                case 'w':
                     23:                                        delty = atoi(&argv[1][2]) - 1;
                     24:                                        break;
                     25:                                }
                     26: 
                     27:                else {
                     28:                        std = 0;
                     29:                        if ((fin = fopen(argv[1], "r")) == NULL) {
                     30:                                fprintf(stderr, "can't open %s\n", argv[1]);
                     31:                                exit(1);
                     32:                                }
                     33:                        fplt(fin);
                     34:                        fclose(fin);
                     35:                        }
                     36:                argv++;
                     37:                }
                     38:        if (std)
                     39:                fplt( stdin );
                     40:        exit(0);
                     41:        }
                     42: 
                     43: 
                     44: fplt(fin)  FILE *fin; {
                     45:        int c;
                     46:        char s[256];
                     47:        int xi,yi,x0,y0,x1,y1,r,dx,n,i;
                     48:        int pat[256];
                     49: 
                     50:        openpl();
                     51:        while((c=getc(fin)) != EOF){
                     52:                switch(c){
                     53:                case 'm':
                     54:                        xi = getsi(fin);
                     55:                        yi = getsi(fin);
                     56:                        move(xi,yi);
                     57:                        break;
                     58:                case 'l':
                     59:                        x0 = getsi(fin);
                     60:                        y0 = getsi(fin);
                     61:                        x1 = getsi(fin);
                     62:                        y1 = getsi(fin);
                     63:                        line(x0,y0,x1,y1);
                     64:                        break;
                     65:                case 't':
                     66:                        getstr(s,fin);
                     67:                        label(s);
                     68:                        break;
                     69:                case 'e':
                     70:                        erase();
                     71:                        break;
                     72:                case 'p':
                     73:                        xi = getsi(fin);
                     74:                        yi = getsi(fin);
                     75:                        point(xi,yi);
                     76:                        break;
                     77:                case 'n':
                     78:                        xi = getsi(fin);
                     79:                        yi = getsi(fin);
                     80:                        cont(xi,yi);
                     81:                        break;
                     82:                case 's':
                     83:                        x0 = getsi(fin);
                     84:                        y0 = getsi(fin);
                     85:                        x1 = getsi(fin);
                     86:                        y1 = getsi(fin);
                     87:                        space(x0,y0,x1,y1);
                     88:                        break;
                     89:                case 'a':
                     90:                        xi = getsi(fin);
                     91:                        yi = getsi(fin);
                     92:                        x0 = getsi(fin);
                     93:                        y0 = getsi(fin);
                     94:                        x1 = getsi(fin);
                     95:                        y1 = getsi(fin);
                     96:                        arc(xi,yi,x0,y0,x1,y1);
                     97:                        break;
                     98:                case 'c':
                     99:                        xi = getsi(fin);
                    100:                        yi = getsi(fin);
                    101:                        r = getsi(fin);
                    102:                        circle(xi,yi,r);
                    103:                        break;
                    104:                case 'f':
                    105:                        getstr(s,fin);
                    106:                        linemod( mapLineType(s) );
                    107:                        break;
                    108:                case 'd':
                    109:                        xi = getsi(fin);
                    110:                        yi = getsi(fin);
                    111:                        dx = getsi(fin);
                    112:                        n = getsi(fin);
                    113:                        for(i=0; i<n; i++)pat[i] = getsi(fin);
                    114:                        dot(xi,yi,dx,n,pat);
                    115:                        break;
                    116:                        }
                    117:                /* scan to newline */
                    118:                while( (c = getc( fin )) != '\n' ) {
                    119:                        if ( c == EOF ) {
                    120:                                break;
                    121:                        }
                    122:                    }
                    123:                }
                    124:        closepl();
                    125:        }
                    126: getsi(fin)  FILE *fin; {       /* get an integer stored in 2 ascii bytes. */
                    127:        int     i;
                    128: 
                    129:        if ( fscanf(fin, " %d", & i) != 1 ) {
                    130:                return(EOF);
                    131:        }
                    132:        return( i );
                    133: }
                    134: getstr(s,fin)  char *s;  FILE *fin; {
                    135:        for( ; *s = getc(fin); s++)
                    136:                if(*s == '\n')
                    137:                        break;
                    138:        *s = '\0';
                    139: }
                    140: 
                    141: char   *lineMap[] = {
                    142:     "solid",           /* line type 0 */
                    143:     "solid",           /* line type 1 */
                    144:     "dotted",          /* line type 2 */
                    145:     "dotdashed",       /* line type 3 */
                    146:     "shortdashed",     /* line type 4 */
                    147:     "longdashed",      /* line type 5 */
                    148:     "dotlongdash",     /* line type 6 */
                    149:     "dotshortdash",    /* line type 7 */
                    150:     "dotdotdash",      /* line type 8 */
                    151: }      ;
                    152: 
                    153: char *
                    154: mapLineType( cp )
                    155:     char       *cp;
                    156: {
                    157:     int                i;
                    158: 
                    159:     if ( sscanf(cp, "%d", &i) == 1 ) {
                    160:        if ( i < 0 || i > sizeof(lineMap)/sizeof(char *) ) {
                    161:            i = 1;
                    162:        }
                    163:        return( lineMap[i] );
                    164:     }
                    165:     else {
                    166:        return( cp );
                    167:     }
                    168: }

unix.superglobalmegacorp.com

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