mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-01 02:34:55 +00:00
freading has an undefined value after repositioning a read-write stream.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2007-04-29 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* lib/freading.h: Improve comments.
|
||||
* lib/fwriting.h: Likewise.
|
||||
* tests/test-freading.c (main): Don't check freading immediately after
|
||||
repositioning. Needed for glibc.
|
||||
|
||||
2007-04-29 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* lib/freading.c (freading): Trivial simplification.
|
||||
|
||||
+6
-4
@@ -24,10 +24,12 @@
|
||||
writing and there is no current read operation (such as fputc).
|
||||
|
||||
freading and fwriting will never both be true. If STREAM supports
|
||||
both reads and writes, then both freading and fwriting might be
|
||||
false when the stream is first opened, after repositioning (such as
|
||||
fseek, fsetpos, or rewind), after read encounters EOF, or after
|
||||
fflush, depending on the underlying implementation.
|
||||
both reads and writes, then:
|
||||
- both freading and fwriting might be false when the stream is first
|
||||
opened, after read encounters EOF, or after fflush,
|
||||
- freading might be false or true and fwriting might be false
|
||||
after repositioning (such as fseek, fsetpos, or rewind),
|
||||
depending on the underlying implementation.
|
||||
|
||||
STREAM must not be wide-character oriented. */
|
||||
|
||||
|
||||
+6
-4
@@ -25,10 +25,12 @@
|
||||
as fputc).
|
||||
|
||||
freading and fwriting will never both be true. If STREAM supports
|
||||
both reads and writes, then both freading and fwriting might be
|
||||
false when the stream is first opened, after repositioning (such as
|
||||
fseek, fsetpos, or rewind), after read encounters EOF, or after
|
||||
fflush, depending on the underlying implementation.
|
||||
both reads and writes, then:
|
||||
- both freading and fwriting might be false when the stream is first
|
||||
opened, after read encounters EOF, or after fflush,
|
||||
- freading might be false or true and fwriting might be false
|
||||
after repositioning (such as fseek, fsetpos, or rewind),
|
||||
depending on the underlying implementation.
|
||||
|
||||
STREAM must not be wide-character oriented. */
|
||||
|
||||
|
||||
@@ -97,7 +97,9 @@ main ()
|
||||
ASSERT (!freading (fp));
|
||||
if (fseek (fp, 0, SEEK_END))
|
||||
goto skip;
|
||||
ASSERT (!freading (fp));
|
||||
/* freading (fp) is undefined here, because on some implementations (e.g.
|
||||
glibc) fseek causes a buffer to be read.
|
||||
fwriting (fp) is undefined as well. */
|
||||
if (fclose (fp))
|
||||
goto skip;
|
||||
|
||||
@@ -135,7 +137,9 @@ main ()
|
||||
ASSERT (!freading (fp));
|
||||
if (fseek (fp, 0, SEEK_END))
|
||||
goto skip;
|
||||
ASSERT (!freading (fp));
|
||||
/* freading (fp) is undefined here, because on some implementations (e.g.
|
||||
glibc) fseek causes a buffer to be read.
|
||||
fwriting (fp) is undefined as well. */
|
||||
if (fclose (fp))
|
||||
goto skip;
|
||||
|
||||
|
||||
@@ -97,7 +97,9 @@ main ()
|
||||
ASSERT (fwriting (fp));
|
||||
if (fseek (fp, 0, SEEK_END))
|
||||
goto skip;
|
||||
/* fwriting (fp) is undefined here, but freading (fp) is false. */
|
||||
/* freading (fp) is undefined here, because on some implementations (e.g.
|
||||
glibc) fseek causes a buffer to be read.
|
||||
fwriting (fp) is undefined as well. */
|
||||
if (fclose (fp))
|
||||
goto skip;
|
||||
|
||||
@@ -135,7 +137,9 @@ main ()
|
||||
ASSERT (fwriting (fp));
|
||||
if (fseek (fp, 0, SEEK_END))
|
||||
goto skip;
|
||||
/* fwriting (fp) is undefined here, but freading (fp) is false. */
|
||||
/* freading (fp) is undefined here, because on some implementations (e.g.
|
||||
glibc) fseek causes a buffer to be read.
|
||||
fwriting (fp) is undefined as well. */
|
||||
if (fclose (fp))
|
||||
goto skip;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user