X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fstdio%2Ffclose.c;h=0b4233034afe5b79b7fe0bccfa8b2c477e8b2654;hb=76aab9d24d750a2e639eb878d5907a8bcfab08cf;hp=ff01058d59c005e581d495318a4721188b900451;hpb=4e4b49a7f39364583df853d6776c05c952666ddf;p=pdclib.old 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; }