The error string is looked up in an array, but because zlib
error codes are negative, the error's string was always "f".
---

Two quick notes:

- zlib-tests: QUALIFIED-WITH used because compression.zlib.ffi also has
  a word "compress"

- zlib: make sure to flip the sign after "dup" so that the error code
  stays negative


 basis/compression/zlib/zlib-tests.factor |    5 ++++-
 basis/compression/zlib/zlib.factor       |    4 +++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/basis/compression/zlib/zlib-tests.factor 
b/basis/compression/zlib/zlib-tests.factor
index 1baeba7..b9bc502 100644
--- a/basis/compression/zlib/zlib-tests.factor
+++ b/basis/compression/zlib/zlib-tests.factor
@@ -1,9 +1,12 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel tools.test compression.zlib classes ;
+USING: accessors kernel tools.test compression.zlib classes ;
+QUALIFIED-WITH: compression.zlib.ffi ffi
 IN: compression.zlib.tests
 
 : compress-me ( -- byte-array ) B{ 1 2 3 4 5 } ;
 
 [ t ] [ compress-me [ compress uncompress ] keep = ] unit-test
 [ t ] [ compress-me compress compressed instance? ] unit-test
+
+[ ffi:Z_DATA_ERROR zlib-error-message ] [ string>> "data error" = ] 
must-fail-with
diff --git a/basis/compression/zlib/zlib.factor 
b/basis/compression/zlib/zlib.factor
index 7818173..83c3e4e 100644
--- a/basis/compression/zlib/zlib.factor
+++ b/basis/compression/zlib/zlib.factor
@@ -19,7 +19,9 @@ ERROR: zlib-failed n string ;
     dup compression.zlib.ffi:Z_ERRNO = [
         drop errno "native libc error"
     ] [
-        dup {
+        dup
+        -1 * ! zlib error codes are negative
+        {
             "no error" "libc_error"
             "stream error" "data error"
             "memory error" "buffer error" "zlib version error"
-- 
1.6.5



------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to