Annotation of 43BSDTahoe/usr.bin/struct/0.list.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)0.list.c   4.1     (Berkeley)      2/11/83";
                      3: #endif not lint
                      4: 
                      5: #include <stdio.h>
                      6: #include "def.h"
                      7: 
                      8: struct list *consls(v,ls)              /* make list */
                      9: VERT v;
                     10: struct list *ls;
                     11:        {
                     12:        struct list *temp;
                     13:        temp = challoc(sizeof(*temp));
                     14:        temp->elt = v;
                     15:        temp->nxtlist = ls;
                     16:        return(temp);
                     17:        }
                     18: 
                     19: struct list *append(v,ls)              /* return ls . v */
                     20: VERT v;
                     21: struct list *ls;
                     22:        {
                     23:        struct list *temp;
                     24:        if (!ls) return(consls(v,0));
                     25:        for (temp = ls; temp -> nxtlist; temp = temp->nxtlist)
                     26:                ;
                     27:        temp->nxtlist = consls(v,0);
                     28:        return(ls);
                     29:        }
                     30: 
                     31: 
                     32: freelst(ls)
                     33: struct list *ls;
                     34:        {
                     35:        if (!ls) return;
                     36:        if (ls->nxtlist)
                     37:                freelst(ls->nxtlist);
                     38:        chfree(ls,sizeof(*ls));
                     39:        }
                     40: 
                     41: 
                     42: oneelt(ls)             /* return w if w is only elt of ls, UNDEFINED otherwise */
                     43: struct list *ls;
                     44:        {
                     45:        if (!ls) return(UNDEFINED);
                     46:        if (ls->nxtlist) return(UNDEFINED);
                     47:        return(ls->elt);
                     48:        }
                     49: 
                     50: 
                     51: lslen(ls)              /* return number of elements in list ls */
                     52: struct list *ls;
                     53:        {
                     54:        int count;
                     55:        struct list *lp;
                     56:        count = 0;
                     57:        for (lp = ls; lp; lp = lp->nxtlist)
                     58:                ++count;
                     59:        return(count);
                     60:        }
                     61: 
                     62: 
                     63: prlst(ls)
                     64: struct list *ls;
                     65:        {
                     66:        struct list *lp;
                     67:        for (lp = ls; lp; lp = lp->nxtlist)
                     68:                printf("%d,",lp->elt);
                     69:        fprintf(stderr,"\n");
                     70:        }

unix.superglobalmegacorp.com

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