Merging upstream version 1.5~rc1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
d95c5a0612
commit
12490d92a1
13 changed files with 119 additions and 100 deletions
25
main.c
25
main.c
|
@ -79,13 +79,11 @@ struct { const char * from; const char * to; } const known_extensions[] = {
|
|||
|
||||
struct Lzma_options
|
||||
{
|
||||
int dictionary_size; /* 4KiB..512MiB */
|
||||
int match_len_limit; /* 5..273 */
|
||||
int dictionary_size; /* 4 KiB .. 512 MiB */
|
||||
int match_len_limit; /* 5 .. 273 */
|
||||
};
|
||||
|
||||
enum Mode { m_compress, m_decompress, m_test };
|
||||
const unsigned long long max_member_size = 0x1000000000000000ULL;
|
||||
const unsigned long long max_volume_size = 0x7FFFFFFFFFFFFFFFULL;
|
||||
|
||||
char * output_filename = 0;
|
||||
int outfd = -1;
|
||||
|
@ -112,7 +110,7 @@ static void show_help( void )
|
|||
" -m, --match-length=<bytes> set match length limit in bytes [36]\n"
|
||||
" -o, --output=<file> if reading stdin, place the output into <file>\n"
|
||||
" -q, --quiet suppress all messages\n"
|
||||
" -s, --dictionary-size=<bytes> set dictionary size limit in bytes [8MiB]\n"
|
||||
" -s, --dictionary-size=<bytes> set dictionary size limit in bytes [8 MiB]\n"
|
||||
" -S, --volume-size=<bytes> set volume size limit in bytes\n"
|
||||
" -t, --test test compressed file integrity\n"
|
||||
" -v, --verbose be verbose (a 2nd -v gives more)\n"
|
||||
|
@ -126,7 +124,8 @@ static void show_help( void )
|
|||
"The bidimensional parameter space of LZMA can't be mapped to a linear\n"
|
||||
"scale optimal for all files. If your files are large, very repetitive,\n"
|
||||
"etc, you may need to use the --match-length and --dictionary-size\n"
|
||||
"options directly to achieve optimal performance.\n"
|
||||
"options directly to achieve optimal performance. For example, -9m64\n"
|
||||
"usually compresses executables more (and faster) than -9.\n"
|
||||
"\nExit status: 0 for a normal exit, 1 for environmental problems (file\n"
|
||||
"not found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or\n"
|
||||
"invalid input file, 3 for an internal consistency error (eg, bug) which\n"
|
||||
|
@ -146,7 +145,7 @@ static void show_version( void )
|
|||
}
|
||||
|
||||
|
||||
void show_header( const File_header header )
|
||||
static void show_header( const File_header header )
|
||||
{
|
||||
const char * const prefix[8] =
|
||||
{ "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi", "Yi" };
|
||||
|
@ -159,8 +158,6 @@ void show_header( const File_header header )
|
|||
for( i = 0; i < 8 && ( num > 9999 || ( exact && num >= factor ) ); ++i )
|
||||
{ num /= factor; if( num % factor != 0 ) exact = false;
|
||||
p = prefix[i]; np = ""; }
|
||||
if( verbosity >= 4 )
|
||||
fprintf( stderr, "version %d, ", Fh_version( header ) );
|
||||
fprintf( stderr, "dictionary size %s%4u %sB. ", np, num, p );
|
||||
}
|
||||
|
||||
|
@ -273,12 +270,13 @@ static int open_instream( const char * const name, struct stat * const in_statsp
|
|||
const bool can_read = ( i == 0 &&
|
||||
( S_ISBLK( mode ) || S_ISCHR( mode ) ||
|
||||
S_ISFIFO( mode ) || S_ISSOCK( mode ) ) );
|
||||
if( i != 0 || ( !S_ISREG( mode ) && ( !to_stdout || !can_read ) ) )
|
||||
const bool no_ofile = to_stdout || program_mode == m_test;
|
||||
if( i != 0 || ( !S_ISREG( mode ) && ( !can_read || !no_ofile ) ) )
|
||||
{
|
||||
if( verbosity >= 0 )
|
||||
fprintf( stderr, "%s: Input file '%s' is not a regular file%s.\n",
|
||||
program_name, name,
|
||||
( can_read && !to_stdout ) ?
|
||||
( can_read && !no_ofile ) ?
|
||||
" and '--stdout' was not specified" : "" );
|
||||
close( infd );
|
||||
infd = -1;
|
||||
|
@ -532,7 +530,8 @@ static int decompress( const int infd, struct Pretty_print * const pp,
|
|||
if( Rd_finished( &rdec ) ) /* End Of File */
|
||||
{
|
||||
if( first_member )
|
||||
{ Pp_show_msg( pp, "Error reading member header" ); retval = 1; }
|
||||
{ Pp_show_msg( pp, "File ends unexpectedly at member header" );
|
||||
retval = 2; }
|
||||
break;
|
||||
}
|
||||
if( !Fh_verify_magic( header ) )
|
||||
|
@ -695,6 +694,8 @@ int main( const int argc, const char * const argv[] )
|
|||
{ 3 << 23, 132 }, /* -8 */
|
||||
{ 1 << 25, 273 } }; /* -9 */
|
||||
struct Lzma_options encoder_options = option_mapping[6]; /* default = "-6" */
|
||||
const unsigned long long max_member_size = 0x0100000000000000ULL;
|
||||
const unsigned long long max_volume_size = 0x4000000000000000ULL;
|
||||
unsigned long long member_size = max_member_size;
|
||||
unsigned long long volume_size = 0;
|
||||
const char * input_filename = "";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue