Annotation of coherent/e/bin/cku179/ckustr.c, revision 1.1.1.1

1.1       root        1: #include <stdio.h>
                      2: #include <sysexits.h>
                      3: 
                      4: /* string extraction/restoration routines */
                      5: 
                      6: /* Modify the pathname below to suit system requirements */
                      7: 
                      8: char   *StringFile =   "/usr/local/lib/kermit5.sr";
                      9: 
                     10: static int strfile = -1, ourpid = 0;
                     11: 
                     12: #define BUFLEN 256
                     13: 
                     14: errprep(offset, buf)
                     15: unsigned short offset;
                     16: char *buf;
                     17: {
                     18: register int pid = getpid();
                     19: 
                     20:        if (pid != ourpid) {
                     21:                ourpid = pid;
                     22:                if (strfile >= 0) {
                     23:                        close(strfile);
                     24:                        strfile = -1;
                     25:                }
                     26:        }
                     27:        if (strfile < 0) {
                     28:                char *p, *getenv();
                     29:                if (p = getenv("KSTR")) StringFile = p;
                     30:                strfile = open(StringFile, 0);
                     31:                if (strfile < 0) {
                     32: oops:
                     33:                        fprintf(stderr, "Cannot find %s\r\n", StringFile);
                     34:                        exit(EX_OSFILE);
                     35:                }
                     36:        }
                     37:        if (lseek(strfile, (long) offset, 0) < 0
                     38:                        || read(strfile, buf, BUFLEN) <= 0)
                     39:                goto oops;
                     40: }
                     41: 
                     42: /* extracted string front end for printf() */
                     43: /*VARARGS1*/
                     44: strprerror(fmt, a, b, c, d, e)
                     45:        int fmt;
                     46: {
                     47:        char buf[BUFLEN];
                     48: 
                     49:        errprep(fmt, buf);
                     50:        printf(buf, a, b, c, d, e);
                     51: }
                     52: 
                     53: /* extracted string front end for sprintf() */
                     54: /*VARARGS1*/
                     55: strsrerror(fmt, obuf, a, b, c, d, e)
                     56:        int fmt;
                     57:        char *obuf;
                     58: {
                     59:        char buf[BUFLEN];
                     60: 
                     61:        errprep(fmt, buf);
                     62:        sprintf(obuf, buf, a, b, c, d, e);
                     63: }
                     64: 
                     65: /* extracted string front end for fprintf() */
                     66: /*VARARGS1*/
                     67: strfrerror(fmt, fd, a, b, c, d, e)
                     68:        int fmt, fd;
                     69: {
                     70:        char buf[BUFLEN];
                     71: 
                     72:        errprep(fmt, buf);
                     73:        fprintf(fd, buf, a, b, c, d, e);
                     74: }
                     75: 
                     76: /* extracted string front end for perror() */
                     77: strperror(fmt)
                     78:        int fmt;
                     79: {
                     80:        char buf[BUFLEN];
                     81: 
                     82:        errprep(fmt, buf);
                     83:        perror(buf);
                     84: }

unix.superglobalmegacorp.com

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