X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fstdio%2Ffclose.c;h=0e822eb95ad58af5518497af060b032a22a63d7e;hb=b406087285dda97f2666a7f52f66b14582ed937b;hp=3f7ce19dec0407dac54652eecce496207adbf1ee;hpb=393020b6e48719d27699dea6b29e53025bbd5123;p=pdclib diff --git a/functions/stdio/fclose.c b/functions/stdio/fclose.c index 3f7ce19..0e822eb 100644 --- a/functions/stdio/fclose.c +++ b/functions/stdio/fclose.c @@ -14,7 +14,6 @@ extern struct _PDCLIB_file_t * _PDCLIB_filelist; -/* FIXME: Last file not removed from list. */ int fclose( struct _PDCLIB_file_t * stream ) { struct _PDCLIB_file_t * current = _PDCLIB_filelist; @@ -33,11 +32,6 @@ int fclose( struct _PDCLIB_file_t * stream ) return EOF; } } - /* Free buffer */ - if ( stream->status & _PDCLIB_LIBBUFFER ) - { - free( stream->buffer ); - } /* Close handle */ _PDCLIB_close( stream->handle ); /* Remove stream from list */ @@ -49,8 +43,14 @@ int fclose( struct _PDCLIB_file_t * stream ) { _PDCLIB_filelist = stream->next; } + /* Delete tmpfile() */ + if ( stream->status & _PDCLIB_DELONCLOSE ) + { + remove( stream->filename ); + } /* Free stream */ free( stream ); + return 0; } previous = current;