Annotation of researchv10no/libplot/libpen/openpl.c, revision 1.1.1.1

1.1       root        1: #include "pen.h"
                      2: #define PLOTTER "/dev/hp7580"
                      3: 
                      4: struct sgttyb vvec;
                      5: struct ttydevb dvec;
                      6: extern int tty_ld;
                      7: 
                      8: openpl(s)
                      9: char *s;
                     10: {
                     11:        int n, dp;
                     12: 
                     13:        dp = open(PLOTTER, 2);
                     14:        if (dp < 0) {
                     15:                fprintf(stderr, "cannot open plotter %s\n", PLOTTER);
                     16:                exit(1);
                     17:        }
                     18:        if(ioctl(dp, FIOLOOKLD, 0) != tty_ld){
                     19:                if(ioctl(dp, FIOPUSHLD, &tty_ld) < 0){
                     20:                        perror("tty_ld");
                     21:                        exit(1);
                     22:                }
                     23:        }
                     24:        if(ioctl(dp, TIOCEXCL, 0)){
                     25:                perror("plotter in use");
                     26:                exit(1);
                     27:        }
                     28:        vvec.sg_ispeed = vvec.sg_ospeed = B9600;
                     29:        vvec.sg_flags = CBREAK|CRMOD|TANDEM;
                     30:        vvec.sg_erase = 0;
                     31:        vvec.sg_kill = 0;
                     32:        ioctl(dp, TIOCGDEV, &dvec);
                     33:        if(ioctl(dp, TIOCSETP, &vvec) < 0){
                     34:                perror("ioctl");
                     35:                exit(1);
                     36:        }
                     37:        dvec.ispeed = dvec.ospeed = vvec.sg_ispeed;
                     38:        dvec.flags |= EVENP|ODDP;
                     39:        if(ioctl(dp, TIOCSDEV, &dvec) < 0){
                     40:                perror("ioctl1");
                     41:                exit(1);
                     42:        }
                     43:        ioctl(dp, TIOCEXCL, 0);
                     44:        if((pltin = fdopen(dp, "r")) == NULL) {
                     45:                fprintf(stderr, "cannot fdopen, pltin");
                     46:                exit(1);
                     47:        }
                     48:        if((pltout = fdopen(dp, "w")) == NULL) {
                     49:                fprintf(stderr, "cannot fdopen, pltout");
                     50:                exit(1);
                     51:        }
                     52: /*     system("stty >/dev/hp7580");
                     53: */
                     54:        fprintf(pltout, "\033.I;;17:");
                     55:        fprintf(pltout, "\033.N;19:");
                     56:        fprintf(pltout, "\033.M10;;;10:");
                     57:        fprintf(pltout, " IN SP 1 SR .67,1.0\n");
                     58:        fprintf(pltout,"OP;\n");
                     59:        fflush(pltout);
                     60:        e0->p1x = e1->p1x = (float) readInt(pltin);
                     61:        e0->p1y = e1->p1y = (float) readInt(pltin);
                     62:        e0->p2x = e1->p2x = (float) readInt(pltin);
                     63:        e0->p2y = e1->p2y = (float) readInt(pltin);
                     64:        DX = e0->p2x - e0->p1x;
                     65:        e0->xmax = e1->xmax = DX;
                     66:        DY = e0->p2y - e0->p1y;
                     67:        e0->ymax = e1->ymax = DY;
                     68:        e0->scale = e1->scale = 1.;
                     69:        e0->pen = e1->pen = 1;
                     70:        e0->charsz = e1->charsz = 1.;
                     71:        e0->brush = e1->brush = 1;
                     72:        e0->pentype = e1->pentype = 0;
                     73:        e0->xmin = e1->xmin = 0;
                     74:        e0->ymin = e1->ymin = 0;
                     75:        e0->pslant = e1->pslant = 0;
                     76:        e0->pgap = e1->pgap = 2.;
                     77:        if(*s == 'N'){
                     78:                noscale = 0;
                     79:                fprintf(pltout,"SC %8.2f,%8.2f %8.2f,%8.2f\n",
                     80:                        e1->xmin,e1->xmax,e1->ymin,e1->ymax);
                     81:        }
                     82:        ckerr(1);
                     83: }

unix.superglobalmegacorp.com

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