Annotation of 43BSD/contrib/dsh/src/getrc.c, revision 1.1

1.1     ! root        1: #include <stdio.h>
        !             2: 
        !             3: #define LEN 100
        !             4: 
        !             5: FILE *
        !             6: getrcfile (file)
        !             7: char   *file;
        !             8: {
        !             9:     char       path[LEN];
        !            10:     FILE       *fp;
        !            11: 
        !            12:     if (*file != '/') {
        !            13:        strcpy (path, getenv ("HOME"));
        !            14:        strcat (path, "/");
        !            15:        strcat (path, file);
        !            16:        fp = fopen (path, "r");
        !            17:     } else {
        !            18:        fp = fopen (file, "r");
        !            19:     }
        !            20:     return (fp);
        !            21: }
        !            22: 
        !            23: rckeymatch (line, rc)
        !            24: char   *line;
        !            25: char   *rc;
        !            26: {
        !            27:     while (*line == ' ' || *line == '\t')
        !            28:        line++;
        !            29:     while (*rc != 0) {
        !            30:        if (*rc++ != *line++) 
        !            31:            return (0);
        !            32:     }
        !            33:     while (*line == ' ' || *line == '\t')
        !            34:        line++;
        !            35:     if (*line == '=')
        !            36:        return (1);
        !            37:     else
        !            38:        return (0);
        !            39: }
        !            40: 
        !            41: char *
        !            42: rcval (line)
        !            43: char   *line;
        !            44: {
        !            45:     while (*line++ != '=');
        !            46:     while (*line == ' ' || *line == '\t')
        !            47:        line++;
        !            48:     return (line);
        !            49: }
        !            50: 
        !            51: getintrc(file, rc, rvptr)
        !            52: char   *file;
        !            53: char   *rc;
        !            54: char   *rvptr;
        !            55: {
        !            56:     char       line[LEN];
        !            57:     FILE       *fp;
        !            58: 
        !            59:     fp = getrcfile (file);
        !            60:     if (fp != NULL) {
        !            61:        while (fgets(line, LEN, fp) != NULL) {
        !            62:            if (rckeymatch (line, rc)) {
        !            63:                *rvptr = atoi (rcval(line));
        !            64:                return (0);
        !            65:            }
        !            66:        }
        !            67:     }
        !            68:     return (-1);
        !            69: }
        !            70: 
        !            71: getstringrc(file, rc, rvptr)
        !            72: char   *file;
        !            73: char   *rc;
        !            74: char   *rvptr;
        !            75: {
        !            76:     char       line[LEN];
        !            77:     char       *p1;
        !            78:     FILE       *fp;
        !            79: 
        !            80:     fp = getrcfile (file);
        !            81:     if (fp != NULL) {
        !            82:        while (fgets(line, LEN, fp) != NULL) {
        !            83:            if (rckeymatch (line, rc)) {
        !            84:                p1 = rcval(line);
        !            85:                while (*p1 != '\n' && *p1 != 0) 
        !            86:                    *rvptr++ = *p1++;
        !            87:                *rvptr = 0;
        !            88:                return (0);
        !            89:            }
        !            90:        }
        !            91:     }
        !            92:     return (-1);
        !            93: }

unix.superglobalmegacorp.com

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