This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 2/6] Consistently return -1 and set lasterr instead in io_stream derived classes


2011-04-08  Jon TURNEY  <jon.turney@dronecode.org.uk>

	* compress_bz.cc (read, peek): Consistently return -1 and set lasterr
	on an error.
	* compress_gz.cc (read, write, peek): Ditto.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
---
 compress_bz.cc |   12 +++++++++---
 compress_gz.cc |   20 ++++++++++++++++----
 2 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/compress_bz.cc b/compress_bz.cc
index 866a1ff..f45f434 100644
--- a/compress_bz.cc
+++ b/compress_bz.cc
@@ -57,7 +57,10 @@ ssize_t
 compress_bz::read (void *buffer, size_t len)
 {
   if (!initialisedOk || writing)
-    return EBADF;
+    {
+      lasterr = EBADF;
+      return -1;
+    }
   if (endReached)
     return 0;
   if (len == 0)
@@ -143,10 +146,13 @@ ssize_t compress_bz::peek (void *buffer, size_t len)
       lasterr = EBADF;
       return -1;
     }
-  
+
   /* can only peek 512 bytes */
   if (len > 512)
-    return ENOMEM;
+    {
+      lasterr = ENOMEM;
+      return -1;
+    }
 
   if (len > peeklen)
     {
diff --git a/compress_gz.cc b/compress_gz.cc
index cff772e..7686adf 100644
--- a/compress_gz.cc
+++ b/compress_gz.cc
@@ -231,7 +231,10 @@ compress_gz::read (void *buffer, size_t len)
   Byte *next_out;		/* == stream.next_out but not forced far (for MSDOS) */
 
   if (mode != 'r')
-    return Z_STREAM_ERROR;
+    {
+      z_err =  Z_STREAM_ERROR;
+      return -1;
+    }
 
   if (z_err == Z_DATA_ERROR || z_err == Z_ERRNO)
     return -1;
@@ -336,7 +339,10 @@ ssize_t
 compress_gz::write (const void *buffer, size_t len)
 {
   if (mode != 'w')
-    return Z_STREAM_ERROR;
+    {
+      z_err = Z_STREAM_ERROR;
+      return -1;
+    }
 
   stream.next_in = (Bytef *) buffer;
   stream.avail_in = len;
@@ -368,10 +374,16 @@ ssize_t
 compress_gz::peek (void *buffer, size_t len)
 {
   if (mode != 'r')
-    return Z_STREAM_ERROR;
+    {
+      z_err = Z_STREAM_ERROR;
+      return -1;
+    }
   /* can only peek 512 bytes */
   if (len > 512)
-    return ENOMEM;
+    {
+      z_err = ENOMEM;
+      return -1;
+    }
 
   if (len > peeklen)
     {
-- 
1.7.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]