Decompressing bzip2

stunaep via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Apr 2 19:03:29 PDT 2016


I am trying to use the bzip2 bindings that are available on 
code.dlang.org/packages, but I am having a really hard time using 
it due to the pointers. It needs to be an array once it's 
decompressed.

Here is what I have:
>>import std.stdio;
>>import bzlib;
>>
>>void main(string[] args)
>>{
>>
>>    File f = File("./test.bz2");
>>    ubyte[] data = new ubyte[f.size];
>>   f.rawRead(data);
>>    writeln(data);
>>
>>    ubyte* output;
>>    uint avail_out;
>>    bz_stream* stream = new bz_stream();
>>    stream.avail_out = avail_out;
>>    stream.next_out = output;
>>
>>    int init_error = BZ2_bzDecompressInit(stream, 0, 0);
>>    int bzipresult = BZ2_bzDecompress(stream);
>>
>>    stream.avail_in = cast(uint) data.length;
>>    stream.next_in = cast(ubyte*) data;
>>
>>    bzipresult = BZ2_bzDecompress(stream);
>>    int read = stream.total_out_lo32;
>>    BZ2_bzDecompressEnd(stream);
>>    delete stream;
>>    writeln(output);
>>}

It's not working at all so any help would be very much 
appreciated.



More information about the Digitalmars-d-learn mailing list