38d2602fc1
the function naming problem for complex double function i've recently aksed for in -committers. (The recently committed rev 1.5 of proc.c was actually also part of this update.) Should the mailing lists come to an agreement that f2c better belongs into the ports, this could be done nevertheless. For the time being, we've at least got a current version now. Thanks, Steve! Submitted by: Steve Kargl <sgk@troutmask.apl.washington.edu>
95 lines
1.3 KiB
C
95 lines
1.3 KiB
C
#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
|
|
|
|
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;
|
|
}
|