Adding upstream version 1.15~rc1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
0ff20a5602
commit
6a117924f6
20 changed files with 439 additions and 219 deletions
27
lzip.h
27
lzip.h
|
@ -1,4 +1,4 @@
|
|||
/* Lziprecover - Data recovery tool for lzipped files
|
||||
/* Lziprecover - Data recovery tool for lzip files
|
||||
Copyright (C) 2009, 2010, 2011, 2012, 2013 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
|
@ -30,10 +30,11 @@ public:
|
|||
static const int next[states] = { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5 };
|
||||
st = next[st];
|
||||
}
|
||||
|
||||
void set_match() { st = ( ( st < 7 ) ? 7 : 10 ); }
|
||||
void set_rep() { st = ( ( st < 7 ) ? 8 : 11 ); }
|
||||
void set_short_rep() { st = ( ( st < 7 ) ? 9 : 11 ); }
|
||||
void set_char1() { st -= ( st < 4 ) ? st : 3; } // for st < 7
|
||||
void set_char2() { st -= ( st < 10 ) ? 3 : 6; } // for st >= 7
|
||||
void set_match() { st = ( st < 7 ) ? 7 : 10; }
|
||||
void set_rep() { st = ( st < 7 ) ? 8 : 11; }
|
||||
void set_short_rep() { st = ( st < 7 ) ? 9 : 11; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -160,10 +161,11 @@ public:
|
|||
|
||||
uint32_t operator[]( const uint8_t byte ) const { return data[byte]; }
|
||||
|
||||
void update( uint32_t & crc, const uint8_t byte ) const
|
||||
void update_byte( uint32_t & crc, const uint8_t byte ) const
|
||||
{ crc = data[(crc^byte)&0xFF] ^ ( crc >> 8 ); }
|
||||
|
||||
void update( uint32_t & crc, const uint8_t * const buffer, const int size ) const
|
||||
void update_buf( uint32_t & crc, const uint8_t * const buffer,
|
||||
const int size ) const
|
||||
{
|
||||
for( int i = 0; i < size; ++i )
|
||||
crc = data[(crc^buffer[i])&0xFF] ^ ( crc >> 8 );
|
||||
|
@ -205,15 +207,15 @@ struct File_header
|
|||
return sz;
|
||||
}
|
||||
|
||||
bool dictionary_size( const int sz )
|
||||
bool dictionary_size( const unsigned sz )
|
||||
{
|
||||
if( sz >= min_dictionary_size && sz <= max_dictionary_size )
|
||||
{
|
||||
data[5] = real_bits( sz - 1 );
|
||||
if( sz > min_dictionary_size )
|
||||
{
|
||||
const int base_size = 1 << data[5];
|
||||
const int wedge = base_size / 16;
|
||||
const unsigned base_size = 1 << data[5];
|
||||
const unsigned wedge = base_size / 16;
|
||||
for( int i = 7; i >= 1; --i )
|
||||
if( base_size - ( i * wedge ) >= sz )
|
||||
{ data[5] |= ( i << 5 ); break; }
|
||||
|
@ -287,9 +289,8 @@ int writeblock( const int fd, const uint8_t * const buf, const int size );
|
|||
|
||||
// defined in main.cc
|
||||
int open_instream( const std::string & name, struct stat * const in_statsp,
|
||||
const bool to_stdout, const bool reg_only = false );
|
||||
int open_outstream_rw( const std::string & output_filename,
|
||||
const bool force );
|
||||
const bool no_ofile, const bool reg_only = false );
|
||||
int open_outstream_rw( const std::string & output_filename, const bool force );
|
||||
void show_header( const File_header & header );
|
||||
void show_error( const char * const msg, const int errcode = 0,
|
||||
const bool help = false );
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue