/* Copyright (c) 1979 Regents of the University of California */
-static char sccsid[] = "@(#)PCLOSE.c 1.1 10/29/80";
+static char sccsid[] = "@(#)PCLOSE.c 1.4 6/10/81";
#include "h00vars.h"
-#include "h01errs.h"
PCLOSE(level)
while(next != FILNIL && next->flev <= level) {
if (next->fbuf != 0) {
if ((next->funit & FDEF) == 0) {
+ if (next->fblk > PREDEF) {
+ fflush(next->fbuf);
+ setbuf(next->fbuf, NULL);
+ }
fclose(next->fbuf);
if (ferror(next->fbuf)) {
- ERROR(ECLOSE, next->pfname);
+ ERROR("%s: Close failed\n",
+ next->pfname);
return;
}
}
if ((next->funit & TEMP) != 0 &&
unlink(next->pfname)) {
- ERROR(EREMOVE, next->pfname);
+ PERROR("Could not remove ", next->pfname);
return;
}
}