New option --sparse-version
This commit is contained in:
28
src/tar.c
28
src/tar.c
@@ -301,6 +301,7 @@ enum
|
||||
SHOW_DEFAULTS_OPTION,
|
||||
SHOW_OMITTED_DIRS_OPTION,
|
||||
SHOW_TRANSFORMED_NAMES_OPTION,
|
||||
SPARSE_VERSION_OPTION,
|
||||
STRIP_COMPONENTS_OPTION,
|
||||
SUFFIX_OPTION,
|
||||
TEST_LABEL_OPTION,
|
||||
@@ -382,6 +383,8 @@ static struct argp_option options[] = {
|
||||
|
||||
{"sparse", 'S', 0, 0,
|
||||
N_("handle sparse files efficiently"), GRID+1 },
|
||||
{"sparse-version", SPARSE_VERSION_OPTION, N_("MAJOR[.MINOR]"), 0,
|
||||
N_("set version of the sparse format to use"), GRID+1},
|
||||
{"incremental", 'G', 0, 0,
|
||||
N_("handle old GNU-format incremental backup"), GRID+1 },
|
||||
{"listed-incremental", 'g', N_("FILE"), 0,
|
||||
@@ -400,7 +403,7 @@ static struct argp_option options[] = {
|
||||
|
||||
#define GRID 30
|
||||
{NULL, 0, NULL, 0,
|
||||
N_("Overwrite control:\n"), GRID+1 },
|
||||
N_("Overwrite control:"), GRID+1 },
|
||||
|
||||
{"verify", 'W', 0, 0,
|
||||
N_("attempt to verify the archive after writing it"), GRID+1 },
|
||||
@@ -627,7 +630,7 @@ static struct argp_option options[] = {
|
||||
N_("strip NUMBER leading components from file names on extraction"),
|
||||
GRID+1 },
|
||||
{"transform", TRANSFORM_OPTION, N_("EXPRESSION"), 0,
|
||||
N_("Use sed replace EXPRESSION to transform file names"), GRID+1 },
|
||||
N_("use sed replace EXPRESSION to transform file names"), GRID+1 },
|
||||
#undef GRID
|
||||
|
||||
#define GRID 95
|
||||
@@ -1341,6 +1344,21 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
||||
sparse_option = true;
|
||||
break;
|
||||
|
||||
case SPARSE_VERSION_OPTION:
|
||||
{
|
||||
char *p;
|
||||
tar_sparse_major = strtoul (arg, &p, 10);
|
||||
if (*p)
|
||||
{
|
||||
if (*p != '.')
|
||||
USAGE_ERROR ((0, 0, _("Invalid sparse version value")));
|
||||
tar_sparse_minor = strtoul (p + 1, &p, 10);
|
||||
if (*p)
|
||||
USAGE_ERROR ((0, 0, _("Invalid sparse version value")));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 't':
|
||||
set_subcommand_option (LIST_SUBCOMMAND);
|
||||
verbose_option++;
|
||||
@@ -1885,7 +1903,7 @@ decode_options (int argc, char **argv)
|
||||
args.backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
|
||||
args.version_control_string = 0;
|
||||
args.input_files = false;
|
||||
|
||||
|
||||
subcommand_option = UNKNOWN_SUBCOMMAND;
|
||||
archive_format = DEFAULT_FORMAT;
|
||||
blocking_factor = DEFAULT_BLOCKING;
|
||||
@@ -1895,7 +1913,9 @@ decode_options (int argc, char **argv)
|
||||
newer_mtime_option.tv_nsec = -1;
|
||||
recursion_option = FNM_LEADING_DIR;
|
||||
unquote_option = true;
|
||||
|
||||
tar_sparse_major = 1;
|
||||
tar_sparse_minor = 0;
|
||||
|
||||
owner_option = -1;
|
||||
group_option = -1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user