diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-07-30 18:26:38 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-07-30 18:26:38 +0300 |
commit | fa307a665545753b6729191fd2559ce872fa470a (patch) | |
tree | a7fd6a9fc0b740d154496b1de4c6bf2a59798f0a | |
parent | 49bd102a1b220a0e4ad3e0e75ac0cdd2a5964efa (diff) | |
download | tar-fa307a665545753b6729191fd2559ce872fa470a.tar.gz |
Fix the --exclude-backups option.
* 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.
-rw-r--r-- | src/tar.c | 8 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/exclude07.at | 34 | ||||
-rw-r--r-- | tests/testsuite.at | 1 |
4 files changed, 40 insertions, 4 deletions
@@ -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); } @@ -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: diff --git a/tests/Makefile.am b/tests/Makefile.am index ab7d104d..d9c9aae5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -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 index 00000000..c9ee0cdf --- /dev/null +++ b/tests/exclude07.at @@ -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 diff --git a/tests/testsuite.at b/tests/testsuite.at index a62e79f6..9f262ec8 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -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]) |