This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
[PATCH 2/6] Consistently return -1 and set lasterr instead in io_stream derived classes
- From: Jon TURNEY <jon dot turney at dronecode dot org dot uk>
- To: cygwin-apps at cygwin dot com
- Cc: Jon TURNEY <jon dot turney at dronecode dot org dot uk>
- Date: Fri, 8 Apr 2011 15:43:48 +0100
- Subject: [PATCH 2/6] Consistently return -1 and set lasterr instead in io_stream derived classes
- References: <4D9492BD.6020103@redhat.com> <1302273832-432-1-git-send-email-jon.turney@dronecode.org.uk>
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