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

1.1     ! root        1: static char ID[] = "@(#) destroy.c: 1.2 12/8/82";
        !             2: #include <stdio.h>
        !             3: #include "sdp.h"
        !             4: #include "define2.h"
        !             5: #include "define3.h"
        !             6: 
        !             7: #ifdef SHORT
        !             8: #define DE01   "DE01 "
        !             9: #define DE02   "DE02 "
        !            10: #define DE03   "DE03 "
        !            11: #define DE04   "DE04 "
        !            12: #define DE05   "DE05 "
        !            13: #define DEAU   "DEAU"
        !            14: #else
        !            15: #define DE01   "DE01 -- error return from rdSPACE\n%s\n",name
        !            16: #define DE02   "DE02 -- fail to unlink header file\n%s\n",sp->head_name
        !            17: #define DE03   "DE03 -- fail to build name\n%s%d\n",sp->head_name,i
        !            18: #define DE04   "DE04 -- fail to unlink file\n%s\n",file_name
        !            19: #define DE05   "DE05 -- unknown descriptor value\n%d\n",sp->fileinfo[i].desc
        !            20: #define DEAU   "%s","DEAU -- audit failed in sdp_destroy\n"
        !            21: #endif
        !            22: 
        !            23: #ifdef SWEET
        !            24: #define PROLOG
        !            25: #define EPILOG
        !            26: #else
        !            27: #define PROLOG         if( (aud_flag == AUDITON) && (aud_check() == ERROR) )\
        !            28:                                ERR_RET(DEAU,ERROR)
        !            29: #define EPILOG         if(aud_flag == AUDITON)\
        !            30:                                aud_set() ;\
        !            31:                        if(hist_fp != NULL)\
        !            32:                                fprintf(hist_fp,"DE\t%s\n",name) ;
        !            33: #endif
        !            34: 
        !            35: 
        !            36: extern int aud_flag ;
        !            37: extern struct LIBFILE *Glib_file ;
        !            38: extern FILE *hist_fp ;
        !            39: extern struct LIBFILE lib_file ;
        !            40: 
        !            41: extern char *BUILDNAME() ;
        !            42: extern aud_set() ;
        !            43: extern int aud_check() ;
        !            44: extern FATAL() ;
        !            45: extern FREE() ;
        !            46: extern struct SPACE *rdSPACE() ;
        !            47: extern UNLINK() ;
        !            48: 
        !            49: int                                    /* SUCCESS or ERROR */
        !            50: sdp_destroy(name,library)
        !            51: char           *name ;
        !            52: struct LIBFILE *library ;
        !            53: {
        !            54:        register int            i ;
        !            55:        register struct SPACE   *sp ;
        !            56:        register char           *file_name ;
        !            57: 
        !            58:        PROLOG
        !            59: 
        !            60:        Glib_file = (library == NULL) ? &lib_file : library ;
        !            61:        if( (sp = rdSPACE(name)) == NULL )
        !            62:                ERR_RET(DE01,ERROR)
        !            63: 
        !            64:        if(MUNLINK(sp->head_name) == ERROR)
        !            65:                ERR_RET(DE02,ERROR)
        !            66: 
        !            67:        for(i=0 ; i<sp->numbfile; i++)
        !            68:                switch(sp->fileinfo[i].desc)
        !            69:                {
        !            70:                        case CLOSED:
        !            71:                                if( (file_name = MBUILDNAME(sp->head_name,i)) == NULL )
        !            72:                                        ERR_RET(DE03,ERROR)
        !            73:                                if(MUNLINK(file_name) == ERROR)
        !            74:                                        ERR_RET(DE04,ERROR)
        !            75:                                FREE(file_name) ;
        !            76:                                break ;
        !            77: 
        !            78:                        case NOTMADE:
        !            79:                                break ;
        !            80: 
        !            81:                        default:
        !            82:                                ERR_RET(DE05,ERROR)
        !            83:                                break ;
        !            84:                }
        !            85: 
        !            86:        FREE(sp->head_name) ;
        !            87:        sp->head_name = NULL ;
        !            88:        FREE((char *)sp->fileinfo) ;
        !            89:        sp->fileinfo = NULL ;
        !            90:        FREE((char *)sp->staxinfo) ;
        !            91:        sp->staxinfo = NULL ;
        !            92:        FREE((char *)sp) ;
        !            93:        sp = NULL ;
        !            94: 
        !            95:        EPILOG
        !            96:        return(SUCCESS) ;
        !            97: }

unix.superglobalmegacorp.com

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