I have the following code, adapted from pasbzip.pas (bzip2 example) uses ...bzip2..
const BufferSize = 4096; var infile, outfile: Tbufstream; decoder: Tbzip2_decode_stream; a: array[1..BufferSize] of byte; readsize: cardinal; Status: boolean; begin Status := False; result:=false; ... try infile.init(SourceFile, stopenread, 4096); outfile.init(TargetFile, stcreate, 4096); decoder.init(@infile); if decoder.status <> stok then begin ... repeat readsize := BufferSize; decoder.Read(a, readsize); Dec(readsize, decoder.short); outfile.Write(a, readsize); until decoder.status <> 0; end; infile.done; outfile.done; ... Code bombs at decoder.Read(a, readsize). readsize=0 according to debugger. readsize=cardinal; according to help "an unsigned 32-bit integer". However, http://wiki.lazarus.freepascal.org/Multiplatform_Programming_Guide#32.2F64_bit seems to imply Cardinal can vary between 32 bit and 64 bit. Is that the culprit or am I doing anyth else wrong? Thanks, Reinier _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal