1
0
Fork 0

Merging upstream version 1.15.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-05-28 19:30:37 +02:00
parent ba8e0a83c7
commit 60d97c7cb2
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
24 changed files with 310 additions and 146 deletions

View file

@ -51,6 +51,7 @@
namespace {
#include "exclude.cc"
#include "recursive.cc"
void show_help()
@ -94,6 +95,7 @@ void show_help()
" -r, --recursive operate recursively on directories\n"
" -R, --dereference-recursive recursively follow symbolic links\n"
" -v, --verbose be verbose (a 2nd -v gives more)\n"
" -x, --exclude=<pattern> exclude files matching a shell pattern\n"
" -0 .. -9 set compression level [default 9]\n"
" --bz2=<command> set compressor and options for bzip2 format\n"
" --gz=<command> set compressor and options for gzip format\n"
@ -382,7 +384,6 @@ int zupdate_file( const std::string & name, const char * const lzip_name,
int main( const int argc, const char * const argv[] )
{
enum { bz2_opt = 256, gz_opt, lz_opt, xz_opt, zst_opt };
int recursive = 0; // 1 = '-r', 2 = '-R'
std::string destdir; // write recompressed files here
std::vector< std::string > lzip_args2; // args to lzip, maybe empty
@ -394,6 +395,7 @@ int main( const int argc, const char * const argv[] )
program_name = "zupdate";
invocation_name = ( argc > 0 ) ? argv[0] : program_name;
enum { opt_bz2 = 256, opt_gz, opt_lz, opt_xz, opt_zst };
const Arg_parser::Option options[] =
{
{ '0', 0, Arg_parser::no },
@ -420,11 +422,12 @@ int main( const int argc, const char * const argv[] )
{ 'R', "dereference-recursive", Arg_parser::no },
{ 'v', "verbose", Arg_parser::no },
{ 'V', "version", Arg_parser::no },
{ bz2_opt, "bz2", Arg_parser::yes },
{ gz_opt, "gz", Arg_parser::yes },
{ lz_opt, "lz", Arg_parser::yes },
{ xz_opt, "xz", Arg_parser::yes },
{ zst_opt, "zst", Arg_parser::yes },
{ 'x', "exclude", Arg_parser::yes },
{ opt_bz2, "bz2", Arg_parser::yes },
{ opt_gz, "gz", Arg_parser::yes },
{ opt_lz, "lz", Arg_parser::yes },
{ opt_xz, "xz", Arg_parser::yes },
{ opt_zst, "zst", Arg_parser::yes },
{ 0, 0, Arg_parser::no } };
const Arg_parser parser( argc, argv, options );
@ -459,11 +462,12 @@ int main( const int argc, const char * const argv[] )
case 'R': recursive = 2; break;
case 'v': if( verbosity < 4 ) ++verbosity; break;
case 'V': show_version(); return 0;
case bz2_opt: parse_compressor( arg, pn, fmt_bz2, 1 ); break;
case gz_opt: parse_compressor( arg, pn, fmt_gz, 1 ); break;
case lz_opt: parse_compressor( arg, pn, fmt_lz, 1 ); break;
case xz_opt: parse_compressor( arg, pn, fmt_xz, 1 ); break;
case zst_opt: parse_compressor( arg, pn, fmt_zst, 1 ); break;
case 'x': Exclude::add_pattern( arg ); break;
case opt_bz2: parse_compressor( arg, pn, fmt_bz2, 1 ); break;
case opt_gz: parse_compressor( arg, pn, fmt_gz, 1 ); break;
case opt_lz: parse_compressor( arg, pn, fmt_lz, 1 ); break;
case opt_xz: parse_compressor( arg, pn, fmt_xz, 1 ); break;
case opt_zst: parse_compressor( arg, pn, fmt_zst, 1 ); break;
default: internal_error( "uncaught option." );
}
} // end process options