* contrib/hbbz2/core.c
* contrib/hbbz2/hbbz2.hbp
* moved bz_internal_error() definition to separate file to avoid
conflicts when more modules need it and/or define their own.
* contrib/hbplist.txt
+ contrib/hbbz2io/bz2io.c
+ contrib/hbbz2io/hbbz2io.hbc
+ contrib/hbbz2io/hbbz2io.hbp
+ contrib/hbbz2io/hbbz2io.hbx
+ added new Harbour File IO driver for BZIP2 compressed streams.
It redirects files with "bz:" and "bz[1-9]:" prefixes and can be
used with hb_vf*() functions and transfer RDDs like SDF or DELIM,
i.e.
REQUEST HB_BZ2IO, HB_MEMIO
USE test
COPY TO mem:bz:test.txt.bz DELIMITED WITH TAB
FOR EACH cLine IN ;
hb_ATokens( hb_MemoRead( "mem:bz:test.txt.bz" ), .t. )
? cLine
NEXT
or:
REQUEST HB_GZIO, HB_BZ2IO
FUNCTION GZip2Bz2( cFile )
RETURN hb_vfCopy( "GZ:" + cFile + ".gz", "BZ:" + cFile + ".bz2" )
In summary BZ2IO works like GZIO but uses BZIP2 slower though more
efficient compression BZIP2 method instead of GZIP format.