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:
@@ -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:
|
||||
|
||||
@@ -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
34
tests/exclude07.at
Normal 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
|
||||
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user