]> Dogcows Code - chaz/tar/commitdiff
Fix the --exclude-backups option.
authorSergey Poznyakoff <gray@gnu.org.ua>
Sat, 30 Jul 2011 15:26:38 +0000 (18:26 +0300)
committerSergey Poznyakoff <gray@gnu.org.ua>
Sat, 30 Jul 2011 15:26:38 +0000 (18:26 +0300)
* src/tar.c (add_exclude_array): Take exclude option filags in its
second argument.
(parse_opt): Register backup_file_table with the EXCLUDE_WILDCARDS flag.
* tests/exclude07.at: New testcase.
* tests/Makefile.am (TESTSUITE_AT): Add testsuite.at.
* tests/testsuite.at: Include exclude07.at.

src/tar.c
tests/Makefile.am
tests/exclude07.at [new file with mode: 0644]
tests/testsuite.at

index 928cfddd44a86220ab444844cac61c10da6495aa..95781624a4594c38a586f2f63b9b37fdf05954dc 100644 (file)
--- a/src/tar.c
+++ b/src/tar.c
@@ -892,12 +892,12 @@ static char const * const backup_file_table[] = {
 };
 
 static void
-add_exclude_array (char const * const * fv)
+add_exclude_array (char const * const * fv, int options)
 {
   int i;
 
   for (i = 0; fv[i]; i++)
-    add_exclude (excluded, fv[i], 0);
+    add_exclude (excluded, fv[i], options);
 }
 
 \f
@@ -1769,7 +1769,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
       break;
 
     case EXCLUDE_BACKUPS_OPTION:
-      add_exclude_array (backup_file_table);
+      add_exclude_array (backup_file_table, EXCLUDE_WILDCARDS);
       break;
 
     case EXCLUDE_OPTION:
@@ -1804,7 +1804,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
       break;
 
     case EXCLUDE_VCS_OPTION:
-      add_exclude_array (vcs_file_table);
+      add_exclude_array (vcs_file_table, 0);
       break;
 
     case FORCE_LOCAL_OPTION:
index ab7d104d307ca2c7c62a3eb131b7ea3893e495cc..d9c9aae5f631a8955266ef55db6cf071f2f82bd4 100644 (file)
@@ -68,6 +68,7 @@ TESTSUITE_AT = \
  exclude04.at\
  exclude05.at\
  exclude06.at\
+ exclude07.at\
  extrac01.at\
  extrac02.at\
  extrac03.at\
diff --git a/tests/exclude07.at b/tests/exclude07.at
new file mode 100644 (file)
index 0000000..c9ee0cd
--- /dev/null
@@ -0,0 +1,34 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Copyright (C) 2010 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+AT_SETUP([exclude: --exclude-backups option])
+AT_KEYWORDS([exclude exclude07])
+
+AT_TAR_CHECK([
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file "dir/.#file"
+genfile --file "dir/#file#"
+
+tar -v -c -f archive --exclude-backups dir
+],
+[0],
+[dir/
+dir/file
+])
+
+AT_CLEANUP
index a62e79f6ac3e1ee5e0798310b6cc521d747797db..9f262ec8c714ecb4acbf042a233637c482855a89 100644 (file)
@@ -141,6 +141,7 @@ m4_include([exclude03.at])
 m4_include([exclude04.at])
 m4_include([exclude05.at])
 m4_include([exclude06.at])
+m4_include([exclude07.at])
 
 m4_include([delete01.at])
 m4_include([delete02.at])
This page took 0.02586 seconds and 4 git commands to generate.