Annotation of researchv9/jerq/sgs/libsdp/destroy.c, revision 1.1.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.