New option --sparse-version

This commit is contained in:
Sergey Poznyakoff
2006-06-23 15:22:12 +00:00
parent 090d1d36ae
commit 1001c1b326

View File

@@ -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;