summaryrefslogtreecommitdiffstats
path: root/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'main.cc')
-rw-r--r--main.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/main.cc b/main.cc
index df55c79..459ed05 100644
--- a/main.cc
+++ b/main.cc
@@ -103,6 +103,7 @@ void show_help()
" -D, --range-decompress=<range> decompress only a range of bytes (N-M)\n"
" -f, --force overwrite existing output files\n"
// " -g, --generate-recover-file generate a recover file\n"
+ " -i, --ignore-errors make '--range-decompress' ignore data errors\n"
" -k, --keep keep (don't delete) input files\n"
" -l, --list print total file sizes and ratios\n"
" -m, --merge correct errors in file using several copies\n"
@@ -399,7 +400,7 @@ int decompress( const int infd, const Pretty_print & pp, const bool testing )
{ pp( "Invalid dictionary size in member header" ); retval = 2; break; }
if( verbosity >= 2 || ( verbosity == 1 && first_member ) )
- { pp(); if( verbosity >= 2 ) show_header( header ); }
+ { pp(); if( verbosity >= 3 ) show_header( header ); }
LZ_decoder decoder( header, rdec, outfd );
const int result = decoder.decode_member( pp );
@@ -507,6 +508,7 @@ int main( const int argc, const char * const argv[] )
int infd = -1;
Mode program_mode = m_none;
bool force = false;
+ bool ignore = false;
bool keep_input_files = false;
bool to_stdout = false;
invocation_name = argv[0];
@@ -518,9 +520,11 @@ int main( const int argc, const char * const argv[] )
{ 'D', "range-decompress", Arg_parser::yes },
{ 'f', "force", Arg_parser::no },
{ 'h', "help", Arg_parser::no },
+ { 'i', "ignore-errors", Arg_parser::no },
{ 'k', "keep", Arg_parser::no },
{ 'l', "list", Arg_parser::no },
{ 'm', "merge", Arg_parser::no },
+ { 'n', "threads", Arg_parser::yes },
{ 'o', "output", Arg_parser::yes },
{ 'q', "quiet", Arg_parser::no },
{ 'R', "repair", Arg_parser::no },
@@ -548,9 +552,11 @@ int main( const int argc, const char * const argv[] )
range_string = arg; break;
case 'f': force = true; break;
case 'h': show_help(); return 0;
+ case 'i': ignore = true; break;
case 'k': keep_input_files = true; break;
case 'l': set_mode( program_mode, m_list ); break;
case 'm': set_mode( program_mode, m_merge ); break;
+ case 'n': break;
case 'o': default_output_filename = arg; break;
case 'q': verbosity = -1; break;
case 'R': set_mode( program_mode, m_repair ); break;
@@ -600,7 +606,7 @@ int main( const int argc, const char * const argv[] )
case m_range:
one_file( filenames.size() );
return range_decompress( filenames[0], default_output_filename,
- range_string, verbosity, force, to_stdout );
+ range_string, verbosity, force, ignore, to_stdout );
case m_repair:
one_file( filenames.size() );
if( !default_output_filename.size() )