mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
FIX: Use 64 bit seek
This commit is contained in:
parent
481c12fd99
commit
44fc21750c
6 changed files with 19 additions and 19 deletions
|
|
@ -139,20 +139,20 @@ begin
|
|||
Result := atUnknown;
|
||||
|
||||
CurPos := Strm.Position;
|
||||
Strm.Seek(0, soFromBeginning);
|
||||
Strm.Seek(0, soBeginning);
|
||||
|
||||
try
|
||||
if (Strm.Read(Hdr, SizeOf(Hdr)) = SizeOf(Hdr)) and VerifyHeader(Hdr) then begin
|
||||
Result := atBzip2;
|
||||
{ Check for embedded TAR }
|
||||
Strm.Seek(0, soFromBeginning);
|
||||
Strm.Seek(0, soBeginning);
|
||||
DecompStream := TBZDecompressionStream.Create(Strm);
|
||||
try
|
||||
TarStream := TMemoryStream.Create;
|
||||
try
|
||||
DecompSize:= DecompStream.Read(Buffer, SizeOf(Buffer));
|
||||
TarStream.Write(Buffer, DecompSize);
|
||||
TarStream.Seek(0, soFromBeginning);
|
||||
TarStream.Seek(0, soBeginning);
|
||||
if VerifyTar(TarStream) = atTar then
|
||||
Result := atBzippedTar;
|
||||
finally
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ begin
|
|||
FFakeCount -
|
||||
(FBufEnd - FBuffer) +
|
||||
(FBufPos - FBuffer) -
|
||||
(FBitsLeft div 8), soFromBeginning);
|
||||
(FBitsLeft div 8), soBeginning);
|
||||
|
||||
{free the buffer}
|
||||
FreeMem(FBuffer);
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ begin
|
|||
Result := atUnknown;
|
||||
CurPos := Strm.Position;
|
||||
try
|
||||
Strm.Seek(0, soFromBeginning);
|
||||
Strm.Seek(0, soBeginning);
|
||||
|
||||
{prepare for the try..finally}
|
||||
Hlpr := nil;
|
||||
|
|
@ -506,7 +506,7 @@ begin
|
|||
Move(Buff, Result[Length(Result) - Len + 1], Len);
|
||||
end;
|
||||
if Len < DataRead then begin
|
||||
AStream.Seek(Len - DataRead + 1, soFromCurrent);
|
||||
AStream.Seek(Len - DataRead + 1, soCurrent);
|
||||
Break;
|
||||
end;
|
||||
until DataRead = 0;
|
||||
|
|
@ -516,7 +516,7 @@ procedure TAbGzipStreamHelper.SeekToItemData;
|
|||
{find end of header data, including FileName etc.}
|
||||
begin
|
||||
{** Seek to Compressed Data **}
|
||||
FStream.Seek(0, soFromBeginning);
|
||||
FStream.Seek(0, soBeginning);
|
||||
FItem.LoadGzHeaderFromStream(FStream);
|
||||
end;
|
||||
|
||||
|
|
@ -542,13 +542,13 @@ var
|
|||
DataRead : Integer;
|
||||
begin
|
||||
Result := False;
|
||||
FStream.Seek(0, soFromBeginning);
|
||||
FStream.Seek(0, soBeginning);
|
||||
DataRead := FStream.Read(GZH, SizeOf(TAbGzHeader));
|
||||
if (DataRead = SizeOf(TAbGzHeader)) and VerifyHeader(GZH) then begin
|
||||
FItem.FGZHeader := GZH;
|
||||
Result := True;
|
||||
end;
|
||||
FStream.Seek(0, soFromBeginning);
|
||||
FStream.Seek(0, soBeginning);
|
||||
end;
|
||||
|
||||
function TAbGzipStreamHelper.FindNextItem: Boolean;
|
||||
|
|
@ -1072,7 +1072,7 @@ begin
|
|||
if GzHelp.FindFirstItem then begin
|
||||
Item := TAbGzipItem.Create;
|
||||
Item.LoadGzHeaderFromStream(FGzStream);
|
||||
FGzStream.Seek(-SizeOf(TAbGzTailRec), soFromEnd);
|
||||
FGzStream.Seek(-SizeOf(TAbGzTailRec), soEnd);
|
||||
GZHelp.ReadTail;
|
||||
Item.CRC32 := GZHelp.TailCRC;
|
||||
Item.UncompressedSize := GZHelp.TailSize;
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ begin
|
|||
Result := atUnknown;
|
||||
|
||||
CurPos := Strm.Position;
|
||||
Strm.Seek(0, soFromBeginning);
|
||||
Strm.Seek(0, soBeginning);
|
||||
|
||||
try
|
||||
if Strm.Read(Hdr, SizeOf(Hdr)) = SizeOf(Hdr) then
|
||||
|
|
@ -143,7 +143,7 @@ begin
|
|||
begin
|
||||
Result := atLzma;
|
||||
{ Check for embedded TAR }
|
||||
TarStream.Seek(0, soFromBeginning);
|
||||
TarStream.Seek(0, soBeginning);
|
||||
if VerifyTar(TarStream) = atTar then
|
||||
Result := atLzmaTar;
|
||||
end;
|
||||
|
|
@ -409,7 +409,7 @@ var
|
|||
Header: TAbLzmaHeader;
|
||||
Decoder: TLZMADecoder;
|
||||
begin
|
||||
FLzmaStream.Seek(0, soFromBeginning);
|
||||
FLzmaStream.Seek(0, soBeginning);
|
||||
if FLzmaStream.Read(Header, SizeOf(Header)) = SizeOf(Header) then
|
||||
begin
|
||||
Decoder := TLZMADecoder.Create;
|
||||
|
|
|
|||
|
|
@ -133,19 +133,19 @@ begin
|
|||
Result := atUnknown;
|
||||
|
||||
CurPos := Strm.Position;
|
||||
Strm.Seek(0, soFromBeginning);
|
||||
Strm.Seek(0, soBeginning);
|
||||
|
||||
try
|
||||
if (Strm.Read(Hdr, SizeOf(Hdr)) = SizeOf(Hdr)) and VerifyHeader(Hdr) then begin
|
||||
Result := atXz;
|
||||
{ Check for embedded TAR }
|
||||
Strm.Seek(0, soFromBeginning);
|
||||
Strm.Seek(0, soBeginning);
|
||||
TarStream := TMemoryStream.Create;
|
||||
try
|
||||
DecompStream := TLzmaDecompression.Create(Strm, TarStream);
|
||||
try
|
||||
DecompStream.Code(AB_TAR_RECORDSIZE * 4);
|
||||
TarStream.Seek(0, soFromBeginning);
|
||||
TarStream.Seek(0, soBeginning);
|
||||
if VerifyTar(TarStream) = atTar then
|
||||
Result := atXzippedTar;
|
||||
finally
|
||||
|
|
|
|||
|
|
@ -127,20 +127,20 @@ begin
|
|||
Result := atUnknown;
|
||||
|
||||
CurPos := Strm.Position;
|
||||
Strm.Seek(0, soFromBeginning);
|
||||
Strm.Seek(0, soBeginning);
|
||||
|
||||
try
|
||||
if (Strm.Read(Hdr, SizeOf(Hdr)) = SizeOf(Hdr)) and VerifyHeader(Hdr) then begin
|
||||
Result := atZstd;
|
||||
{ Check for embedded TAR }
|
||||
Strm.Seek(0, soFromBeginning);
|
||||
Strm.Seek(0, soBeginning);
|
||||
DecompStream := TZSTDDecompressionStream.Create(Strm);
|
||||
try
|
||||
TarStream := TMemoryStream.Create;
|
||||
try
|
||||
DecompSize:= DecompStream.Read(Buffer, SizeOf(Buffer));
|
||||
TarStream.Write(Buffer, DecompSize);
|
||||
TarStream.Seek(0, soFromBeginning);
|
||||
TarStream.Seek(0, soBeginning);
|
||||
if VerifyTar(TarStream) = atTar then
|
||||
Result := atZstdTar;
|
||||
finally
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue