From b85d26759adc03cf92b3f3ffd04297409b6b7837 Mon Sep 17 00:00:00 2001 From: Alec Berryman Date: Mon, 28 Dec 2009 20:05:09 -0600 Subject: [PATCH] Fix zlib-error-message to include human-readable version The error string is looked up in an array, but because zlib error codes are negative, the error's string was always "f". --- 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 1baeba73d9..b9bc502d46 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 7818173498..83c3e4ebb3 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"