Fix interacton of --verbose and --append.
* src/buffer.c (_open_archive): don't overwrite existing archive if given the --verify option. * tests/append04.at: New file. * tests/Makefile.am: Add new testcase. * tests/testsuite.at: Add new testcase. * THANKS: Update.
This commit is contained in:
1
THANKS
1
THANKS
@@ -242,6 +242,7 @@ Jim Clausing jac@postbox.acs.ohio-state.edu
|
|||||||
Jim Farrell jwf@platinum.com
|
Jim Farrell jwf@platinum.com
|
||||||
Jim Meyering meyering@na-net.ornl.gov
|
Jim Meyering meyering@na-net.ornl.gov
|
||||||
Jim Murray jjm@jjm.com
|
Jim Murray jjm@jjm.com
|
||||||
|
Jivko Angelov jivko@siteground.com
|
||||||
Joachim Holzfuss Joachim.Holzfuss@iap.physik.th-darmstadt.de
|
Joachim Holzfuss Joachim.Holzfuss@iap.physik.th-darmstadt.de
|
||||||
Joachim Seelig joachim@kruemel.han.de
|
Joachim Seelig joachim@kruemel.han.de
|
||||||
Joe DeBattista joed@itsa.ucsf.edu
|
Joe DeBattista joed@itsa.ucsf.edu
|
||||||
|
|||||||
11
src/buffer.c
11
src/buffer.c
@@ -722,9 +722,6 @@ _open_archive (enum access_mode wanted_access)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (verify_option)
|
|
||||||
archive = rmtopen (archive_name_array[0], O_RDWR | O_CREAT | O_BINARY,
|
|
||||||
MODE_RW, rsh_command_option);
|
|
||||||
else
|
else
|
||||||
switch (wanted_access)
|
switch (wanted_access)
|
||||||
{
|
{
|
||||||
@@ -740,8 +737,12 @@ _open_archive (enum access_mode wanted_access)
|
|||||||
maybe_backup_file (archive_name_array[0], 1);
|
maybe_backup_file (archive_name_array[0], 1);
|
||||||
backed_up_flag = 1;
|
backed_up_flag = 1;
|
||||||
}
|
}
|
||||||
archive = rmtcreat (archive_name_array[0], MODE_RW,
|
if (verify_option)
|
||||||
rsh_command_option);
|
archive = rmtopen (archive_name_array[0], O_RDWR | O_CREAT | O_BINARY,
|
||||||
|
MODE_RW, rsh_command_option);
|
||||||
|
else
|
||||||
|
archive = rmtcreat (archive_name_array[0], MODE_RW,
|
||||||
|
rsh_command_option);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ACCESS_UPDATE:
|
case ACCESS_UPDATE:
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ TESTSUITE_AT = \
|
|||||||
append01.at\
|
append01.at\
|
||||||
append02.at\
|
append02.at\
|
||||||
append03.at\
|
append03.at\
|
||||||
|
append04.at\
|
||||||
backup01.at\
|
backup01.at\
|
||||||
chtype.at\
|
chtype.at\
|
||||||
comprec.at\
|
comprec.at\
|
||||||
|
|||||||
60
tests/append04.at
Normal file
60
tests/append04.at
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# Process this file with autom4te to create testsuite. -*- Autotest -*-
|
||||||
|
#
|
||||||
|
# Test suite for GNU tar.
|
||||||
|
# Copyright 2013 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU tar.
|
||||||
|
#
|
||||||
|
# GNU tar 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 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# GNU tar 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/>.
|
||||||
|
|
||||||
|
# When called with --append and --verify options, tar would rewrite the
|
||||||
|
# archive instead of appending to it.
|
||||||
|
#
|
||||||
|
# Last-Affected-Version: 1.26
|
||||||
|
# Reported-by: Jivko Angelov <jivko@siteground.com>
|
||||||
|
# References: <51D6983C.3060404@siteground.com>,
|
||||||
|
# http://lists.gnu.org/archive/html/bug-tar/2013-07/msg00003.html
|
||||||
|
|
||||||
|
AT_SETUP([append with verify])
|
||||||
|
AT_KEYWORDS([append append04 verify append-verify])
|
||||||
|
|
||||||
|
AT_TAR_CHECK([
|
||||||
|
# Create two empty files:
|
||||||
|
touch file1 file2
|
||||||
|
|
||||||
|
# Create an archive:
|
||||||
|
tar cpfW archive.tar file1 file2
|
||||||
|
|
||||||
|
# Verify created archive by listing its content:
|
||||||
|
tar -tf archive.tar
|
||||||
|
echo ==
|
||||||
|
# Create another empty file:
|
||||||
|
touch file3
|
||||||
|
|
||||||
|
# Append it to the already created archive:
|
||||||
|
tar rpfW archive.tar file3
|
||||||
|
|
||||||
|
# Verify content of the new archive:
|
||||||
|
tar -tf archive.tar
|
||||||
|
],
|
||||||
|
[0],
|
||||||
|
[file1
|
||||||
|
file2
|
||||||
|
==
|
||||||
|
file1
|
||||||
|
file2
|
||||||
|
file3
|
||||||
|
])
|
||||||
|
|
||||||
|
AT_CLEANUP
|
||||||
@@ -218,6 +218,7 @@ m4_include([append.at])
|
|||||||
m4_include([append01.at])
|
m4_include([append01.at])
|
||||||
m4_include([append02.at])
|
m4_include([append02.at])
|
||||||
m4_include([append03.at])
|
m4_include([append03.at])
|
||||||
|
m4_include([append04.at])
|
||||||
|
|
||||||
AT_BANNER([Transforms])
|
AT_BANNER([Transforms])
|
||||||
m4_include([xform-h.at])
|
m4_include([xform-h.at])
|
||||||
|
|||||||
Reference in New Issue
Block a user