1
0
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:
Bruno Haible
2007-04-29 08:38:22 +00:00
parent 2efbc429c5
commit 17fecfc4d6
5 changed files with 31 additions and 12 deletions
+7
View File
@@ -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
View File
@@ -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
View File
@@ -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. */
+6 -2
View File
@@ -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;
+6 -2
View File
@@ -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;