Annotation of 43BSDReno/kerberosIV/compile_et/init_et.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *
                      3:  * $Header: init_et.c,v 1.1 86/11/10 21:42:26 spook Exp $
                      4:  * $Source: /mit/s/p/spook/Work/et/RCS/init_et.c,v $
                      5:  * $Locker: spook $
                      6:  *
                      7:  * Copyright 1986 by MIT Information Systems and
                      8:  *     MIT Student Information Processing Board
                      9:  *
                     10:  * For copyright info, see mit-sipb-copyright.h.
                     11:  *
                     12:  */
                     13: 
                     14: #include <stdio.h>
                     15: #include "error_table.h"
                     16: #include "mit-sipb-copyright.h"
                     17: 
                     18: static char copyright[] = "Copyright 1987 by MIT Student Information Processing Board";
                     19: 
                     20: extern char *malloc(), *realloc();
                     21: 
                     22: /* useful */
                     23: typedef error_table *etp;
                     24: typedef etp *etpp;
                     25: 
                     26: etpp _et_list = (etpp)NULL;
                     27: static int n_allocated = 0, n_used = 0;
                     28: 
                     29: int
                     30: init_error_table(msgs, base, count)
                     31:        char **msgs;
                     32:        register int base;
                     33:        int count;
                     34: {
                     35:        register int i;
                     36:        register etp new_et;
                     37:        register etpp list;
                     38: 
                     39:        if (!base || !count || !msgs)
                     40:                return;
                     41: 
                     42:        new_et = (etp)malloc(sizeof(error_table));
                     43:        new_et->msgs = msgs;
                     44:        new_et->base = base;
                     45:        new_et->n_msgs= count;
                     46: 
                     47:        list = _et_list;
                     48:        if (list == (etpp)NULL) {
                     49:                _et_list = (etpp) malloc(10*sizeof(etp));
                     50:                list = _et_list;
                     51:                if (list == (etpp)NULL)
                     52:                        return; /* oops */
                     53:                list[0] = new_et;
                     54:                list[1] = (etp)NULL;
                     55:                n_allocated = 10;
                     56:                n_used = 1;
                     57:                return;
                     58:        }
                     59:        for (i = 0; i < n_used; i++)
                     60:                if (list[i]->base == base)
                     61:                        return; /* avoid duplicates */
                     62:        if (n_used+2 > n_allocated) {
                     63:                n_allocated += 10; /* don't re-allocate too often */
                     64:                list = (etpp) realloc((char *)list,
                     65:                                      (unsigned)n_allocated * sizeof(etp));
                     66:                _et_list = list;
                     67:                if (list == (etpp)NULL)
                     68:                        return; /* oops */
                     69:        }
                     70:        list[n_used++] = new_et;
                     71:        list[n_used] = (etp)NULL;
                     72: }

unix.superglobalmegacorp.com

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