|
|
1.1 ! root 1: #include "f2c.h" ! 2: #include "fio.h" ! 3: #ifdef KR_headers ! 4: integer f_clos(a) cllist *a; ! 5: #else ! 6: #undef abs ! 7: #undef min ! 8: #undef max ! 9: #include "stdlib.h" ! 10: #ifdef MSDOS ! 11: #include "io.h" ! 12: #else ! 13: #ifdef __cplusplus ! 14: extern "C" int unlink(const char*); ! 15: #else ! 16: extern int unlink(const char*); ! 17: #endif ! 18: #endif ! 19: ! 20: integer f_clos(cllist *a) ! 21: #endif ! 22: { unit *b; ! 23: ! 24: if(a->cunit >= MXUNIT) return(0); ! 25: b= &f__units[a->cunit]; ! 26: if(b->ufd==NULL) ! 27: goto done; ! 28: if (!a->csta) ! 29: if (b->uscrtch == 1) ! 30: goto Delete; ! 31: else ! 32: goto Keep; ! 33: switch(*a->csta) { ! 34: default: ! 35: Keep: ! 36: case 'k': ! 37: case 'K': ! 38: if(b->uwrt == 1) ! 39: (void) t_runc((alist *)a); ! 40: if(b->ufnm) { ! 41: (void) fclose(b->ufd); ! 42: free(b->ufnm); ! 43: } ! 44: break; ! 45: case 'd': ! 46: case 'D': ! 47: Delete: ! 48: if(b->ufnm) { ! 49: (void) fclose(b->ufd); ! 50: (void) unlink(b->ufnm); /*SYSDEP*/ ! 51: free(b->ufnm); ! 52: } ! 53: } ! 54: b->ufd=NULL; ! 55: done: ! 56: b->uend=0; ! 57: b->ufnm=NULL; ! 58: return(0); ! 59: } ! 60: void ! 61: #ifdef KR_headers ! 62: f_exit() ! 63: #else ! 64: f_exit(void) ! 65: #endif ! 66: { int i; ! 67: static cllist xx; ! 68: if (!xx.cerr) { ! 69: xx.cerr=1; ! 70: xx.csta=NULL; ! 71: for(i=0;i<MXUNIT;i++) ! 72: { ! 73: xx.cunit=i; ! 74: (void) f_clos(&xx); ! 75: } ! 76: } ! 77: } ! 78: void ! 79: #ifdef KR_headers ! 80: flush_() ! 81: #else ! 82: flush_(void) ! 83: #endif ! 84: { int i; ! 85: for(i=0;i<MXUNIT;i++) ! 86: if(f__units[i].ufd != NULL && f__units[i].uwrt) ! 87: fflush(f__units[i].ufd); ! 88: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.