Annotation of researchv9/jerq/sgs/libsdp/chstack.c, revision 1.1

1.1     ! root        1: static char ID[] = "@(#) chstack.c: 1.1 3/16/82";
        !             2: #include <stdio.h>
        !             3: #include "sdp.h"
        !             4: #include "define2.h"
        !             5: #include "define3.h"
        !             6: 
        !             7: #define CS01   "CS01 "
        !             8: #define CS02   "CS02 "
        !             9: #define CS03   "CS03 "
        !            10: #define CS04   "CS04 "
        !            11: #define CS05   "CS05 "
        !            12: #define CS06   "CS06 "
        !            13: 
        !            14: 
        !            15: int
        !            16: sdp_chstack(sp,c,v)
        !            17: struct SPACE   *sp ;
        !            18: unsigned       c ;
        !            19: int            v[] ;
        !            20: {
        !            21:        ITEMID                  id ;
        !            22:        struct  STAXINFO        *ptr ;
        !            23:        struct  SPACE           tmp_sp ;
        !            24:        int                     i ;
        !            25: 
        !            26:        if ( c > 1 )
        !            27:                for ( i=1 ; i<c ; i++ )
        !            28:                        if ( v[i] - v[i-1] < sizeof(ITEMID) )
        !            29:                                ERR_RET(CS01,ERROR)
        !            30: 
        !            31:        tmp_sp = *sp ;
        !            32:        sp->staxinfo = (struct STAXINFO *)ALLOC((c+1)*sizeof(struct STAXINFO)) ;
        !            33:        if ( sp->staxinfo == NULL )
        !            34:                ERR_RET(CS02,ERROR)
        !            35:        sp->numbstax = c+1 ;
        !            36: 
        !            37:        sp->staxinfo[0].top     = IDNULL ;
        !            38:        sp->staxinfo[0].size    = 0 ;
        !            39:        sp->staxinfo[0].depth = 0 ;
        !            40:        for ( i=1 ; i<c+1 ; i++ )
        !            41:        {
        !            42:                sp->staxinfo[i].top   = IDNULL ;
        !            43:                sp->staxinfo[i].size  = v[i-1] ;
        !            44:                sp->staxinfo[i].depth = 0 ;
        !            45:        }
        !            46: 
        !            47:        for ( i=0 ; i<tmp_sp.numbstax ; i++ )
        !            48:                while ( (id=pop_id(&tmp_sp,tmp_sp.staxinfo[i].size)) != IDNOTFOUND )
        !            49:                        if ( id == IDNULL )
        !            50:                                ERR_RET(CS03,ERROR)
        !            51:                        else
        !            52:                        {
        !            53:                                ptr = (struct STAXINFO *)sdp_use(sp,id,RNLY) ;
        !            54:                                if ( ptr == NULL )
        !            55:                                        ERR_RET(CS04,ERROR)
        !            56:                                if ( push_id(sp,id,ptr->size) == NULL )
        !            57:                                        ERR_RET(CS05,ERROR)
        !            58:                                if ( sdp_unuse(sp,id,RNLY) == NULL )
        !            59:                                        ERR_RET(CS06,ERROR)
        !            60:                        }
        !            61:        return(SUCCESS) ;
        !            62: }

unix.superglobalmegacorp.com

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