Adding upstream version 0.16.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
5d67ab9e97
commit
bb26c2917c
20 changed files with 854 additions and 662 deletions
|
@ -51,7 +51,7 @@ int delete_members_lz( const char * const archive_namep,
|
|||
|
||||
long long istream_pos = 0; // source of next data move
|
||||
const long long cdata_size = lzip_index.cdata_size();
|
||||
int retval = 0;
|
||||
int retval = 0, retval2 = 0;
|
||||
for( long i = 0; i < lzip_index.members(); ++i )
|
||||
{
|
||||
const long long mdata_pos = lzip_index.dblock( i ).pos();
|
||||
|
@ -142,16 +142,16 @@ int delete_members_lz( const char * const archive_namep,
|
|||
if( member_begin != mdata_pos || data_pos != mdata_end )
|
||||
{ show_file_error( extended.path().c_str(),
|
||||
"Can't delete: not individually compressed." );
|
||||
retval = 2; extended.reset(); continue; }
|
||||
retval2 = 2; extended.reset(); continue; }
|
||||
if( !show_member_name( extended, header, 1, rbuf ) )
|
||||
{ retval = 1; goto done; }
|
||||
const long long size = member_pos - istream_pos;
|
||||
if( size > 0 ) // move pending data each time a member is deleted
|
||||
{
|
||||
if( istream_pos == 0 )
|
||||
{ if( !safe_seek( outfd, size ) ) { retval = 1; break; } }
|
||||
{ if( !safe_seek( outfd, size ) ) { retval = 1; goto done; } }
|
||||
else if( !safe_seek( infd, istream_pos ) ||
|
||||
!copy_file( infd, outfd, size ) ) { retval = 1; break; }
|
||||
!copy_file( infd, outfd, size ) ) { retval = 1; goto done; }
|
||||
}
|
||||
istream_pos = member_end;
|
||||
}
|
||||
|
@ -159,6 +159,7 @@ int delete_members_lz( const char * const archive_namep,
|
|||
}
|
||||
}
|
||||
done:
|
||||
if( retval < retval2 ) retval = retval2;
|
||||
if( LZ_decompress_close( decoder ) < 0 && !retval )
|
||||
{ show_error( "LZ_decompress_close failed." ); retval = 1; }
|
||||
// tail copy keeps trailing data
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue