]> pd.if.org Git - pdclib/blobdiff - functions/stdio/fopen.c
Added some functions.
[pdclib] / functions / stdio / fopen.c
index 2abb66407bb9bb7e80eb53dcecd0740148a2697e..96fdcc19803bb709efa65f28f61107ccb65cf57b 100644 (file)
@@ -77,13 +77,14 @@ struct _PDCLIB_file_t * fopen( const char * _PDCLIB_restrict filename, const cha
     if ( ( rc->status = filemode( mode ) ) == 0 ) goto fail; /* invalid mode */
     rc->handle = _PDCLIB_open( filename, rc->status );
     if ( rc->handle == _PDCLIB_NOHANDLE ) goto fail; /* OS open() failed */
-
     /* Adding to list of open files */
     rc->next = _PDCLIB_filelist;
     _PDCLIB_filelist = rc;
-    /* Setting buffer, and mark as internal. TODO: Check for unbuffered? */
+    /* Setting buffer, and mark as internal. TODO: Check for unbuffered */
     if ( ( rc->buffer = malloc( BUFSIZ ) ) == NULL ) goto fail;
-    rc->status |= _PDCLIB_LIBBUFFER;
+    rc->bufsize = BUFSIZ;
+    rc->bufidx = 0;
+    rc->status |= ( _PDCLIB_LIBBUFFER | _PDCLIB_VIRGINSTR );
     /* TODO: Setting mbstate */
     return rc;
 fail:
@@ -98,6 +99,7 @@ fail:
 
 int main( void )
 {
+#ifndef REGTEST
     TESTCASE( filemode( "r" ) == _PDCLIB_FREAD );
     TESTCASE( filemode( "w" ) == _PDCLIB_FWRITE );
     TESTCASE( filemode( "a" ) == _PDCLIB_FAPPEND );
@@ -122,6 +124,9 @@ int main( void )
     TESTCASE( fopen( "testfile", "wr" ) == NULL ); /* Illegal mode */
     TESTCASE( fopen( "testfile", "w" ) != NULL );
     system( "rm testfile" );
+#else
+    puts( " NOTEST fopen() test driver is PDCLib-specific." );
+#endif
     return TEST_RESULTS;
 }