mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-23 08:29:35 +02:00
* skipheader option for decompression
git-svn-id: trunk@6442 -
This commit is contained in:
parent
6741866689
commit
56b380c79e
@ -81,7 +81,7 @@ type
|
||||
procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
|
||||
OutEstimate: Integer; var OutBuf: Pointer; var OutBytes: Integer);
|
||||
public
|
||||
constructor Create(ASource: TStream);
|
||||
constructor Create(ASource: TStream; ASkipHeader : Boolean = False);
|
||||
destructor Destroy; override;
|
||||
function Read(var Buffer; Count: Longint): Longint; override;
|
||||
function Write(const Buffer; Count: Longint): Longint; override;
|
||||
@ -306,11 +306,14 @@ end;
|
||||
|
||||
// TDecompressionStream
|
||||
|
||||
constructor TDecompressionStream.Create(ASource: TStream);
|
||||
constructor TDecompressionStream.Create(ASource: TStream; ASkipHeader : Boolean = False);
|
||||
begin
|
||||
inherited Create(ASource);
|
||||
FZRec.next_in := @FBuffer[0];
|
||||
DecompressionCheck(inflateInit(FZRec));
|
||||
If ASkipHeader then
|
||||
DeCompressionCheck(inflateInit2(FZRec,-MAX_WBITS))
|
||||
else
|
||||
DeCompressionCheck(inflateInit(FZRec));
|
||||
end;
|
||||
|
||||
destructor TDecompressionStream.Destroy;
|
||||
@ -351,10 +354,10 @@ begin
|
||||
Progress(Self);
|
||||
end;
|
||||
if DeCompressionCheck(inflate(FZRec, 0)) = Z_STREAM_END then
|
||||
begin
|
||||
Result := Count - FZRec.avail_out;
|
||||
Exit;
|
||||
end;
|
||||
begin
|
||||
Result := Count - FZRec.avail_out;
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
Result := Count;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user