Annotation of coherent/b/bin/pclfont.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * pclfont.c
                      3:  *
                      4:  * Prepare a font for downloading to a PCL printer via lp.
                      5:  *
                      6:  * Usage:  pclfont [-f n] font [... font] > outputfile
                      7:  *
                      8:  * where -f indicates to begin loading the fonts into memory beginning with
                      9:  * slot n
                     10:  *
                     11:  * by fwb, 8/13/93 (Friday the 13th)
                     12:  */
                     13: #include <fcntl.h>
                     14: #include <stdlib.h>
                     15: #include <string.h>
                     16: #include <unistd.h>
                     17: 
                     18: char *usage = "Usage: pclfont [-f n] font [... font]";
                     19: char buffer[600];
                     20: 
                     21: void fatal(message)
                     22: char * message;
                     23: {
                     24:        sprintf(buffer, "%s", message);
                     25:        write (STDOUT_FILENO, buffer, strlen(buffer));
                     26:        exit(EXIT_FAILURE);
                     27: }
                     28: 
                     29: void beginstring(slot)
                     30: int slot;
                     31: {
                     32:        sprintf(buffer, "\033*c%dD", slot);
                     33:        write (STDOUT_FILENO, buffer, strlen(buffer));
                     34: }
                     35: 
                     36: void endstring()
                     37: {
                     38:        sprintf(buffer, "\033*c5F");
                     39:        write(STDOUT_FILENO, buffer, strlen(buffer));
                     40: }
                     41: 
                     42: void copyfont (indev)
                     43: int indev;
                     44: {
                     45:        int numread;
                     46: 
                     47:        while (1) {
                     48:                numread = read(indev, buffer, 512);
                     49: 
                     50:                if (numread == -1)
                     51:                        fatal("Error on reading font file");
                     52: 
                     53:                write(STDOUT_FILENO, buffer, numread);
                     54: 
                     55:                if (numread < 512)
                     56:                        return; 
                     57:        }
                     58: }
                     59: 
                     60: main (argc, argv)
                     61: int argc; char *argv[1];
                     62: {
                     63:        int indev, i, baseslot;
                     64: 
                     65:        /* find the base slot */
                     66:        if (!strncmp(argv[1], "-f", 2)) {
                     67:                baseslot = atoi(argv[2]);
                     68:                if (baseslot < 1)
                     69:                        fatal ("Font slot must be at least 1");
                     70:                i = 3;
                     71:        } else {
                     72:                i = 1;
                     73:                baseslot = 1;
                     74:        }
                     75: 
                     76:        if (i == argc) {
                     77:                beginstring (baseslot);
                     78:                copyfont(STDIN_FILENO);
                     79:                endstring();
                     80:                exit(EXIT_SUCCESS);
                     81:        }
                     82: 
                     83:        for ( ; i < argc; baseslot++, i++) {
                     84:                if ((indev = open(argv[i], O_RDONLY, 0)) == -1)
                     85:                        fatal("Could not open font file");
                     86:                beginstring (baseslot);
                     87:                copyfont(indev);
                     88:                endstring();
                     89:        }
                     90:        exit(EXIT_SUCCESS);
                     91: }

unix.superglobalmegacorp.com

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