1
0
Fork 0

Merging upstream version 0.19.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-17 21:15:39 +01:00
parent 84460224b0
commit b53e340348
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
28 changed files with 926 additions and 616 deletions

View file

@ -1,5 +1,5 @@
/* Tarlz - Archiver with multimember lzip compression
Copyright (C) 2013-2020 Antonio Diaz Diaz.
Copyright (C) 2013-2021 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -22,7 +22,7 @@ struct Archive_descriptor
const int infd;
const Lzip_index lzip_index;
const bool seekable;
const bool indexed;
const bool indexed; // archive is a compressed regular file
Archive_descriptor( const std::string & archive_name )
: name( archive_name ), namep( name.empty() ? "(stdin)" : name.c_str() ),
@ -96,15 +96,15 @@ public:
*/
class Archive_reader_i : public Archive_reader_base // indexed reader
{
long long data_pos_;
long long mdata_end;
long long data_pos_; // current decompressed position
long long mdata_end_; // current member decompressed end
long long archive_pos; // current position in archive for pread
long member_id; // current member unless reading beyond
public:
Archive_reader_i( const Archive_descriptor & d )
: Archive_reader_base( d ),
data_pos_( 0 ), mdata_end( 0 ), archive_pos( 0 ), member_id( 0 )
data_pos_( 0 ), mdata_end_( 0 ), archive_pos( 0 ), member_id( 0 )
{
decoder = LZ_decompress_open();
if( !decoder || LZ_decompress_errno( decoder ) != LZ_ok )
@ -112,7 +112,8 @@ public:
}
long long data_pos() const { return data_pos_; }
bool at_member_end() const { return data_pos_ == mdata_end; }
long long mdata_end() const { return mdata_end_; }
bool at_member_end() const { return data_pos_ == mdata_end_; }
// Resets decoder and sets position to the start of the member.
void set_member( const long i );