summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Rinaldo <toddr@cpan.org>2020-09-15 09:37:28 -0500
committerℕicolas ℝ <nicolas@atoomic.org>2020-09-15 10:14:31 -0600
commit6fec3df196aaacdde5c2dce1817cd0bf08dd949c (patch)
treebaff0cc22e2dac00c495389712211d6f5ea39580
parent51638bdfa9deb059bb769a031ead709f191a3065 (diff)
downloadperl-6fec3df196aaacdde5c2dce1817cd0bf08dd949c.tar.gz
Update Compress-Raw-Zlib to CPAN version 2.096
[DELTA] 2.096 31 July 2020 * No changes 2.095 19 July 2020 * No changes 2.094 13 July 2020 * Issue with Append mode & SvOOK https://github.com/pmqs/Compress-Raw-Zlib/issues/3 80ee0524012f46c5984c2d57649af0b07f82c750
-rwxr-xr-xPorting/Maintainers.pl2
-rw-r--r--cpan/Compress-Raw-Zlib/Zlib.xs351
-rw-r--r--cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm6
-rw-r--r--cpan/Compress-Raw-Zlib/t/02zlib.t526
4 files changed, 493 insertions, 392 deletions
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 95b6da34ed..94f3653273 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -211,7 +211,7 @@ use File::Glob qw(:case);
},
'Compress::Raw::Zlib' => {
- 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.093.tar.gz',
+ 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.096.tar.gz',
'FILES' => q[cpan/Compress-Raw-Zlib],
'EXCLUDED' => [
qr{^examples/},
diff --git a/cpan/Compress-Raw-Zlib/Zlib.xs b/cpan/Compress-Raw-Zlib/Zlib.xs
index 496b876791..085078de65 100644
--- a/cpan/Compress-Raw-Zlib/Zlib.xs
+++ b/cpan/Compress-Raw-Zlib/Zlib.xs
@@ -9,9 +9,9 @@
*
*/
-/* Parts of this code are based on the files gzio.c and gzappend.c from
+/* Parts of this code are based on the files gzio.c and gzappend.c from
* the standard zlib source distribution. Below are the copyright statements
- * from each.
+ * from each.
*/
/* gzio.c -- IO on .gz files
@@ -31,7 +31,7 @@
#include "perl.h"
#include "XSUB.h"
-#include "zlib.h"
+#include "zlib.h"
/* zlib prior to 1.06 doesn't know about z_off_t */
#ifndef z_off_t
@@ -39,7 +39,7 @@
#endif
#if ! defined(ZLIB_VERNUM) || ZLIB_VERNUM < 0x1200
-# define NEED_DUMMY_BYTE_AT_END
+# define NEED_DUMMY_BYTE_AT_END
#endif
#if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1210
@@ -64,7 +64,7 @@
#endif
#if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1252
-/*
+/*
Use Z_SOLO to build source means need own malloc/free
*/
# define AT_LEAST_ZLIB_1_2_5_2
@@ -133,7 +133,7 @@ typedef struct di_stream {
uLong crc32 ;
uLong adler32 ;
z_stream stream;
- uLong bufsize;
+ uLong bufsize;
SV * dictionary ;
uLong dict_adler ;
int last_error ;
@@ -169,7 +169,7 @@ typedef struct di_stream {
uLong lastBlockOffset ;
unsigned char window_lastByte ;
-
+
#endif
} di_stream;
@@ -190,7 +190,7 @@ typedef di_stream * Compress__Raw__Zlib__inflateScanStream ;
#if defined(AMIGA) || defined(AMIGAOS) || defined(__amigaos4__)
# define OS_CODE 0x01
#endif
-
+
#if defined(VAXC) || defined(VMS)
# define OS_CODE 0x02
#endif
@@ -198,15 +198,15 @@ typedef di_stream * Compress__Raw__Zlib__inflateScanStream ;
#if 0 /* VM/CMS */
# define OS_CODE 0x04
#endif
-
+
#if defined(ATARI) || defined(atarist)
# define OS_CODE 0x05
#endif
-
+
#ifdef OS2
# define OS_CODE 0x06
#endif
-
+
#if defined(MACOS) || defined(TARGET_OS_MAC)
# define OS_CODE 0x07
#endif
@@ -214,11 +214,11 @@ typedef di_stream * Compress__Raw__Zlib__inflateScanStream ;
#if 0 /* Z-System */
# define OS_CODE 0x08
#endif
-
+
#if 0 /* CP/M */
# define OS_CODE 0x09
#endif
-
+
#ifdef TOPS20
# define OS_CODE 0x0a
#endif
@@ -226,24 +226,24 @@ typedef di_stream * Compress__Raw__Zlib__inflateScanStream ;
#ifdef WIN32 /* Window 95 & Windows NT */
# define OS_CODE 0x0b
#endif
-
+
#if 0 /* QDOS */
# define OS_CODE 0x0c
#endif
-
+
#if 0 /* Acorn RISCOS */
# define OS_CODE 0x0d
#endif
-
+
#if 0 /* ??? */
# define OS_CODE 0x0e
#endif
-
+
#ifdef __50SERIES /* Prime/PRIMOS */
# define OS_CODE 0x0F
#endif
-
-/* Default to UNIX */
+
+/* Default to UNIX */
#ifndef OS_CODE
# define OS_CODE 0x03 /* assume Unix */
#endif
@@ -273,7 +273,7 @@ static const char my_z_errmsg[][32] = {
sv_setpv(var, ((err) ? GetErrorString(err) : "")) ; \
SvNOK_on(var);
-
+
#if defined(__SYMBIAN32__)
# define NO_WRITEABLE_DATA
#endif
@@ -300,13 +300,13 @@ int error_no ;
{
dTHX;
char * errstr ;
-
+
if (error_no == Z_ERRNO) {
errstr = Strerror(errno) ;
}
else
/* errstr = gzerror(fil, &error_no) ; */
- errstr = (char*) my_z_errmsg[2 - error_no];
+ errstr = (char*) my_z_errmsg[2 - error_no];
return errstr ;
}
@@ -324,7 +324,7 @@ int error_no ;
/* return the greatest common divisor of a and b using Euclid's algorithm,
modified to be fast when one argument much greater than the other, and
coded to avoid unnecessary swapping */
-static unsigned
+static unsigned
#ifdef CAN_PROTOTYPE
gcd(unsigned a, unsigned b)
#else
@@ -352,7 +352,7 @@ gcd(a, b)
}
/* rotate list[0..len-1] left by rot positions, in place */
-static void
+static void
#ifdef CAN_PROTOTYPE
rotate(unsigned char *list, unsigned len, unsigned rot)
#else
@@ -515,7 +515,7 @@ void my_zcfree (voidpf opaque, voidpf ptr)
{
PERL_UNUSED_VAR(opaque);
safefree(ptr);
- return;
+ return;
}
#endif
@@ -556,14 +556,14 @@ PostInitStream(s, flags, bufsize, windowBits)
s->last_error = 0 ;
s->flags = flags ;
s->zip_mode = (windowBits < 0) ;
- if (flags & FLAG_CRC32)
+ if (flags & FLAG_CRC32)
s->crc32 = crcInitial ;
- if (flags & FLAG_ADLER32)
+ if (flags & FLAG_ADLER32)
s->adler32 = adlerInitial ;
}
-static SV*
+static SV*
#ifdef CAN_PROTOTYPE
deRef(SV * sv, const char * string)
#else
@@ -608,7 +608,7 @@ char * string ;
dTHX;
bool wipe = 0 ;
STRLEN na;
-
+
SvGETMAGIC(sv);
wipe = ! SvOK(sv) ;
@@ -654,11 +654,11 @@ flushToBuffer(di_stream* s, int flush)
strm->next_in = NULL;
strm->avail_in = 0;
-
+
uLong total_output = 0;
uLong have = 0;
- do
+ do
{
if (output)
output = (unsigned char *)saferealloc(output, total_output + s->bufsize);
@@ -683,7 +683,7 @@ flushToBuffer(di_stream* s, int flush)
} while (strm->avail_out == 0);
s->deflateParams_out_buffer = output;
- s->deflateParams_out_length = total_output;
+ s->deflateParams_out_length = total_output;
return Z_OK;
}
@@ -703,9 +703,9 @@ flushParams(di_stream* s)
strm->next_in = NULL;
strm->avail_in = 0;
-
- do
+
+ do
{
if (output)
output = (unsigned char *)saferealloc(output, total_output + s->bufsize);
@@ -719,7 +719,7 @@ flushParams(di_stream* s)
/* fprintf(stderr, "deflateParams %d %s %lu\n", ret,
GetErrorString(ret), s->bufsize - strm->avail_out); */
- if (ret == Z_STREAM_ERROR)
+ if (ret == Z_STREAM_ERROR)
break;
have = s->bufsize - strm->avail_out;
@@ -730,10 +730,10 @@ flushParams(di_stream* s)
if(ret == Z_STREAM_ERROR)
safefree(output);
- else
+ else
{
s->deflateParams_out_buffer = output;
- s->deflateParams_out_length = total_output;
+ s->deflateParams_out_length = total_output;
}
return ret;
@@ -753,7 +753,7 @@ BOOT:
/* Check this version of zlib is == 1 */
if (zlibVersion()[0] != '1')
croak("Compress::Raw::Zlib needs zlib version 1.x\n") ;
-
+
{
/* Create the $os_code scalar */
SV * os_code_sv = perl_get_sv("Compress::Raw::Zlib::gzip_os_code", GV_ADDMULTI) ;
@@ -801,10 +801,10 @@ Zip_adler32(buf, adler=adlerInitial)
INIT:
/* If the buffer is a reference, dereference it */
sv = deRef(sv, "adler32") ;
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(sv) && !sv_utf8_downgrade(sv, 1))
croak("Wide character in Compress::Raw::Zlib::adler32");
-#endif
+#endif
buf = (Byte*)SvPVbyte(sv, len) ;
if (items < 2)
@@ -815,7 +815,7 @@ Zip_adler32(buf, adler=adlerInitial)
adler = adlerInitial;
OUTPUT:
RETVAL
-
+
#define Zip_crc32(buf, crc, offset) crc32(crc, buf+offset, (uInt)len-offset)
uLong
@@ -823,15 +823,15 @@ Zip_crc32(buf, crc=crcInitial, offset=0)
uLong crc = NO_INIT
STRLEN len = NO_INIT
Bytef * buf = NO_INIT
- STRLEN offset
+ STRLEN offset
SV * sv = ST(0) ;
INIT:
/* If the buffer is a reference, dereference it */
sv = deRef(sv, "crc32") ;
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(sv) && !sv_utf8_downgrade(sv, 1))
croak("Wide character in Compress::Raw::Zlib::crc32");
-#endif
+#endif
buf = (Byte*)SvPVbyte(sv, len) ;
if (offset > len)
@@ -843,12 +843,12 @@ Zip_crc32(buf, crc=crcInitial, offset=0)
crc = SvUV(ST(1)) ;
else
crc = crcInitial;
-
+
uLong
crc32_combine(crc1, crc2, len2)
- uLong crc1
- uLong crc2
- z_off_t len2
+ uLong crc1
+ uLong crc2
+ z_off_t len2
CODE:
#ifndef AT_LEAST_ZLIB_1_2_2_1
crc1 = crc1; crc2 = crc2 ; len2 = len2; /* Silence -Wall */
@@ -862,9 +862,9 @@ crc32_combine(crc1, crc2, len2)
uLong
adler32_combine(adler1, adler2, len2)
- uLong adler1
- uLong adler2
- z_off_t len2
+ uLong adler1
+ uLong adler2
+ z_off_t len2
CODE:
#ifndef AT_LEAST_ZLIB_1_2_2_1
adler1 = adler1; adler2 = adler2 ; len2 = len2; /* Silence -Wall */
@@ -892,8 +892,8 @@ _deflateInit(flags,level, method, windowBits, memLevel, strategy, bufsize, dicti
int err ;
deflateStream s ;
- if (trace)
- warn("in _deflateInit(level=%d, method=%d, windowBits=%d, memLevel=%d, strategy=%d, bufsize=%ld dictionary=%p)\n",
+ if (trace)
+ warn("in _deflateInit(level=%d, method=%d, windowBits=%d, memLevel=%d, strategy=%d, bufsize=%ld dictionary=%p)\n",
level, method, windowBits, memLevel, strategy, bufsize, dictionary) ;
if ((s = InitStream() )) {
@@ -903,7 +903,7 @@ _deflateInit(flags,level, method, windowBits, memLevel, strategy, bufsize, dicti
s->MemLevel = memLevel;
s->Strategy = strategy;
- err = deflateInit2(&(s->stream), level,
+ err = deflateInit2(&(s->stream), level,
method, windowBits, memLevel, strategy);
if (trace) {
@@ -914,12 +914,12 @@ _deflateInit(flags,level, method, windowBits, memLevel, strategy, bufsize, dicti
/* Check if a dictionary has been specified */
SvGETMAGIC(dictionary);
if (err == Z_OK && SvPOK(dictionary) && SvCUR(dictionary)) {
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(dictionary) && !sv_utf8_downgrade(dictionary, 1))
croak("Wide character in Compress::Raw::Zlib::Deflate::new dicrionary parameter");
-#endif
+#endif
err = deflateSetDictionary(&(s->stream), (const Bytef*) SvPVX(dictionary), SvCUR(dictionary)) ;
- if (trace)
+ if (trace)
warn("deflateSetDictionary returned %d\n", err);
s->dict_adler = s->stream.adler ;
}
@@ -930,13 +930,13 @@ _deflateInit(flags,level, method, windowBits, memLevel, strategy, bufsize, dicti
}
else
PostInitStream(s, flags, bufsize, windowBits) ;
-
+
}
else
err = Z_MEM_ERROR ;
{
- SV* obj = sv_setref_pv(sv_newmortal(),
+ SV* obj = sv_setref_pv(sv_newmortal(),
"Compress::Raw::Zlib::deflateStream", (void*)s);
XPUSHs(obj);
}
@@ -955,7 +955,7 @@ _inflateInit(flags, windowBits, bufsize, dictionary)
ALIAS:
_inflateScanInit = 1
PPCODE:
-
+
int err = Z_OK ;
inflateStream s ;
#ifndef MAGIC_APPEND
@@ -980,7 +980,7 @@ _inflateInit(flags, windowBits, bufsize, dictionary)
if (s->WindowBits < 0) {
STRLEN dlen;
const Bytef* b = (const Bytef*)SvPVbyte(dictionary, dlen);
- err = inflateSetDictionary(&(s->stream),
+ err = inflateSetDictionary(&(s->stream),
b, dlen);
if (err != Z_OK) {
Safefree(s) ;
@@ -1006,9 +1006,9 @@ _inflateInit(flags, windowBits, bufsize, dictionary)
err = Z_MEM_ERROR ;
{
- SV* obj = sv_setref_pv(sv_newmortal(),
- ix == 1
- ? "Compress::Raw::Zlib::inflateScanStream"
+ SV* obj = sv_setref_pv(sv_newmortal(),
+ ix == 1
+ ? "Compress::Raw::Zlib::inflateScanStream"
: "Compress::Raw::Zlib::inflateStream",
(void*)s);
XPUSHs(obj);
@@ -1018,7 +1018,7 @@ _inflateInit(flags, windowBits, bufsize, dictionary)
setDUALstatus(sv, err);
XPUSHs(sv) ;
}
-
+
MODULE = Compress::Raw::Zlib PACKAGE = Compress::Raw::Zlib::deflateStream
@@ -1039,11 +1039,11 @@ deflateReset(s)
OUTPUT:
RETVAL
-DualType
+DualType
deflate (s, buf, output)
Compress::Raw::Zlib::deflateStream s
SV * buf
- SV * output
+ SV * output
uInt cur_length = NO_INIT
uInt increment = NO_INIT
uInt prefix = NO_INIT
@@ -1055,15 +1055,15 @@ deflate (s, buf, output)
/* If the input buffer is a reference, dereference it */
buf = deRef(buf, "deflate") ;
-
+
/* initialise the input buffer */
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
croak("Wide character in Compress::Raw::Zlib::Deflate::deflate input parameter");
-#endif
+#endif
s->stream.next_in = (Bytef*)SvPV_nomg(buf, origlen) ;
s->stream.avail_in = origlen;
-
+
if (s->flags & FLAG_CRC32)
s->crc32 = crc32(s->crc32, s->stream.next_in, s->stream.avail_in) ;
@@ -1072,15 +1072,16 @@ deflate (s, buf, output)
/* and retrieve the output buffer */
output = deRef_l(output, "deflate") ;
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
croak("Wide character in Compress::Raw::Zlib::Deflate::deflate output parameter");
-#endif
+#endif
- if((s->flags & FLAG_APPEND) != FLAG_APPEND) {
- SvCUR_set(output, 0);
- /* sv_setpvn(output, "", 0); */
- }
+ if((s->flags & FLAG_APPEND) == FLAG_APPEND) {
+ SvOOK_off(output);
+ } else {
+ SvCUR_set(output, 0);
+ }
prefix = cur_length = SvCUR(output) ;
s->stream.next_out = (Bytef*) SvPVX(output) + cur_length;
increment = SvLEN(output) - cur_length;
@@ -1104,8 +1105,8 @@ deflate (s, buf, output)
s->stream.next_out = (Bytef*) Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ;
s->stream.next_out += cur_length;
}
-
- Copy(s->deflateParams_out_buffer, s->stream.next_out, plen, Bytef) ;
+
+ Copy(s->deflateParams_out_buffer, s->stream.next_out, plen, Bytef) ;
cur_length += plen;
SvCUR_set(output, cur_length);
s->stream.next_out += plen ;
@@ -1131,7 +1132,7 @@ deflate (s, buf, output)
}
if (trace) {
- printf("DEFLATE Avail In %d, Out %d\n", s->stream.avail_in, s->stream.avail_out);
+ printf("DEFLATE Avail In %d, Out %d\n", s->stream.avail_in, s->stream.avail_out);
DispStream(s, "BEFORE");
/* Perl_sv_dump(output); */
}
@@ -1142,17 +1143,17 @@ deflate (s, buf, output)
int done = increment - s->stream.avail_out ;
printf("std DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL,
GetErrorString(RETVAL), s->stream.avail_in,
-s->stream.avail_out, done);
+s->stream.avail_out, done);
}
*/
-
+
if (trace) {
printf("DEFLATE returned %d %s, avail in %d, out %d\n", RETVAL,
- GetErrorString(RETVAL), s->stream.avail_in, s->stream.avail_out);
+ GetErrorString(RETVAL), s->stream.avail_in, s->stream.avail_out);
DispStream(s, "AFTER");
}
- if (RETVAL != Z_OK)
+ if (RETVAL != Z_OK)
break;
}
@@ -1167,7 +1168,7 @@ s->stream.avail_out, done);
}
OUTPUT:
RETVAL
-
+
void
DESTROY(s)
@@ -1188,28 +1189,29 @@ DESTROY(s)
DualType
flush(s, output, f=Z_FINISH)
Compress::Raw::Zlib::deflateStream s
- SV * output
+ SV * output
int f
uInt cur_length = NO_INIT
uInt increment = NO_INIT
uInt prefix = NO_INIT
uLong bufinc = NO_INIT
- uLong availableout = NO_INIT
+ uLong availableout = NO_INIT
CODE:
bufinc = s->bufsize;
-
-
-
+
+
+
/* retrieve the output buffer */
output = deRef_l(output, "flush") ;
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
croak("Wide character in Compress::Raw::Zlib::Deflate::flush input parameter");
-#endif
- if((s->flags & FLAG_APPEND) != FLAG_APPEND) {
- SvCUR_set(output, 0);
- /* sv_setpvn(output, "", 0); */
- }
+#endif
+ if((s->flags & FLAG_APPEND) == FLAG_APPEND) {
+ SvOOK_off(output);
+ } else {
+ SvCUR_set(output, 0);
+ }
prefix = cur_length = SvCUR(output) ;
s->stream.next_out = (Bytef*) SvPVX(output) + cur_length;
increment = SvLEN(output) - cur_length;
@@ -1228,13 +1230,13 @@ flush(s, output, f=Z_FINISH)
uLong plen = s->deflateParams_out_length ;
/* printf("Copy %lu bytes saved data\n", plen); */
if (s->stream.avail_out < plen) {
- /* printf("GROW from %d to %lu\n", s->stream.avail_out,
+ /* printf("GROW from %d to %lu\n", s->stream.avail_out,
SvLEN(output) + plen - s->stream.avail_out); */
s->stream.next_out = (Bytef*) Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ;
s->stream.next_out += cur_length;
}
-
- Copy(s->deflateParams_out_buffer, s->stream.next_out, plen, Bytef) ;
+
+ Copy(s->deflateParams_out_buffer, s->stream.next_out, plen, Bytef) ;
cur_length += plen;
SvCUR_set(output, cur_length);
s->stream.next_out += plen ;
@@ -1248,7 +1250,7 @@ flush(s, output, f=Z_FINISH)
#endif
for (;;) {
- if (s->stream.avail_out == 0) {
+ if (s->stream.avail_out == 0) {
/* consumed all the available output, so extend it */
s->stream.next_out = (Bytef*) Sv_Grow(output, SvLEN(output) + bufinc) ;
cur_length += increment ;
@@ -1257,11 +1259,11 @@ flush(s, output, f=Z_FINISH)
s->stream.avail_out = increment;
bufinc *= 2 ;
}
-
+
availableout = s->stream.avail_out ;
-
+
if (trace) {
- printf("flush (%d) DEFLATE Avail In %d, Out %d\n", f, s->stream.avail_in, s->stream.avail_out);
+ printf("flush (%d) DEFLATE Avail In %d, Out %d\n", f, s->stream.avail_in, s->stream.avail_out);
DispStream(s, "BEFORE");
/* Perl_sv_dump(output); */
}
@@ -1275,29 +1277,29 @@ flush(s, output, f=Z_FINISH)
s->stream.avail_out, done);
}
*/
-
+
if (trace) {
printf("flush DEFLATE returned %d '%s', avail in %d, out %d\n", RETVAL,
- GetErrorString(RETVAL), s->stream.avail_in, s->stream.avail_out);
+ GetErrorString(RETVAL), s->stream.avail_in, s->stream.avail_out);
DispStream(s, "AFTER");
}
/* Ignore the second of two consecutive flushes: */
- if (availableout == s->stream.avail_out && RETVAL == Z_BUF_ERROR)
- RETVAL = Z_OK;
-
+ if (availableout == s->stream.avail_out && RETVAL == Z_BUF_ERROR)
+ RETVAL = Z_OK;
+
/* deflate has finished flushing only when it hasn't used up
- * all the available space in the output buffer:
+ * all the available space in the output buffer:
*/
if (s->stream.avail_out != 0 || RETVAL != Z_OK )
break;
}
-
+
RETVAL = (RETVAL == Z_STREAM_END ? Z_OK : RETVAL) ;
s->last_error = RETVAL ;
s->compressedBytes += cur_length + increment - prefix - s->stream.avail_out ;
-
+
if (RETVAL == Z_OK) {
SvPOK_only(output);
SvCUR_set(output, cur_length + increment - s->stream.avail_out) ;
@@ -1316,7 +1318,7 @@ _deflateParams(s, flags, level, strategy, bufsize)
uLong bufsize
bool changed = FALSE;
CODE:
- /* printf("_deflateParams(Flags %d Level %d Strategy %d Bufsize %d)\n", flags, level, strategy, bufsize);
+ /* printf("_deflateParams(Flags %d Level %d Strategy %d Bufsize %d)\n", flags, level, strategy, bufsize);
printf("Before -- Level %d, Strategy %d, Bufsize %d\n", s->Level, s->Strategy, s->bufsize); */
if (flags & 1 && level != s->Level) {
s->Level = level ;
@@ -1327,17 +1329,17 @@ _deflateParams(s, flags, level, strategy, bufsize)
changed = TRUE;
}
if (flags & 4)
- s->bufsize = bufsize;
+ s->bufsize = bufsize;
if (changed) {
#ifdef SETP_BYTE
- s->stream.avail_in = 0;
+ s->stream.avail_in = 0;
s->stream.next_out = &(s->deflateParams_out_byte) ;
s->stream.avail_out = 1;
RETVAL = deflateParams(&(s->stream), s->Level, s->Strategy);
- s->deflateParams_out_valid =
+ s->deflateParams_out_valid =
(RETVAL == Z_OK && s->stream.avail_out == 0) ;
#else
- /* printf("Level %d Strategy %d, Prev Len %d\n",
+ /* printf("Level %d Strategy %d, Prev Len %d\n",
s->Level, s->Strategy, s->deflateParams_out_length); */
RETVAL = flushParams(s);
#endif
@@ -1446,7 +1448,7 @@ msg(s)
OUTPUT:
RETVAL
-int
+int
deflateTune(s, good_length, max_lazy, nice_length, max_chain)
Compress::Raw::Zlib::deflateStream s
int good_length
@@ -1463,7 +1465,7 @@ deflateTune(s, good_length, max_lazy, nice_length, max_chain)
#endif
OUTPUT:
RETVAL
-
+
MODULE = Compress::Raw::Zlib PACKAGE = Compress::Raw::Zlib::inflateStream
@@ -1483,23 +1485,23 @@ inflateReset(s)
OUTPUT:
RETVAL
-DualType
+DualType
inflate (s, buf, output, eof=FALSE)
Compress::Raw::Zlib::inflateStream s
SV * buf
- SV * output
- bool eof
+ SV * output
+ bool eof
uInt cur_length = 0;
uInt prefix_length = 0;
int increment = 0;
uLong bufinc = NO_INIT
STRLEN na = NO_INIT ;
PREINIT:
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
bool out_utf8 = FALSE;
-#endif
+#endif
STRLEN origlen;
- CODE:
+ CODE:
bufinc = s->bufsize;
/* If the buffer is a reference, dereference it */
buf = deRef(buf, "inflate") ;
@@ -1509,40 +1511,42 @@ inflate (s, buf, output, eof=FALSE)
croak("Compress::Raw::Zlib::Inflate::inflate input parameter cannot be read-only when ConsumeInput is specified");
SvPV_force(buf, na);
}
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
croak("Wide character in Compress::Raw::Zlib::Inflate::inflate input parameter");
-#endif
-
+#endif
+
/* initialise the input buffer */
s->stream.next_in = (Bytef*)SvPV_nomg(buf, origlen) ;
s->stream.avail_in = origlen ;
-
+
/* and retrieve the output buffer */
output = deRef_l(output, "inflate") ;
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(output))
out_utf8 = TRUE ;
if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
croak("Wide character in Compress::Raw::Zlib::Inflate::inflate output parameter");
-#endif
- if((s->flags & FLAG_APPEND) != FLAG_APPEND) {
- SvCUR_set(output, 0);
- }
-
+#endif
+ if((s->flags & FLAG_APPEND) == FLAG_APPEND) {
+ SvOOK_off(output);
+ } else {
+ SvCUR_set(output, 0);
+ }
+
/* Assume no output buffer - the code below will update if there is any available */
s->stream.avail_out = 0;
if (SvLEN(output)) {
prefix_length = cur_length = SvCUR(output) ;
-
+
if (s->flags & FLAG_LIMIT_OUTPUT && SvLEN(output) - cur_length - 1 < bufinc)
{
Sv_Grow(output, bufinc + cur_length + 1) ;
}
-
- /* Only setup the stream output pointers if there is spare
+
+ /* Only setup the stream output pointers if there is spare
capacity in the outout SV
*/
if (SvLEN(output) > cur_length + 1)
@@ -1552,10 +1556,10 @@ inflate (s, buf, output, eof=FALSE)
s->stream.avail_out = increment;
}
}
-
+
s->bytesInflated = 0;
-
+
RETVAL = Z_OK;
while (RETVAL == Z_OK) {
@@ -1566,35 +1570,35 @@ inflate (s, buf, output, eof=FALSE)
s->stream.next_out += cur_length ;
increment = bufinc ;
s->stream.avail_out = increment;
- bufinc *= 2 ;
+ bufinc *= 2 ;
}
/* printf("INFLATE Availl In %d, Out %d\n", s->stream.avail_in,
- s->stream.avail_out);
+ s->stream.avail_out);
DispStream(s, "BEFORE");
Perl_sv_dump(output); */
RETVAL = inflate(&(s->stream), Z_SYNC_FLUSH);
/* printf("INFLATE returned %d %s, avail in %d, out %d\n", RETVAL,
GetErrorString(RETVAL), s->stream.avail_in, s->stream.avail_out); */
-
+
if (RETVAL == Z_NEED_DICT && s->dictionary) {
STRLEN dlen;
const Bytef* b = (const Bytef*)SvPV(s->dictionary, dlen) ;
s->dict_adler = s->stream.adler ;
- RETVAL = inflateSetDictionary(&(s->stream),
+ RETVAL = inflateSetDictionary(&(s->stream),
b, dlen);
if (RETVAL == Z_OK)
continue;
}
-
- if (s->flags & FLAG_LIMIT_OUTPUT &&
+
+ if (s->flags & FLAG_LIMIT_OUTPUT &&
(RETVAL == Z_OK || RETVAL == Z_BUF_ERROR )) {
if (s->stream.avail_out == 0)
RETVAL = Z_BUF_ERROR;
break;
}
- if (s->flags & FLAG_LIMIT_OUTPUT &&
+ if (s->flags & FLAG_LIMIT_OUTPUT &&
(RETVAL == Z_OK || RETVAL == Z_BUF_ERROR ))
break;
@@ -1611,7 +1615,7 @@ Perl_sv_dump(output); */
}
}
}
-#ifdef NEED_DUMMY_BYTE_AT_END
+#ifdef NEED_DUMMY_BYTE_AT_END
if (eof && RETVAL == Z_OK && s->flags & FLAG_LIMIT_OUTPUT == 0) {
Bytef* nextIn = s->stream.next_in;
uInt availIn = s->stream.avail_in;
@@ -1633,7 +1637,7 @@ Perl_sv_dump(output); */
#else
PERL_UNUSED_VAR(eof);
#endif
-
+
s->last_error = RETVAL ;
if (RETVAL == Z_OK || RETVAL == Z_STREAM_END || RETVAL == Z_BUF_ERROR || RETVAL == Z_DATA_ERROR) {
unsigned in ;
@@ -1645,20 +1649,20 @@ Perl_sv_dump(output); */
SvPOK_only(output);
SvCUR_set(output, prefix_length + s->bytesInflated) ;
*SvEND(output) = '\0';
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (out_utf8)
sv_utf8_upgrade(output);
-#endif
+#endif
SvSETMAGIC(output);
if (s->flags & FLAG_CRC32 )
- s->crc32 = crc32(s->crc32,
- (const Bytef*)SvPVX(output)+prefix_length,
+ s->crc32 = crc32(s->crc32,
+ (const Bytef*)SvPVX(output)+prefix_length,
SvCUR(output)-prefix_length) ;
- if (s->flags & FLAG_ADLER32)
- s->adler32 = adler32(s->adler32,
- (const Bytef*)SvPVX(output)+prefix_length,
+ if (s->flags & FLAG_ADLER32)
+ s->adler32 = adler32(s->adler32,
+ (const Bytef*)SvPVX(output)+prefix_length,
SvCUR(output)-prefix_length) ;
/* fix the input buffer */
@@ -1666,7 +1670,7 @@ Perl_sv_dump(output); */
in = s->stream.avail_in ;
SvCUR_set(buf, in) ;
if (in)
- Move(s->stream.next_in, SvPVX(buf), in, char) ;
+ Move(s->stream.next_in, SvPVX(buf), in, char) ;
*SvEND(buf) = '\0';
SvSETMAGIC(buf);
}
@@ -1700,23 +1704,23 @@ uncompressedBytes(s)
RETVAL
-DualType
+DualType
inflateSync (s, buf)
Compress::Raw::Zlib::inflateStream s
SV * buf
CODE:
-
+
/* If the buffer is a reference, dereference it */
buf = deRef(buf, "inflateSync") ;
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
croak("Wide character in Compress::Raw::Zlib::Inflate::inflateSync");
-#endif
-
+#endif
+
/* initialise the input buffer */
s->stream.next_in = (Bytef*)SvPV_force_nomg_nolen(buf) ;
s->stream.avail_in = SvCUR(buf) ;
-
+
/* inflateSync doesn't create any output */
s->stream.next_out = (Bytef*) NULL;
s->stream.avail_out = 0;
@@ -1729,7 +1733,7 @@ inflateSync (s, buf)
unsigned in = s->stream.avail_in ;
SvCUR_set(buf, in) ;
if (in)
- Move(s->stream.next_in, SvPVX(buf), in, char) ;
+ Move(s->stream.next_in, SvPVX(buf), in, char) ;
*SvEND(buf) = '\0';
SvSETMAGIC(buf);
}
@@ -1867,7 +1871,7 @@ inflateReset(s)
OUTPUT:
RETVAL
-DualType
+DualType
scan(s, buf, out=NULL, eof=FALSE)
Compress::Raw::Zlib::inflateScanStream s
SV * buf
@@ -1884,15 +1888,15 @@ scan(s, buf, out=NULL, eof=FALSE)
croak("scan needs zlib 1.2.1 or better");
#else
buf = deRef(buf, "inflateScan") ;
-#ifdef UTF8_AVAILABLE
+#ifdef UTF8_AVAILABLE
if (DO_UTF8(buf) && !sv_utf8_downgrade(buf, 1))
croak("Wide character in Compress::Raw::Zlib::InflateScan::scan input parameter");
-#endif
+#endif
/* initialise the input buffer */
s->stream.next_in = (Bytef*)SvPV_force_nomg_nolen(buf) ;
s->stream.avail_in = SvCUR(buf) ;
start_len = s->stream.avail_in ;
- s->bytesInflated = 0 ;
+ s->bytesInflated = 0 ;
do
{
if (s->stream.avail_in == 0) {
@@ -1917,11 +1921,11 @@ scan(s, buf, out=NULL, eof=FALSE)
break ;
if (s->flags & FLAG_CRC32 )
- s->crc32 = crc32(s->crc32, s->window + s->window_have,
+ s->crc32 = crc32(s->crc32, s->window + s->window_have,
WINDOW_SIZE - s->window_have - s->stream.avail_out);
- if (s->flags & FLAG_ADLER32)
- s->adler32 = adler32(s->adler32, s->window + s->window_have,
+ if (s->flags & FLAG_ADLER32)
+ s->adler32 = adler32(s->adler32, s->window + s->window_have,
WINDOW_SIZE - s->window_have - s->stream.avail_out);
s->uncompressedBytes =
@@ -1974,7 +1978,7 @@ scan(s, buf, out=NULL, eof=FALSE)
unsigned in = s->stream.avail_in ;
SvCUR_set(buf, in) ;
if (in)
- Move(s->stream.next_in, SvPVX(buf), in, char) ;
+ Move(s->stream.next_in, SvPVX(buf), in, char) ;
*SvEND(buf) = '\0';
SvSETMAGIC(buf);
}
@@ -2098,7 +2102,7 @@ _createDeflateStream(inf_s, flags,level, method, windowBits, memLevel, strategy,
s->MemLevel = memLevel;
s->Strategy = strategy;
- err = deflateInit2(&(s->stream), level,
+ err = deflateInit2(&(s->stream), level,
method, windowBits, memLevel, strategy);
if (err == Z_OK) {
@@ -2126,7 +2130,7 @@ _createDeflateStream(inf_s, flags,level, method, windowBits, memLevel, strategy,
else
err = Z_MEM_ERROR ;
- XPUSHs(sv_setref_pv(sv_newmortal(),
+ XPUSHs(sv_setref_pv(sv_newmortal(),
"Compress::Raw::Zlib::deflateStream", (void*)s));
if (GIMME == G_ARRAY) {
SV * sv = sv_2mortal(newSViv(err)) ;
@@ -2160,4 +2164,3 @@ adler32(s)
RETVAL = s->adler32 ;
OUTPUT:
RETVAL
-
diff --git a/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm b/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
index cf7126b423..59cda238e2 100644
--- a/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
+++ b/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
@@ -10,7 +10,7 @@ use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD, %DEFLATE_CONSTANTS, @DEFLATE_CONSTANTS);
-$VERSION = '2.093';
+$VERSION = '2.096';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -1559,7 +1559,7 @@ of I<Compress::Raw::Zlib>.
=head1 SUPPORT
-General feedback/questions/bug reports should be sent to
+General feedback/questions/bug reports should be sent to
L<https://github.com/pmqs/Compress-Raw-Zlib/issues> (preferred) or
L<https://rt.cpan.org/Public/Dist/Display.html?Name=Compress-Raw-Zlib>.
@@ -1596,7 +1596,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2019 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2020 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/cpan/Compress-Raw-Zlib/t/02zlib.t b/cpan/Compress-Raw-Zlib/t/02zlib.t
index d7cd513af1..64c894465f 100644
--- a/cpan/Compress-Raw-Zlib/t/02zlib.t
+++ b/cpan/Compress-Raw-Zlib/t/02zlib.t
@@ -14,8 +14,8 @@ use Test::More ;
use CompTestUtils;
-BEGIN
-{
+BEGIN
+{
# use Test::NoWarnings, if available
my $extra = 0 ;
$extra = 1
@@ -24,13 +24,13 @@ BEGIN
my $count = 0 ;
if ($] < 5.005) {
- $count = 237 ;
+ $count = 245 ;
}
elsif ($] >= 5.006) {
- $count = 325 ;
+ $count = 349 ;
}
else {
- $count = 280 ;
+ $count = 304 ;
}
plan tests => $count + $extra;
@@ -50,7 +50,7 @@ my $len = length $hello ;
# Check zlib_version and ZLIB_VERSION are the same.
SKIP: {
- skip "TEST_SKIP_VERSION_CHECK is set", 1
+ skip "TEST_SKIP_VERSION_CHECK is set", 1
if $ENV{TEST_SKIP_VERSION_CHECK};
is Compress::Raw::Zlib::zlib_version, ZLIB_VERSION,
"ZLIB_VERSION matches Compress::Raw::Zlib::zlib_version" ;
@@ -104,12 +104,12 @@ SKIP: {
my $hello = "I am a HAL 9000 computer" ;
my @hello = split('', $hello) ;
- my ($err, $x, $X, $status);
-
+ my ($err, $x, $X, $status);
+
ok( ($x, $err) = new Compress::Raw::Zlib::Deflate ( -Bufsize => 1 ), "Create deflate object" );
ok $x, "Compress::Raw::Zlib::Deflate ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
ok ! defined $x->msg() ;
is $x->total_in(), 0, "total_in() == 0" ;
is $x->total_out(), 0, "total_out() == 0" ;
@@ -120,26 +120,26 @@ SKIP: {
{
$status = $x->deflate($_, $X) ;
last unless $status == Z_OK ;
-
+
$Answer .= $X ;
}
-
+
cmp_ok $status, '==', Z_OK, "deflate returned Z_OK" ;
-
+
cmp_ok $x->flush($X), '==', Z_OK, "flush returned Z_OK" ;
$Answer .= $X ;
-
+
ok ! defined $x->msg() ;
is $x->total_in(), length $hello, "total_in ok" ;
is $x->total_out(), length $Answer, "total_out ok" ;
-
+
my @Answer = split('', $Answer) ;
-
+
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate( {-Bufsize => 1}) );
ok $k, "Compress::Raw::Zlib::Inflate ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
ok ! defined $k->msg(), "No error messages" ;
is $k->total_in(), 0, "total_in() == 0" ;
is $k->total_out(), 0, "total_out() == 0" ;
@@ -151,9 +151,9 @@ SKIP: {
$status = $k->inflate($_, $Z) ;
$GOT .= $Z ;
last if $status == Z_STREAM_END or $status != Z_OK ;
-
+
}
-
+
cmp_ok $status, '==', Z_STREAM_END, "Got Z_STREAM_END" ;
is $GOT, $hello, "uncompressed data matches ok" ;
ok ! defined $k->msg(), "No error messages" ;
@@ -168,34 +168,34 @@ SKIP: {
# ==============================
my $hello = 6529 ;
-
+
ok my ($x, $err) = new Compress::Raw::Zlib::Deflate ( -Bufsize => 1, -AppendOutput => 1 ) ;
ok $x ;
cmp_ok $err, '==', Z_OK ;
-
+
my $status;
my $Answer = '';
-
+
cmp_ok $x->deflate($hello, $Answer), '==', Z_OK ;
-
+
cmp_ok $x->flush($Answer), '==', Z_OK ;
-
+
my @Answer = split('', $Answer) ;
-
+
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate( {-Bufsize => 1, -AppendOutput =>1}) );
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
#my $GOT = '';
my $GOT ;
foreach (@Answer)
{
$status = $k->inflate($_, $GOT) ;
last if $status == Z_STREAM_END or $status != Z_OK ;
-
+
}
-
+
cmp_ok $status, '==', Z_STREAM_END ;
is $GOT, $hello ;
@@ -211,11 +211,11 @@ SKIP: {
my $hello = "I am a HAL 9000 computer" ;
my @hello = split('', $hello) ;
-
+
ok my ($x, $err) = new Compress::Raw::Zlib::Deflate ( {-Bufsize => 1, -AppendOutput =>1} ) ;
ok $x ;
cmp_ok $err, '==', Z_OK ;
-
+
my $status;
my $X;
foreach (@hello)
@@ -223,32 +223,32 @@ SKIP: {
$status = $x->deflate($_, $X) ;
last unless $status == Z_OK ;
}
-
+
cmp_ok $status, '==', Z_OK ;
-
+
cmp_ok $x->flush($X), '==', Z_OK ;
-
-
+
+
my @Answer = split('', $X) ;
-
+
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate( {-Bufsize => 1, -AppendOutput =>1}));
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
my $Z;
foreach (@Answer)
{
$status = $k->inflate($_, $Z) ;
last if $status == Z_STREAM_END or $status != Z_OK ;
-
+
}
-
+
cmp_ok $status, '==', Z_STREAM_END ;
is $Z, $hello ;
}
-
+
{
title "deflate/inflate - larger buffer";
@@ -258,34 +258,34 @@ SKIP: {
my $contents = '' ;
foreach (1 .. 50000)
{ $contents .= chr int rand 255 }
-
-
+
+
ok my ($x, $err) = new Compress::Raw::Zlib::Deflate() ;
ok $x ;
cmp_ok $err, '==', Z_OK ;
-
+
my (%X, $Y, %Z, $X, $Z);
#cmp_ok $x->deflate($contents, $X{key}), '==', Z_OK ;
cmp_ok $x->deflate($contents, $X), '==', Z_OK ;
-
+
#$Y = $X{key} ;
$Y = $X ;
-
-
+
+
#cmp_ok $x->flush($X{key}), '==', Z_OK ;
#$Y .= $X{key} ;
cmp_ok $x->flush($X), '==', Z_OK ;
$Y .= $X ;
-
-
-
+
+
+
my $keep = $Y ;
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate() );
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
#cmp_ok $k->inflate($Y, $Z{key}), '==', Z_STREAM_END ;
#ok $contents eq $Z{key} ;
cmp_ok $k->inflate($Y, $Z), '==', Z_STREAM_END ;
@@ -296,16 +296,16 @@ SKIP: {
ok (($k, $err) = new Compress::Raw::Zlib::Inflate(-AppendOutput => 1)) ;
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
- my $s ;
+
+ my $s ;
my $out ;
my @bits = split('', $keep) ;
foreach my $bit (@bits) {
$s = $k->inflate($bit, $out) ;
}
-
+
cmp_ok $s, '==', Z_STREAM_END ;
-
+
ok $contents eq $out ;
@@ -319,16 +319,16 @@ SKIP: {
my $dictionary = "hello" ;
ok my $x = new Compress::Raw::Zlib::Deflate({-Level => Z_BEST_COMPRESSION,
-Dictionary => $dictionary}) ;
-
+
my $dictID = $x->dict_adler() ;
my ($X, $Y, $Z);
cmp_ok $x->deflate($hello, $X), '==', Z_OK;
cmp_ok $x->flush($Y), '==', Z_OK;
$X .= $Y ;
-
+
ok my $k = new Compress::Raw::Zlib::Inflate(-Dictionary => $dictionary) ;
-
+
cmp_ok $k->inflate($X, $Z), '==', Z_STREAM_END;
is $k->dict_adler(), $dictID;
is $hello, $Z ;
@@ -338,18 +338,18 @@ SKIP: {
title 'inflate - check remaining buffer after Z_STREAM_END';
# and that ConsumeInput works.
# ===================================================
-
+
for my $consume ( 0 .. 1)
{
ok my $x = new Compress::Raw::Zlib::Deflate(-Level => Z_BEST_COMPRESSION ) ;
-
+
my ($X, $Y, $Z);
cmp_ok $x->deflate($hello, $X), '==', Z_OK;
cmp_ok $x->flush($Y), '==', Z_OK;
$X .= $Y ;
-
+
ok my $k = new Compress::Raw::Zlib::Inflate( -ConsumeInput => $consume) ;
-
+
my $first = substr($X, 0, 2) ;
my $remember_first = $first ;
my $last = substr($X, 2) ;
@@ -381,12 +381,12 @@ for my $consume ( 0 .. 1)
title 'Check - MAX_WBITS';
# =================
-
+
my $hello = "Test test test test test";
my @hello = split('', $hello) ;
-
- ok my ($x, $err) =
- new Compress::Raw::Zlib::Deflate ( -Bufsize => 1,
+
+ ok my ($x, $err) =
+ new Compress::Raw::Zlib::Deflate ( -Bufsize => 1,
-WindowBits => -MAX_WBITS(),
-AppendOutput => 1 ) ;
ok $x ;
@@ -399,42 +399,42 @@ for my $consume ( 0 .. 1)
$status = $x->deflate($_, $Answer) ;
last unless $status == Z_OK ;
}
-
+
cmp_ok $status, '==', Z_OK ;
-
+
cmp_ok $x->flush($Answer), '==', Z_OK ;
-
+
my @Answer = split('', $Answer) ;
- # Undocumented corner -- extra byte needed to get inflate to return
- # Z_STREAM_END when done.
- push @Answer, " " ;
-
+ # Undocumented corner -- extra byte needed to get inflate to return
+ # Z_STREAM_END when done.
+ push @Answer, " " ;
+
my $k;
- ok(($k, $err) = new Compress::Raw::Zlib::Inflate(
- {-Bufsize => 1,
+ ok(($k, $err) = new Compress::Raw::Zlib::Inflate(
+ {-Bufsize => 1,
-AppendOutput =>1,
-WindowBits => -MAX_WBITS()})) ;
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
my $GOT = '';
foreach (@Answer)
{
$status = $k->inflate($_, $GOT) ;
last if $status == Z_STREAM_END or $status != Z_OK ;
-
+
}
-
+
cmp_ok $status, '==', Z_STREAM_END ;
is $GOT, $hello ;
-
+
}
SKIP:
{
title 'inflateSync';
- skip "inflateSync needs zlib 1.2.1 or better, you have $Zlib_ver", 22
+ skip "inflateSync needs zlib 1.2.1 or better, you have $Zlib_ver", 22
if ZLIB_VERNUM() < 0x1210 ;
# create a deflate stream with flush points
@@ -443,31 +443,31 @@ SKIP:
my $goodbye = "Will I dream?" x 2010;
my ($x, $err, $answer, $X, $Z, $status);
my $Answer ;
-
+
#use Devel::Peek ;
ok(($x, $err) = new Compress::Raw::Zlib::Deflate(AppendOutput => 1)) ;
ok $x ;
cmp_ok $err, '==', Z_OK ;
-
+
cmp_ok $x->deflate($hello, $Answer), '==', Z_OK;
-
+
# create a flush point
cmp_ok $x->flush($Answer, Z_FULL_FLUSH), '==', Z_OK ;
-
+
my $len1 = length $Answer;
-
+
cmp_ok $x->deflate($goodbye, $Answer), '==', Z_OK;
-
+
cmp_ok $x->flush($Answer), '==', Z_OK ;
my $len2 = length($Answer) - $len1 ;
-
+
my ($first, @Answer) = split('', $Answer) ;
-
+
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate()) ;
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
cmp_ok $k->inflate($first, $Z), '==', Z_OK;
# skip to the first flush point.
@@ -479,7 +479,7 @@ SKIP:
}
cmp_ok $status, '==', Z_OK;
-
+
my $GOT = '';
foreach (@Answer)
{
@@ -489,7 +489,7 @@ SKIP:
# print "x $status\n";
last if $status == Z_STREAM_END or $status != Z_OK ;
}
-
+
cmp_ok $status, '==', Z_DATA_ERROR ;
is $GOT, $goodbye ;
@@ -499,21 +499,21 @@ SKIP:
$rest =~ s/^(.)//;
my $initial = $1 ;
-
+
ok(($k, $err) = new Compress::Raw::Zlib::Inflate(ConsumeInput => 0)) ;
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
cmp_ok $k->inflate($initial, $Z), '==', Z_OK;
# Skip to the flush point
$status = $k->inflateSync($rest);
cmp_ok $status, '==', Z_OK
or diag "status '$status'\nlength rest is " . length($rest) . "\n" ;
-
+
is length($rest), $len2, "expected compressed output";
-
- $GOT = '';
+
+ $GOT = '';
cmp_ok $k->inflate($rest, $GOT), '==', Z_DATA_ERROR, "inflate returns Z_DATA_ERROR";
is $GOT, $goodbye ;
}
@@ -524,7 +524,7 @@ SKIP:
my $hello = "I am a HAL 9000 computer" x 2001 ;
my $goodbye = "Will I dream?" x 2010;
my ($x, $input, $err, $answer, $X, $status, $Answer);
-
+
ok(($x, $err) = new Compress::Raw::Zlib::Deflate(
-AppendOutput => 1,
-Level => Z_DEFAULT_COMPRESSION,
@@ -534,11 +534,11 @@ SKIP:
ok $x->get_Level() == Z_DEFAULT_COMPRESSION;
ok $x->get_Strategy() == Z_DEFAULT_STRATEGY;
-
+
$status = $x->deflate($hello, $Answer) ;
cmp_ok $status, '==', Z_OK ;
$input .= $hello;
-
+
# error cases
eval { $x->deflateParams() };
like $@, mkErr('^Compress::Raw::Zlib::deflateParams needs Level and\/or Strategy');
@@ -551,54 +551,54 @@ SKIP:
is $x->get_Level(), Z_DEFAULT_COMPRESSION;
is $x->get_Strategy(), Z_DEFAULT_STRATEGY;
-
+
# change both Level & Strategy
$status = $x->deflateParams(-Level => Z_BEST_SPEED, -Strategy => Z_HUFFMAN_ONLY, -Bufsize => 1234) ;
cmp_ok $status, '==', Z_OK ;
-
+
is $x->get_Level(), Z_BEST_SPEED;
is $x->get_Strategy(), Z_HUFFMAN_ONLY;
-
- # change both Level & Strategy again without any calls to deflate
+
+ # change both Level & Strategy again without any calls to deflate
$status = $x->deflateParams(-Level => Z_DEFAULT_COMPRESSION, -Strategy => Z_DEFAULT_STRATEGY, -Bufsize => 1234) ;
cmp_ok $status, '==', Z_OK ;
-
+
is $x->get_Level(), Z_DEFAULT_COMPRESSION;
is $x->get_Strategy(), Z_DEFAULT_STRATEGY;
-
+
$status = $x->deflate($goodbye, $Answer) ;
cmp_ok $status, '==', Z_OK ;
$input .= $goodbye;
-
- # change only Level
+
+ # change only Level
$status = $x->deflateParams(-Level => Z_NO_COMPRESSION) ;
cmp_ok $status, '==', Z_OK ;
-
+
is $x->get_Level(), Z_NO_COMPRESSION;
is $x->get_Strategy(), Z_DEFAULT_STRATEGY;
-
+
$status = $x->deflate($goodbye, $Answer) ;
cmp_ok $status, '==', Z_OK ;
$input .= $goodbye;
-
+
# change only Strategy
$status = $x->deflateParams(-Strategy => Z_FILTERED) ;
cmp_ok $status, '==', Z_OK ;
-
+
is $x->get_Level(), Z_NO_COMPRESSION;
is $x->get_Strategy(), Z_FILTERED;
-
+
$status = $x->deflate($goodbye, $Answer) ;
cmp_ok $status, '==', Z_OK ;
$input .= $goodbye;
-
+
cmp_ok $x->flush($Answer), '==', Z_OK ;
-
+
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate()) ;
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
my $Z;
$status = $k->inflate($Answer, $Z) ;
@@ -611,8 +611,8 @@ SKIP:
title "ConsumeInput and a read-only buffer trapped" ;
ok my $k = new Compress::Raw::Zlib::Inflate(-ConsumeInput => 1) ;
-
- my $Z;
+
+ my $Z;
eval { $k->inflate("abc", $Z) ; };
like $@, mkErr("Compress::Raw::Zlib::Inflate::inflate input parameter cannot be read-only when ConsumeInput is specified");
@@ -628,22 +628,22 @@ foreach (1 .. 2)
foreach (1 .. 5000)
{ $contents .= chr int rand 255 }
ok my $x = new Compress::Raw::Zlib::Deflate(-AppendOutput => 1) ;
-
+
my $X ;
my $status = $x->deflate(substr($contents,0), $X);
cmp_ok $status, '==', Z_OK ;
-
+
cmp_ok $x->flush($X), '==', Z_OK ;
-
+
my $append = "Appended" ;
$X .= $append ;
-
+
ok my $k = new Compress::Raw::Zlib::Inflate(-AppendOutput => 1) ;
-
- my $Z;
+
+ my $Z;
my $keep = $X ;
$status = $k->inflate(substr($X, 0), $Z) ;
-
+
cmp_ok $status, '==', Z_STREAM_END ;
#print "status $status X [$X]\n" ;
is $contents, $Z ;
@@ -659,34 +659,34 @@ foreach (1 .. 2)
my $hello = "I am a HAL 9000 computer" ;
my @hello = split('', $hello) ;
- my ($err, $x, $X, $status);
-
+ my ($err, $x, $X, $status);
+
ok( ($x, $err) = new Compress::Raw::Zlib::Deflate ( -Bufsize => 1 ) );
ok $x ;
cmp_ok $err, '==', Z_OK ;
-
+
$X = "" ;
my $Answer = '';
foreach (@hello)
{
$status = $x->deflate($_, $X) ;
last unless $status == Z_OK ;
-
+
$Answer .= $X ;
}
-
+
cmp_ok $status, '==', Z_OK ;
-
+
cmp_ok $x->flush($X), '==', Z_OK ;
$Answer .= $X ;
-
+
my @Answer = split('', $Answer) ;
-
+
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate(-AppendOutput => 1) );
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
my $GOT ;
my $Z;
$Z = 1 ;#x 2000 ;
@@ -695,7 +695,7 @@ foreach (1 .. 2)
$status = $k->inflate($_, $GOT) ;
last if $status == Z_STREAM_END or $status != Z_OK ;
}
-
+
cmp_ok $status, '==', Z_STREAM_END ;
is $GOT, $hello ;
@@ -715,35 +715,134 @@ if ($] >= 5.005)
cmp_ok $x->deflate($data, $X), '==', Z_OK ;
cmp_ok $x->flush($X), '==', Z_OK ;
-
+
my $append = "Appended" ;
$X .= $append ;
my $keep = $X ;
-
+
ok my $k = new Compress::Raw::Zlib::Inflate ( -AppendOutput => 1,
-ConsumeInput => 1 ) ;
-
+
cmp_ok $k->inflate(substr($X, 0, -1), $Z), '==', Z_STREAM_END ; ;
-
+
ok $hello eq $Z ;
is $X, $append;
-
+
$X = $keep ;
$Z = '';
ok $k = new Compress::Raw::Zlib::Inflate ( -AppendOutput => 1,
-ConsumeInput => 0 ) ;
-
+
cmp_ok $k->inflate(substr($X, 0, -1), $Z), '==', Z_STREAM_END ; ;
#cmp_ok $k->inflate(substr($X, 0), $Z), '==', Z_STREAM_END ; ;
-
+
ok $hello eq $Z ;
is $X, $keep;
-
+
+}
+
+{
+ title 'RT#132734: test inflate append OOK output parameter';
+ # https://github.com/pmqs/Compress-Raw-Zlib/issues/3
+
+ my $hello = "I am a HAL 9000 computer" ;
+ my $data = $hello ;
+
+ my($X, $Z);
+
+ ok my $x = new Compress::Raw::Zlib::Deflate ( -AppendOutput => 1 );
+
+ cmp_ok $x->deflate($data, $X), '==', Z_OK ;
+
+ cmp_ok $x->flush($X), '==', Z_OK ;
+
+ ok my $k = new Compress::Raw::Zlib::Inflate ( -AppendOutput => 1,
+ -ConsumeInput => 1 ) ;
+ $Z = 'prev. ' ;
+ substr($Z, 0, 4, ''); # chop off first 4 characters using offset
+ cmp_ok $Z, 'eq', '. ' ;
+
+ # use Devel::Peek ; Dump($Z) ; # shows OOK flag
+
+ # if (1) { # workaround
+ # my $prev = $Z;
+ # undef $Z ;
+ # $Z = $prev ;
+ # }
+
+ cmp_ok $k->inflate($X, $Z), '==', Z_STREAM_END ;
+ # use Devel::Peek ; Dump($Z) ; # No OOK flag
+
+ cmp_ok $Z, 'eq', ". $hello" ;
+}
+
+
+{
+ title 'RT#132734: test deflate append OOK output parameter';
+ # https://github.com/pmqs/Compress-Raw-Zlib/issues/3
+
+ my $hello = "I am a HAL 9000 computer" ;
+ my $data = $hello ;
+
+ my($X, $Z);
+
+ $X = 'prev. ' ;
+ substr($X, 0, 6, ''); # chop off all characters using offset
+ cmp_ok $X, 'eq', '' ;
+
+ # use Devel::Peek ; Dump($X) ; # shows OOK flag
+
+ # if (1) { # workaround
+ # my $prev = $Z;
+ # undef $Z ;
+ # $Z = $prev ;
+ # }
+
+ ok my $x = new Compress::Raw::Zlib::Deflate ( -AppendOutput => 1 );
+
+ cmp_ok $x->deflate($data, $X), '==', Z_OK ;
+
+ cmp_ok $x->flush($X), '==', Z_OK ;
+
+ ok my $k = new Compress::Raw::Zlib::Inflate ( -AppendOutput => 1,
+ -ConsumeInput => 1 ) ;
+ cmp_ok $k->inflate($X, $Z), '==', Z_STREAM_END ;
+
+ is $Z, $hello ;
+}
+
+
+{
+ title 'RT#132734: test flush append OOK output parameter';
+ # https://github.com/pmqs/Compress-Raw-Zlib/issues/3
+
+ my $hello = "I am a HAL 9000 computer" ;
+ my $data = $hello ;
+
+ my($X, $Z);
+
+ my $F = 'prev. ' ;
+ substr($F, 0, 6, ''); # chop off all characters using offset
+ cmp_ok $F, 'eq', '' ;
+
+ # use Devel::Peek ; Dump($F) ; # shows OOK flag
+
+ ok my $x = new Compress::Raw::Zlib::Deflate ( -AppendOutput => 1 );
+
+ cmp_ok $x->deflate($data, $X), '==', Z_OK ;
+
+ cmp_ok $x->flush($F), '==', Z_OK ;
+
+ ok my $k = new Compress::Raw::Zlib::Inflate ( -AppendOutput => 1,
+ -ConsumeInput => 1 ) ;
+ cmp_ok $k->inflate($X . $F, $Z), '==', Z_STREAM_END ;
+
+ is $Z, $hello ;
}
SKIP:
{
- skip "InflateScan needs zlib 1.2.1 or better, you have $Zlib_ver", 1
+ skip "InflateScan needs zlib 1.2.1 or better, you have $Zlib_ver", 1
if ZLIB_VERNUM() < 0x1210 ;
# regression - check that resetLastBlockByte can cope with a NULL
@@ -758,44 +857,44 @@ SKIP:
title "gzip mode";
# ================
- skip "gzip mode needs zlib 1.2.1 or better, you have $Zlib_ver", 13
+ skip "gzip mode needs zlib 1.2.1 or better, you have $Zlib_ver", 13
if ZLIB_VERNUM() < 0x1210 ;
my $hello = "I am a HAL 9000 computer" ;
my @hello = split('', $hello) ;
- my ($err, $x, $X, $status);
-
- ok( ($x, $err) = new Compress::Raw::Zlib::Deflate (
+ my ($err, $x, $X, $status);
+
+ ok( ($x, $err) = new Compress::Raw::Zlib::Deflate (
WindowBits => WANT_GZIP ,
AppendOutput => 1
), "Create deflate object" );
ok $x, "Compress::Raw::Zlib::Deflate ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $x->deflate($hello, $X) ;
cmp_ok $status, '==', Z_OK, "deflate returned Z_OK" ;
-
+
cmp_ok $x->flush($X), '==', Z_OK, "flush returned Z_OK" ;
-
- my ($k, $GOT);
- ($k, $err) = new Compress::Raw::Zlib::Inflate(
+
+ my ($k, $GOT);
+ ($k, $err) = new Compress::Raw::Zlib::Inflate(
WindowBits => WANT_GZIP ,
ConsumeInput => 0 ,
AppendOutput => 1);
ok $k, "Compress::Raw::Zlib::Inflate WANT_GZIP ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $k->inflate($X, $GOT) ;
cmp_ok $status, '==', Z_STREAM_END, "Got Z_STREAM_END" ;
is $GOT, $hello, "uncompressed data matches ok" ;
$GOT = '';
- ($k, $err) = new Compress::Raw::Zlib::Inflate(
+ ($k, $err) = new Compress::Raw::Zlib::Inflate(
WindowBits => WANT_GZIP_OR_ZLIB ,
AppendOutput => 1);
ok $k, "Compress::Raw::Zlib::Inflate WANT_GZIP_OR_ZLIB ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $k->inflate($X, $GOT) ;
cmp_ok $status, '==', Z_STREAM_END, "Got Z_STREAM_END" ;
is $GOT, $hello, "uncompressed data matches ok" ;
@@ -810,42 +909,42 @@ SKIP:
# then read with WANT_GZIP_OR_ZLIB - thi swill work
# ================
- skip "gzip mode needs zlib 1.2.1 or better, you have $Zlib_ver", 12
+ skip "gzip mode needs zlib 1.2.1 or better, you have $Zlib_ver", 12
if ZLIB_VERNUM() < 0x1210 ;
my $hello = "I am a HAL 9000 computer" ;
- my ($err, $x, $X, $status);
-
- ok( ($x, $err) = new Compress::Raw::Zlib::Deflate (
+ my ($err, $x, $X, $status);
+
+ ok( ($x, $err) = new Compress::Raw::Zlib::Deflate (
WindowBits => WANT_GZIP ,
AppendOutput => 1
), "Create deflate object" );
ok $x, "Compress::Raw::Zlib::Deflate ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $x->deflate($hello, $X) ;
cmp_ok $status, '==', Z_OK, "deflate returned Z_OK" ;
-
+
cmp_ok $x->flush($X), '==', Z_OK, "flush returned Z_OK" ;
-
- my ($k, $GOT);
- ($k, $err) = new Compress::Raw::Zlib::Inflate(
+
+ my ($k, $GOT);
+ ($k, $err) = new Compress::Raw::Zlib::Inflate(
WindowBits => MAX_WBITS ,
ConsumeInput => 0 ,
AppendOutput => 1);
ok $k, "Compress::Raw::Zlib::Inflate WANT_GZIP ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $k->inflate($X, $GOT) ;
cmp_ok $status, '==', Z_DATA_ERROR, "Got Z_DATA_ERROR" ;
$GOT = '';
- ($k, $err) = new Compress::Raw::Zlib::Inflate(
+ ($k, $err) = new Compress::Raw::Zlib::Inflate(
WindowBits => WANT_GZIP_OR_ZLIB ,
AppendOutput => 1);
ok $k, "Compress::Raw::Zlib::Inflate WANT_GZIP_OR_ZLIB ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $k->inflate($X, $GOT) ;
cmp_ok $status, '==', Z_STREAM_END, "Got Z_STREAM_END" ;
is $GOT, $hello, "uncompressed data matches ok" ;
@@ -859,41 +958,41 @@ SKIP:
# then read with WANT_GZIP_OR_ZLIB - thi swill work
# ================
- skip "gzip mode needs zlib 1.2.1 or better, you have $Zlib_ver", 12
+ skip "gzip mode needs zlib 1.2.1 or better, you have $Zlib_ver", 12
if ZLIB_VERNUM() < 0x1210 ;
my $hello = "I am a HAL 9000 computer" ;
- my ($err, $x, $X, $status);
-
- ok( ($x, $err) = new Compress::Raw::Zlib::Deflate (
+ my ($err, $x, $X, $status);
+
+ ok( ($x, $err) = new Compress::Raw::Zlib::Deflate (
AppendOutput => 1
), "Create deflate object" );
ok $x, "Compress::Raw::Zlib::Deflate ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $x->deflate($hello, $X) ;
cmp_ok $status, '==', Z_OK, "deflate returned Z_OK" ;
-
+
cmp_ok $x->flush($X), '==', Z_OK, "flush returned Z_OK" ;
-
- my ($k, $GOT);
- ($k, $err) = new Compress::Raw::Zlib::Inflate(
+
+ my ($k, $GOT);
+ ($k, $err) = new Compress::Raw::Zlib::Inflate(
WindowBits => WANT_GZIP ,
ConsumeInput => 0 ,
AppendOutput => 1);
ok $k, "Compress::Raw::Zlib::Inflate WANT_GZIP ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $k->inflate($X, $GOT) ;
cmp_ok $status, '==', Z_DATA_ERROR, "Got Z_DATA_ERROR" ;
$GOT = '';
- ($k, $err) = new Compress::Raw::Zlib::Inflate(
+ ($k, $err) = new Compress::Raw::Zlib::Inflate(
WindowBits => WANT_GZIP_OR_ZLIB ,
AppendOutput => 1);
ok $k, "Compress::Raw::Zlib::Inflate WANT_GZIP_OR_ZLIB ok" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $k->inflate($X, $GOT) ;
cmp_ok $status, '==', Z_STREAM_END, "Got Z_STREAM_END" ;
is $GOT, $hello, "uncompressed data matches ok" ;
@@ -918,17 +1017,17 @@ SKIP:
title "repeated calls to flush after some compression";
my $hello = "I am a HAL 9000 computer" ;
- my ($err, $x, $X, $status);
-
+ my ($err, $x, $X, $status);
+
ok( ($x, $err) = new Compress::Raw::Zlib::Deflate ( ), "Create deflate object" );
isa_ok $x, "Compress::Raw::Zlib::deflateStream" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
+
$status = $x->deflate($hello, $X) ;
cmp_ok $status, '==', Z_OK, "deflate returned Z_OK" ;
-
- cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "flush returned Z_OK" ;
- cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "second flush returned Z_OK" ;
+
+ cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "flush returned Z_OK" ;
+ cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "second flush returned Z_OK" ;
is $X, "", "no output from second flush";
}
@@ -936,14 +1035,14 @@ SKIP:
title "repeated calls to flush - no compression";
my $hello = "I am a HAL 9000 computer" ;
- my ($err, $x, $X, $status);
-
+ my ($err, $x, $X, $status);
+
ok( ($x, $err) = new Compress::Raw::Zlib::Deflate ( ), "Create deflate object" );
isa_ok $x, "Compress::Raw::Zlib::deflateStream" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
- cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "flush returned Z_OK" ;
- cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "second flush returned Z_OK" ;
+
+ cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "flush returned Z_OK" ;
+ cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "second flush returned Z_OK" ;
is $X, "", "no output from second flush";
}
@@ -963,14 +1062,14 @@ if (0)
title "RT #122695: sync flush appending extra empty uncompressed block";
my $hello = "I am a HAL 9000 computer" ;
- my ($err, $x, $X, $status);
-
+ my ($err, $x, $X, $status);
+
ok( ($x, $err) = new Compress::Raw::Zlib::Deflate ( ), "Create deflate object" );
isa_ok $x, "Compress::Raw::Zlib::deflateStream" ;
cmp_ok $err, '==', Z_OK, "status is Z_OK" ;
-
- cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "flush returned Z_OK" ;
- cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "second flush returned Z_OK" ;
+
+ cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "flush returned Z_OK" ;
+ cmp_ok $x->flush($X, Z_SYNC_FLUSH), '==', Z_OK, "second flush returned Z_OK" ;
is $X, "", "no output from second flush";
}
@@ -982,36 +1081,36 @@ foreach (1 .. 2)
my $hello = "I am a HAL 9000 computer" ;
my @hello = split('', $hello) ;
- my ($err, $x, $X, $status);
-
+ my ($err, $x, $X, $status);
+
ok( ($x, $err) = new Compress::Raw::Zlib::Deflate ( -Bufsize => 1,
-AppendOutput => 1 ) );
ok $x ;
cmp_ok $err, '==', Z_OK ;
-
+
$X = "" ;
my $Answer = '';
foreach (@hello)
{
$status = $x->deflate($_, substr($Answer, length($Answer))) ;
last unless $status == Z_OK ;
-
+
}
-
+
cmp_ok $status, '==', Z_OK ;
-
+
cmp_ok $x->flush(substr($Answer, length($Answer))), '==', Z_OK ;
-
+
#cmp_ok length $Answer, ">", 0 ;
my @Answer = split('', $Answer) ;
-
-
+
+
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate(-AppendOutput => 1) );
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
my $GOT = '';
my $Z;
$Z = 1 ;#x 2000 ;
@@ -1020,7 +1119,7 @@ foreach (1 .. 2)
$status = $k->inflate($_, substr($GOT, length($GOT))) ;
last if $status == Z_STREAM_END or $status != Z_OK ;
}
-
+
cmp_ok $status, '==', Z_STREAM_END ;
is $GOT, $hello ;
@@ -1032,33 +1131,33 @@ foreach (1 .. 2)
my $hello = "I am a HAL 9000 computer" ;
my @hello = split('', $hello) ;
- my ($err, $x, $X, $status);
-
+ my ($err, $x, $X, $status);
+
ok( ($x, $err) = new Compress::Raw::Zlib::Deflate ( -Bufsize => 1,
-AppendOutput => 1 ) );
ok $x ;
cmp_ok $err, '==', Z_OK ;
-
+
$X = "" ;
my $Answer = '';
foreach (@hello)
{
$status = $x->deflate($_, substr($Answer, 0)) ;
last unless $status == Z_OK ;
-
+
}
-
+
cmp_ok $status, '==', Z_OK ;
-
+
cmp_ok $x->flush(substr($Answer, 0)), '==', Z_OK ;
-
+
my @Answer = split('', $Answer) ;
-
+
my $k;
ok(($k, $err) = new Compress::Raw::Zlib::Inflate(-AppendOutput => 1) );
ok $k ;
cmp_ok $err, '==', Z_OK ;
-
+
my $GOT = '';
my $Z;
$Z = 1 ;#x 2000 ;
@@ -1067,8 +1166,7 @@ foreach (1 .. 2)
$status = $k->inflate($_, substr($GOT, 0)) ;
last if $status == Z_STREAM_END or $status != Z_OK ;
}
-
+
cmp_ok $status, '==', Z_STREAM_END ;
is $GOT, $hello ;
}
-