Mercurial > nand-ecoscentric
diff 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 |
line wrap: on
line diff
--- a/packages/language/c/libc/current/src/stdio/input/fgetc.cxx +++ b/packages/language/c/libc/current/src/stdio/input/fgetc.cxx @@ -77,14 +77,14 @@ externC int err = real_stream->read( &c, 1, &bytes_read ); - // FIXME: Why do we need this? - if (!err && !bytes_read) // if no err, but nothing to read, try again - { - real_stream->refill_read_buffer(); - err = real_stream->read( &c, 1, &bytes_read ); + // Why do we need this? Because the buffer might be empty. + if (!err && !bytes_read) { // if no err, but nothing to read, try again + err = real_stream->refill_read_buffer(); + if ( !err ) + err = real_stream->read( &c, 1, &bytes_read ); } // if - CYG_ASSERT( 1 == bytes_read, "Didn't read 1 byte!" ); + CYG_ASSERT( (ENOERR != err) || (1 == bytes_read), "Didn't read 1 byte!" ); if (err) {
