Compress-Raw-Bzip2
view release on metacpan or search on metacpan
if (SvROK(sv)) {
sv = SvRV(sv) ;
SvGETMAGIC(sv);
wipe = ! SvOK(sv) ;
switch(SvTYPE(sv)) {
case SVt_PVAV:
case SVt_PVHV:
case SVt_PVCV:
croak("%s: buffer parameter is not a SCALAR reference", string);
default:
break;
}
if (SvROK(sv))
croak("%s: buffer parameter is a reference to a reference", string) ;
}
if (SvREADONLY(sv) && PL_curcop != &PL_compiling)
croak("%s: buffer parameter is read-only", string);
SvUPGRADE(sv, SVt_PV);
if (wipe)
sv_setpv(sv, "") ;
else
(void)SvPVbyte_force(sv, na) ;
return sv ;
}
#include "constants.h"
MODULE = Compress::Raw::Bzip2 PACKAGE = Compress::Raw::Bzip2 PREFIX = Zip_
REQUIRE: 1.924
PROTOTYPES: DISABLE
INCLUDE: constants.xs
BOOT:
/* Check this version of bzip2 is == 1 */
if (BZ2_bzlibVersion()[0] != '1')
croak(COMPRESS_CLASS " needs bzip2 version 1.x, you have %s\n", BZ2_bzlibVersion()) ;
MODULE = Compress::Raw::Bzip2 PACKAGE = Compress::Raw::Bzip2
#define bzlibversion() BZ2_bzlibVersion()
const char *
bzlibversion()
void
new(className, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0)
const char * className
int appendOut
int blockSize100k
int workfactor
int verbosity
PPCODE:
{
int err ;
deflateStream s ;
#if 0
/* if (trace) */
warn("in Compress::Raw::Bzip2::_new(items=%d,appendOut=%d, blockSize100k=%d, workfactor=%d, verbosity=%d\n",
items, appendOut, blockSize100k, workfactor, verbosity);
#endif
if ((s = InitStream() )) {
err = BZ2_bzCompressInit ( &(s->stream),
blockSize100k,
verbosity,
workfactor );
if (err != BZ_OK) {
Safefree(s) ;
s = NULL ;
}
else {
PostInitStream(s, appendOut ? FLAG_APPEND_OUTPUT :0) ;
}
}
else
err = BZ_MEM_ERROR ;
{
SV* obj = sv_setref_pv(sv_newmortal(), className, (void*)s);
XPUSHs(obj);
}
if(0)
{
SV* obj = sv_2mortal(newSViv(PTR2IV(s))) ;
XPUSHs(obj);
}
if (GIMME_V == G_ARRAY) {
SV * sv = sv_2mortal(newSViv(err)) ;
setDUALstatus(sv, err);
XPUSHs(sv) ;
}
}
MODULE = Compress::Raw::Bunzip2 PACKAGE = Compress::Raw::Bunzip2
void
new(className, appendOut=1 , consume=1, small=0, verbosity=0, limitOutput=0)
const char* className
int appendOut
int consume
int small
int verbosity
int limitOutput
PPCODE:
{
int err = BZ_OK ;
inflateStream s ;
#if 0
if (trace)
warn("in _inflateInit(windowBits=%d, bufsize=%lu, dictionary=%lu\n",
windowBits, bufsize, (unsigned long)SvCUR(dictionary)) ;
#endif
if ((s = InitStream() )) {
err = BZ2_bzDecompressInit (&(s->stream), verbosity, small);
if (err != BZ_OK) {
Safefree(s) ;
s = NULL ;
}
if (s) {
int flags = 0;
if (appendOut)
flags |= FLAG_APPEND_OUTPUT;
if (consume)
flags |= FLAG_CONSUME_INPUT;
if (limitOutput)
flags |= (FLAG_LIMIT_OUTPUT|FLAG_CONSUME_INPUT);
PostInitStream(s, flags) ;
}
}
else
err = BZ_MEM_ERROR ;
{
SV* obj = sv_setref_pv(sv_newmortal(), className, (void*)s);
XPUSHs(obj);
}
if (0)
{
SV* obj = sv_2mortal(newSViv(PTR2IV(s))) ;
XPUSHs(obj);
}
if (GIMME_V == G_ARRAY) {
SV * sv = sv_2mortal(newSViv(err)) ;
setDUALstatus(sv, err);
XPUSHs(sv) ;
}
}
MODULE = Compress::Raw::Bzip2 PACKAGE = Compress::Raw::Bzip2
void
DispStream(s, message=NULL)
Compress::Raw::Bzip2 s
const char * message
DualType
bzdeflate (s, buf, output)
Compress::Raw::Bzip2 s
SV * buf
SV * output
uInt cur_length = NO_INIT
( run in 0.798 second using v1.01-cache-2.11-cpan-71847e10f99 )