]> pd.if.org Git - pdclib/blobdiff - functions/stdio/fclose.c
Improved testdrivers.
[pdclib] / functions / stdio / fclose.c
index f633de3e8cf1364cf7583dfa52e635e600fe4d58..0b4233034afe5b79b7fe0bccfa8b2c477e8b2654 100644 (file)
@@ -29,12 +29,13 @@ int fclose( struct _PDCLIB_file_t * stream )
             _PDCLIB_close( stream->handle );
             if ( previous != NULL )
             {
-                previous->next = current->next;
+                previous->next = stream->next;
             }
             else
             {
-                _PDCLIB_filelist = current->next;
+                _PDCLIB_filelist = stream->next;
             }
+            free( stream );
             return 0;
         }
         previous = current;
@@ -51,7 +52,6 @@ int fclose( struct _PDCLIB_file_t * stream )
 int main( void )
 {
 #ifndef REGTEST
-    /* FIXME: This is basically fopen() checking. Flushing and buffer-freeing is not checked. */
     struct _PDCLIB_file_t * file1;
     struct _PDCLIB_file_t * file2;
     TESTCASE( _PDCLIB_filelist == NULL );
@@ -66,7 +66,7 @@ int main( void )
     TESTCASE( fclose( file1 ) == 0 );
     TESTCASE( _PDCLIB_filelist == file2 );
     TESTCASE( fclose( file2 ) == 0 );
-    TESTCASE( _PDCLIB_filelist == NULL ); /* FIXME: fails */
+    TESTCASE( _PDCLIB_filelist == NULL );
     system( "rm testfile1 testfile2" );
 #else
     puts( " NOTEST fclose() test driver is PDCLib-specific." );