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.
This commit is contained in:
Sergey Poznyakoff
2011-07-30 18:26:38 +03:00
parent 49bd102a1b
commit fa307a6655
4 changed files with 40 additions and 4 deletions

View File

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

View File

@@ -68,6 +68,7 @@ TESTSUITE_AT = \
exclude04.at\
exclude05.at\
exclude06.at\
exclude07.at\
extrac01.at\
extrac02.at\
extrac03.at\

34
tests/exclude07.at Normal file
View File

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

View 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])