mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
[BZ #5998]
2008-04-09 Ulrich Drepper <drepper@redhat.com> [BZ #5998] * libio/iofwrite.c (_IO_fwrite): Return correct count if flushing in line-buffered stream failed. * libio/iofwrite_u.c (fwrite_unlocked): Likewise.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2008-04-09 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
[BZ #5998]
|
||||||
|
* libio/iofwrite.c (_IO_fwrite): Return correct count if flushing
|
||||||
|
in line-buffered stream failed.
|
||||||
|
* libio/iofwrite_u.c (fwrite_unlocked): Likewise.
|
||||||
|
|
||||||
2008-04-08 Ulrich Drepper <drepper@redhat.com>
|
2008-04-08 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
[BZ #6024]
|
[BZ #6024]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2002, 2003
|
/* Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2008
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -44,7 +44,11 @@ _IO_fwrite (buf, size, count, fp)
|
|||||||
if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1)
|
if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1)
|
||||||
written = _IO_sputn (fp, (const char *) buf, request);
|
written = _IO_sputn (fp, (const char *) buf, request);
|
||||||
_IO_release_lock (fp);
|
_IO_release_lock (fp);
|
||||||
if (written == request)
|
/* We have written all of the input in case the return value indicates
|
||||||
|
this or EOF is returned. The latter is a special case where we
|
||||||
|
simply did not manage to flush the buffer. But the data is in the
|
||||||
|
buffer and therefore written as far as fwrite is concerned. */
|
||||||
|
if (written == request || written == EOF)
|
||||||
return count;
|
return count;
|
||||||
else
|
else
|
||||||
return written / size;
|
return written / size;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1993, 1996-2000, 2002 Free Software Foundation, Inc.
|
/* Copyright (C) 1993, 1996-2000, 2002, 2008 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -45,7 +45,11 @@ fwrite_unlocked (buf, size, count, fp)
|
|||||||
if (_IO_fwide (fp, -1) == -1)
|
if (_IO_fwide (fp, -1) == -1)
|
||||||
{
|
{
|
||||||
written = _IO_sputn (fp, (const char *) buf, request);
|
written = _IO_sputn (fp, (const char *) buf, request);
|
||||||
if (written == request)
|
/* We have written all of the input in case the return value indicates
|
||||||
|
this or EOF is returned. The latter is a special case where we
|
||||||
|
simply did not manage to flush the buffer. But the data is in the
|
||||||
|
buffer and therefore written as far as fwrite is concerned. */
|
||||||
|
if (written == request || written == EOF)
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user