X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fstdio%2Ffclose.c;h=0b4233034afe5b79b7fe0bccfa8b2c477e8b2654;hb=d9e48b611b63bcfc55727463cb9d9d0e87a7a405;hp=ff01058d59c005e581d495318a4721188b900451;hpb=d2c64b8390799b64a24609e689ef87dec9b74dea;p=pdclib diff --git a/functions/stdio/fclose.c b/functions/stdio/fclose.c index ff01058..0b42330 100644 --- a/functions/stdio/fclose.c +++ b/functions/stdio/fclose.c @@ -29,12 +29,13 @@ int fclose( struct _PDCLIB_file_t * stream ) _PDCLIB_close( stream->handle ); if ( previous != NULL ) { - previous = current->next; + previous->next = stream->next; } else { - _PDCLIB_filelist = current->next; + _PDCLIB_filelist = stream->next; } + free( stream ); return 0; } previous = current; @@ -50,7 +51,7 @@ int fclose( struct _PDCLIB_file_t * stream ) int main( void ) { - /* FIXME: This is basically fopen() checking. Flushing and buffer-freeing is not checked. */ +#ifndef REGTEST struct _PDCLIB_file_t * file1; struct _PDCLIB_file_t * file2; TESTCASE( _PDCLIB_filelist == NULL ); @@ -67,6 +68,9 @@ int main( void ) TESTCASE( fclose( file2 ) == 0 ); TESTCASE( _PDCLIB_filelist == NULL ); system( "rm testfile1 testfile2" ); +#else + puts( " NOTEST fclose() test driver is PDCLib-specific." ); +#endif return TEST_RESULTS; }