3 /* fputs( const char *, FILE * )
5 This file is part of the Public Domain C Library (PDCLib).
6 Permission is granted to use, modify, and / or redistribute at will.
13 int fputs( const char * _PDCLIB_restrict s, struct _PDCLIB_file_t * _PDCLIB_restrict stream )
15 /* FIXME: This is devoid of any error checking (file writeable? r/w
18 /* FIXME: Proper buffering handling. */
20 while ( stream->bufidx < stream->bufsize )
22 written = ( stream->buffer[stream->bufidx++] = *(s++) );
23 if ( ( written == '\0' ) ||
24 ( ( stream->status & _IOLBF ) && ( written == '\n' ) ) ||
25 ( stream->status & _IONBF ) )
31 if ( written != '\0' )
33 /* FIXME: For _IONBF, this recurses once per character - unacceptable. */
34 return fputs( s, stream );
45 #include <_PDCLIB_test.h>
53 char text[] = "SUCCESS testing fputs().";
54 TESTCASE( ( fh = fopen( "testfile", "w" ) ) != NULL );
55 TESTCASE( fputs( text, fh ) != EOF );
56 TESTCASE( fclose( fh ) == 0 );
57 TESTCASE( ( fh = fopen( "testfile", "r" ) ) != NULL );
58 TESTCASE( fread( buffer, 1, strlen( text ), fh ) == strlen( text ) );
59 TESTCASE( memcmp( buffer, text, strlen( text ) ) == 0 );
60 TESTCASE( fclose( fh ) == 0 );
61 TESTCASE( remove( "testfile" ) == 0 );