comparison packages/language/c/libc/current/src/stdio/input/fgetc.cxx @ 92:08ffab08d2ee ecos-sw-2000-05-26

Merge from eCos master repository on 2000-05-26-07:47:03-BST
author jlarmour
date Fri, 26 May 2000 13:46:34 +0000
parents bf00f99aec69
children
comparison
equal deleted inserted replaced
91:86f6a8b98920 92:08ffab08d2ee
75 75
76 CYG_CHECK_DATA_PTR( stream, "stream is not a valid pointer" ); 76 CYG_CHECK_DATA_PTR( stream, "stream is not a valid pointer" );
77 77
78 err = real_stream->read( &c, 1, &bytes_read ); 78 err = real_stream->read( &c, 1, &bytes_read );
79 79
80 // FIXME: Why do we need this? 80 // Why do we need this? Because the buffer might be empty.
81 if (!err && !bytes_read) // if no err, but nothing to read, try again 81 if (!err && !bytes_read) { // if no err, but nothing to read, try again
82 { 82 err = real_stream->refill_read_buffer();
83 real_stream->refill_read_buffer(); 83 if ( !err )
84 err = real_stream->read( &c, 1, &bytes_read ); 84 err = real_stream->read( &c, 1, &bytes_read );
85 } // if 85 } // if
86 86
87 CYG_ASSERT( 1 == bytes_read, "Didn't read 1 byte!" ); 87 CYG_ASSERT( (ENOERR != err) || (1 == bytes_read), "Didn't read 1 byte!" );
88 88
89 if (err) 89 if (err)
90 { 90 {
91 real_stream->set_error( err ); 91 real_stream->set_error( err );
92 errno = err; 92 errno = err;