Annotation of 43BSDReno/contrib/isode-beta/others/quipu/uips/pod/symtab.c, revision 1.1

1.1     ! root        1: 
        !             2: #ifndef lint
        !             3: static char *rcsid = "$Header: /f/osi/others/quipu/uips/pod/RCS/symtab.c,v 7.0 90/06/12 13:15:53 mrose Exp $";
        !             4: #endif
        !             5: 
        !             6: /*
        !             7:  * $Header: /f/osi/others/quipu/uips/pod/RCS/symtab.c,v 7.0 90/06/12 13:15:53 mrose Exp $
        !             8:  */
        !             9: 
        !            10: /*
        !            11:  * $Log:       symtab.c,v $
        !            12:  * Revision 7.0  90/06/12  13:15:53  mrose
        !            13:  * *** empty log message ***
        !            14:  * 
        !            15:  * Revision 1.5  90/04/26  10:21:26  emsrdsm
        !            16:  * *** empty log message ***
        !            17:  * 
        !            18:  * Revision 1.4  90/04/25  13:47:56  emsrdsm
        !            19:  * i) lint'ed
        !            20:  * 
        !            21:  * Revision 1.3  90/04/20  10:28:32  emsrdsm
        !            22:  * (i) fixed form bug
        !            23:  * 
        !            24:  * Revision 1.2  90/04/18  18:48:32  emsrdsm
        !            25:  * i) added logging
        !            26:  * 
        !            27:  * Revision 1.1  90/04/10  16:45:07  emsrdsm
        !            28:  * Initial revision
        !            29:  * 
        !            30:  */
        !            31: 
        !            32: #include "symtab.h"
        !            33: #include <stdio.h>
        !            34: #include <string.h>
        !            35: #include <ctype.h>
        !            36: #include <malloc.h>
        !            37: 
        !            38: put_symbol_value(table, name, val)
        !            39: table_entry table;
        !            40: char *name;
        !            41: char *val;
        !            42: {
        !            43:        if (!name) return;
        !            44: 
        !            45:        while(table && strcmp(name, table->name)) {
        !            46:                table = table->next;
        !            47:        }
        !            48:        if (table) {
        !            49:                free(table->val);
        !            50:                if (val) {
        !            51:                        table->val = 
        !            52:                          (char *) malloc((unsigned int) (strlen(val) + 1));
        !            53:                        (void) strcpy(table->val, val);
        !            54:                } else
        !            55:                        table->val = (char *) 0;
        !            56:        } else {
        !            57:                table = (table_entry ) malloc(sizeof(table_entry));
        !            58:                table->next = NULLSYM;
        !            59:                table->name = 
        !            60:                  (char *) malloc((unsigned int) (strlen(name) + 1));
        !            61:                (void) strcpy(table->name, name);
        !            62:                 if (val) {
        !            63:                         table->val = 
        !            64:                          (char *) malloc((unsigned int) (strlen(val) + 1));
        !            65:                         (void) strcpy(table->val, val);
        !            66:                } else
        !            67:                         table->val = (char *) 0;
        !            68:        }
        !            69: }
        !            70:                
        !            71: char *
        !            72: get_symbol_value(table, name)
        !            73: table_entry table;
        !            74: char *name;
        !            75: {
        !            76:        while(table && strcmp(name, table->name)) table = table->next;
        !            77:        if (table)
        !            78:                return table->val;
        !            79:        return (char *) 0;
        !            80: }
        !            81:                
        !            82: 
        !            83: free_table(table)
        !            84: table_entry table;
        !            85: {
        !            86:        table_entry  entry;
        !            87: 
        !            88:        while(table) {
        !            89:                if (table->val)
        !            90:                        free(table->val);
        !            91:                free((char *) (table->name));
        !            92:                entry = table;
        !            93:                table = table->next;
        !            94:                free((char *)entry);
        !            95:        }
        !            96: }
        !            97: 
        !            98: 
        !            99: 
        !           100: 
        !           101: 

unix.superglobalmegacorp.com

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