| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- #include "f2c.h"
 
- #include "fio.h"
 
- #ifdef KR_headers
 
- integer f_clos(a) cllist *a;
 
- #else
 
- #undef abs
 
- #undef min
 
- #undef max
 
- #include "stdlib.h"
 
- #ifdef NON_UNIX_STDIO
 
- #ifndef unlink
 
- #define unlink remove
 
- #endif
 
- #else
 
- #ifdef MSDOS
 
- #include "io.h"
 
- #else
 
- #ifdef __cplusplus
 
- extern "C" int unlink(const char*);
 
- #else
 
- extern int unlink(const char*);
 
- #endif
 
- #endif
 
- #endif
 
- #ifdef __cplusplus
 
- extern "C" {
 
- #endif
 
- integer f_clos(cllist *a)
 
- #endif
 
- {	unit *b;
 
- 	if(a->cunit >= MXUNIT) return(0);
 
- 	b= &f__units[a->cunit];
 
- 	if(b->ufd==NULL)
 
- 		goto done;
 
- 	if (b->uscrtch == 1)
 
- 		goto Delete;
 
- 	if (!a->csta)
 
- 		goto Keep;
 
- 	switch(*a->csta) {
 
- 		default:
 
- 	 	Keep:
 
- 		case 'k':
 
- 		case 'K':
 
- 			if(b->uwrt == 1)
 
- 				t_runc((alist *)a);
 
- 			if(b->ufnm) {
 
- 				fclose(b->ufd);
 
- 				free(b->ufnm);
 
- 				}
 
- 			break;
 
- 		case 'd':
 
- 		case 'D':
 
- 		Delete:
 
- 			fclose(b->ufd);
 
- 			if(b->ufnm) {
 
- 				unlink(b->ufnm); /*SYSDEP*/
 
- 				free(b->ufnm);
 
- 				}
 
- 		}
 
- 	b->ufd=NULL;
 
-  done:
 
- 	b->uend=0;
 
- 	b->ufnm=NULL;
 
- 	return(0);
 
- 	}
 
-  void
 
- #ifdef KR_headers
 
- f_exit()
 
- #else
 
- f_exit(void)
 
- #endif
 
- {	int i;
 
- 	static cllist xx;
 
- 	if (!xx.cerr) {
 
- 		xx.cerr=1;
 
- 		xx.csta=NULL;
 
- 		for(i=0;i<MXUNIT;i++)
 
- 		{
 
- 			xx.cunit=i;
 
- 			(void) f_clos(&xx);
 
- 		}
 
- 	}
 
- }
 
-  int
 
- #ifdef KR_headers
 
- flush_()
 
- #else
 
- flush_(void)
 
- #endif
 
- {	int i;
 
- 	for(i=0;i<MXUNIT;i++)
 
- 		if(f__units[i].ufd != NULL && f__units[i].uwrt)
 
- 			fflush(f__units[i].ufd);
 
- return 0;
 
- }
 
- #ifdef __cplusplus
 
- }
 
- #endif
 
 
  |