Annotation of 41BSD/cmd/vpr/railmag.c, revision 1.1

1.1     ! root        1: #
        !             2: /*
        !             3:  * tell vcat which fonts are loaded on the "typesetter"
        !             4:  */
        !             5: #define MAGIC_NUMBER 0436
        !             6: #define RAILMAG_FILE "/usr/lib/vfont/railmag"
        !             7: 
        !             8: char *concat();
        !             9: int rmfd;
        !            10: char *rm[4];
        !            11: char tbuf[256];
        !            12: 
        !            13: main(argc, argv)
        !            14:        int argc;
        !            15:        char *argv[];
        !            16:        {
        !            17:        register int fnum;
        !            18:        char cbuf[4][50];
        !            19: 
        !            20:        readrm();
        !            21:        if(argc <= 1)
        !            22:                {
        !            23:                printrm();
        !            24:                exit(0);
        !            25:                }
        !            26:        while(--argc)
        !            27:                {
        !            28:                argv++;
        !            29:                fnum = argv[0][0]-'0';
        !            30:                if(fnum < 1 || fnum > 4)
        !            31:                        error("Invalid font number");
        !            32:                checkfont(argv[1]);
        !            33:                if(argv[1][0] == '/')
        !            34:                        rm[fnum-1] = argv[1];
        !            35:                   else
        !            36:                        rm[fnum-1] = concat(cbuf[fnum-1], "/usr/lib/vfont/", argv[1]);
        !            37:                argv++; argc--;
        !            38:                }
        !            39:        writerm();
        !            40:        }
        !            41: 
        !            42: 
        !            43: error(str)
        !            44:        char *str;
        !            45:        {
        !            46: 
        !            47:        write(2, "Railmag: ", 9);
        !            48:        write(2, str, strlen(str));
        !            49:        write(2, "\n", 1);
        !            50:        exit();
        !            51:        }
        !            52: 
        !            53: 
        !            54: checkfont(file)
        !            55:        char *file;
        !            56:        {
        !            57:        register int fd;
        !            58:        char cbuf[80];
        !            59:        char cbuf2[80];
        !            60:        short word;
        !            61: 
        !            62:        if((fd = open(concat(cbuf, file, ".10"), 0)) < 0)
        !            63:                if((fd = open(concat(cbuf2, "/usr/lib/vfont/", cbuf), 0)) < 0)
        !            64:                        error("cant open font");
        !            65:        if(read(fd, &word, 2) != 2)
        !            66:                error("cant read font");
        !            67:        if(word != MAGIC_NUMBER)
        !            68:                error("font has no magic number");
        !            69:        close(fd);
        !            70:        }
        !            71: 
        !            72: readrm()
        !            73:        {
        !            74:        register int i;
        !            75:        register char *cp;
        !            76:        char c;
        !            77: 
        !            78:        if((rmfd = open(RAILMAG_FILE, 0)) < 0)
        !            79:                error("No railmag file");
        !            80:        cp = tbuf;
        !            81:        for(i = 0; i < 4; i++)
        !            82:                {
        !            83:                rm[i] = cp;
        !            84:                while(read(rmfd, &c, 1) == 1 && c != '\n')
        !            85:                        *cp++ = c;
        !            86:                *cp++ = '\0';
        !            87:                }
        !            88:        }
        !            89: 
        !            90: printrm()
        !            91:        {
        !            92:        register int i;
        !            93: 
        !            94:        for(i = 0; i < 4; i++)
        !            95:                printf("%s on %d\n", rm[i], i+1);
        !            96:        }
        !            97: 
        !            98: writerm()
        !            99:        {
        !           100:        register int i;
        !           101:        register char *cp;
        !           102: 
        !           103:        unlink(RAILMAG_FILE);
        !           104:        if((rmfd = creat(RAILMAG_FILE, 0644)) < 0)
        !           105:                error("cant recreate railmag file");
        !           106:        for(i = 0; i < 4; i++)
        !           107:                {
        !           108:                cp = rm[i];
        !           109:                while(*cp != '\0')
        !           110:                        write(rmfd, cp++, 1);
        !           111:                write(rmfd, "\n", 1);
        !           112:                }
        !           113:        }
        !           114: 
        !           115: char *
        !           116: concat(outbuf,in1,in2)
        !           117:    char *outbuf,*in1,*in2;
        !           118:        {
        !           119:        char *save;
        !           120: 
        !           121:        save = outbuf;
        !           122:        while(*in1)
        !           123:                *outbuf++ = *in1++;
        !           124:        while(*in2)
        !           125:                *outbuf++ = *in2++;
        !           126:                return(save);
        !           127: }

unix.superglobalmegacorp.com

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