]> Dogcows Code - chaz/tar/commitdiff
New option --sparse-version
authorSergey Poznyakoff <gray@gnu.org.ua>
Fri, 23 Jun 2006 15:22:12 +0000 (15:22 +0000)
committerSergey Poznyakoff <gray@gnu.org.ua>
Fri, 23 Jun 2006 15:22:12 +0000 (15:22 +0000)
src/tar.c

index 3ef89ba931a7513ebb5b0ccdc50b18fce7521457..e2df10fca8cb5a98b7d5280bbbe71cb12551242a 100644 (file)
--- 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;
 
This page took 0.023326 seconds and 4 git commands to generate.