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? */
if ( ( rc->buffer = malloc( BUFSIZ ) ) == NULL ) goto fail;
- rc->status |= _PDCLIB_LIBBUFFER;
+ rc->status |= ( _PDCLIB_LIBBUFFER | _PDCLIB_VIRGINSTR );
/* TODO: Setting mbstate */
return rc;
fail:
int main( void )
{
+#ifndef REGTEST
TESTCASE( filemode( "r" ) == _PDCLIB_FREAD );
TESTCASE( filemode( "w" ) == _PDCLIB_FWRITE );
TESTCASE( filemode( "a" ) == _PDCLIB_FAPPEND );
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;
}