[BZ #394]
authorUlrich Drepper <drepper@redhat.com>
Fri, 23 Sep 2005 16:36:09 +0000 (16:36 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 23 Sep 2005 16:36:09 +0000 (16:36 +0000)
2005-09-23  Ulrich Drepper  <drepper@redhat.com>
[BZ #394]
* libio/fmemopen.c (fmemopen_write): Return 0 instead of -1 if
nothing can be written.
* libio/iofopncook.c (_IO_cookie_write): If something went wrong,
set error bit.

ChangeLog
libio/fmemopen.c
libio/iofopncook.c

index 7eb5f79..01dd44d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-09-23  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #394]
+       * libio/fmemopen.c (fmemopen_write): Return 0 instead of -1 if
+       nothing can be written.
+       * libio/iofopncook.c (_IO_cookie_write): If something went wrong,
+       set error bit.
+
 2005-09-22  Ulrich Drepper  <drepper@redhat.com>
 
        [BZ #281]
index 7c8769a..b847f62 100644 (file)
@@ -127,7 +127,7 @@ fmemopen_write (void *cookie, const char *b, size_t s)
       if ((size_t) (c->pos + addnullc) == c->size)
        {
          __set_errno (ENOSPC);
-         return -1;
+         return 0;
        }
       s = c->size - c->pos - addnullc;
     }
index 9c5503d..976ff50 100644 (file)
@@ -64,9 +64,16 @@ _IO_cookie_write (fp, buf, size)
   struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp;
 
   if (cfile->__io_functions.write == NULL)
-    return -1;
+    {
+      fp->_flags |= _IO_ERR_SEEN;
+      return 0;
+    }
+
+  _IO_ssize_t n = cfile->__io_functions.write (cfile->__cookie, buf, size);
+  if (n < size)
+    fp->_flags |= _IO_ERR_SEEN;
 
-  return cfile->__io_functions.write (cfile->__cookie, buf, size);
+  return n;
 }
 
 static _IO_off64_t