From: Sergey Poznyakoff Date: Fri, 23 Jun 2006 15:22:12 +0000 (+0000) Subject: New option --sparse-version X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftar;a=commitdiff_plain;h=1001c1b3266574be6e024d0f70a3bd035d569643 New option --sparse-version --- diff --git a/src/tar.c b/src/tar.c index 3ef89ba..e2df10f 100644 --- a/src/tar.c +++ b/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;