/*
** vbcc-Amiga-PowerPC version of fclose.c
**
** v0.1 04.10.97 phx
*/

#include <stdio.h>
#include <powerup/gcclib/powerup_protos.h>

extern char *_stdin,*_stdout,*_stderr;
extern FILE *_firstfile,*_lastfile;

/* closes files */
/* still very simple */
int fclose(FILE *f)
{
    if(!f) return(EOF);
    if(!f->filehandle) return(EOF);
    fflush(f);
    if(f->filehandle!=_stdin&&f->filehandle!=_stdout&&f->filehandle!=_stderr)
        PPCClose((BPTR)f->filehandle);  /* evaluate return code here */
    if(f->prev) f->prev->next=f->next; else _firstfile=f->next;
    if(f->next) f->next->prev=f->prev; else _lastfile=f->prev;
    if(f->base&&!(f->flags&_NOTMYBUF)) free(f->base-1);
    free(f);
    return(0);
}
