Annotation of researchv10no/cmd/daemon/lab.c, revision 1.1

1.1     ! root        1: char   dpd[]   = "/usr/spool/lab";
        !             2: char   dfname[30] = "/usr/spool/lab/";
        !             3: char   lock[]  = "/usr/spool/lab/lock";
        !             4: char   lp[] = "/dev/lab";
        !             5: 
        !             6: /*
        !             7:  *     lab - label maker dispatcher for DataSouth DS180 matrix printer
        !             8:  */
        !             9: 
        !            10: #include <ctype.h>
        !            11: #include <sys/ttyio.h>
        !            12: #include <sys/filio.h>
        !            13: 
        !            14: #define        SPIDER  0
        !            15: #define        PHONE   0
        !            16: #define        LPD     1
        !            17: 
        !            18: #include       "daemon.c"
        !            19: 
        !            20: /*
        !            21:  * The remaining part is the line printer interface.
        !            22:  */
        !            23: 
        !            24: FILE   *lpf = NULL;
        !            25: 
        !            26: #define LINESIZE 1000
        !            27: 
        !            28: char buf[LINESIZE], ubuf[LINESIZE];
        !            29: int ulen, blen;
        !            30: 
        !            31: dem_con()
        !            32: {
        !            33:        return(0);
        !            34: }
        !            35: 
        !            36: dem_dis()
        !            37: {
        !            38:        FCLOSE(lpf);
        !            39:        FCLOSE(dfb);
        !            40: }
        !            41: 
        !            42: dem_open(file)
        !            43: char   *file;
        !            44: {
        !            45:        struct sgttyb tb;
        !            46:        struct ttydevb grime;
        !            47:        static char iobuf[BUFSIZ];
        !            48:        int ld = 0;
        !            49:        extern int tty_ld;
        !            50: 
        !            51:        if((lpf = fopen(lp, "w")) == NULL)
        !            52:                trouble("Can't open %s", lp);
        !            53:        if (ioctl(fileno(lpf), FIOLOOKLD, &ld)<0 || ld!=tty_ld)
        !            54:                ioctl(fileno(lpf), FIOPUSHLD, &tty_ld);
        !            55:        if (ioctl(fileno(lpf), TIOCGETP, &tb) < 0)
        !            56:                trouble("Can't do gtty(%s)\n", lp);
        !            57:        ioctl(fileno(lpf), TIOCGDEV, &grime);
        !            58:        tb.sg_ispeed = tb.sg_ospeed = B9600;    /* obsolescent */
        !            59:        tb.sg_flags &= ~ALLDELAY;
        !            60:        tb.sg_flags |= XTABS|TANDEM;
        !            61:        if (ioctl(fileno(lpf), TIOCSETP, &tb) < 0)
        !            62:                trouble("Can't do stty(%s)\n", lp);
        !            63:        grime.ispeed = grime.ospeed = B9600;
        !            64:        ioctl(fileno(lpf), TIOCSDEV, &grime);
        !            65:        setbuf (lpf, iobuf);
        !            66: }
        !            67: 
        !            68: 
        !            69: dem_close()
        !            70: {
        !            71:        dem_dis();
        !            72: }
        !            73: 
        !            74: get_snumb()
        !            75: {
        !            76: }
        !            77: 
        !            78: lwrite()
        !            79: {
        !            80:        /* banner(lpf, &line[1]); */
        !            81: }
        !            82: 
        !            83: 
        !            84: FILE   *ibuf;
        !            85: 
        !            86: sascii(fc)
        !            87: char   fc;
        !            88: {
        !            89:        register int c, nblank;
        !            90: 
        !            91:        if((ibuf = fopen(&line[1], "r")) == NULL)
        !            92:                return(0);
        !            93: 
        !            94:        putc(ff, lpf);
        !            95: 
        !            96:        nblank = 0;
        !            97:        while ((c = getc (ibuf)) != EOF) {
        !            98:                switch (c) {
        !            99:                case ' ':
        !           100:                        nblank++;
        !           101:                        break;
        !           102: 
        !           103:                case '-':
        !           104:                        if (nblank >= 1) {
        !           105:                                c = getc (ibuf);
        !           106:                                if (c == '\n') {
        !           107:                                        putc ('\r', lpf);
        !           108:                                        c = ff;
        !           109:                                } else
        !           110:                                        putc ('-', lpf);
        !           111:                        }
        !           112:                        /* no break */
        !           113:                default:
        !           114:                        nblank = 0;
        !           115:                }
        !           116:                putc (c, lpf);
        !           117:        }
        !           118: 
        !           119:        for (c = 0; c < 6; c++)
        !           120:                putc (ff, lpf);
        !           121: 
        !           122:        fflush(lpf);
        !           123:        fclose(ibuf);
        !           124:        return(0);
        !           125: }
        !           126: 
        !           127: etcp1()
        !           128: {
        !           129: }
        !           130: 
        !           131: /* VARARGS */
        !           132: trouble(s, a1, a2, a3, a4)
        !           133: char   *s;
        !           134: {
        !           135:        if(retcode != 0){
        !           136:                dem_dis();
        !           137:        }
        !           138:        logerr(s, a1, a2, a3, a4);
        !           139:        longjmp(env, 1);
        !           140: }
        !           141: 
        !           142: /* VARARGS */
        !           143: logerr(s, a1, a2, a3, a4)
        !           144: char   *s;
        !           145: int    a1, a2, a3, a4;
        !           146: {
        !           147: #ifdef DEBUG
        !           148:        fprintf(stderr, s, a1, a2, a3, a4);
        !           149:        putc('\n', stderr);
        !           150: #endif
        !           151: }
        !           152: 
        !           153: getowner()
        !           154: {
        !           155: }
        !           156: 
        !           157: maildname()
        !           158: {
        !           159:        fprintf(pmail, "Your %s job for file %s is finished, Jim.\n", DAEMNAM, mailfname);
        !           160: }

unix.superglobalmegacorp.com

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