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:
Sergey Poznyakoff
2013-08-04 19:00:46 +03:00
parent 6e5e4420f4
commit 47560a0498
5 changed files with 69 additions and 5 deletions

1
THANKS
View File

@@ -242,6 +242,7 @@ Jim Clausing jac@postbox.acs.ohio-state.edu
Jim Farrell jwf@platinum.com
Jim Meyering meyering@na-net.ornl.gov
Jim Murray jjm@jjm.com
Jivko Angelov jivko@siteground.com
Joachim Holzfuss Joachim.Holzfuss@iap.physik.th-darmstadt.de
Joachim Seelig joachim@kruemel.han.de
Joe DeBattista joed@itsa.ucsf.edu

View File

@@ -722,9 +722,6 @@ _open_archive (enum access_mode wanted_access)
break;
}
}
else if (verify_option)
archive = rmtopen (archive_name_array[0], O_RDWR | O_CREAT | O_BINARY,
MODE_RW, rsh_command_option);
else
switch (wanted_access)
{
@@ -740,8 +737,12 @@ _open_archive (enum access_mode wanted_access)
maybe_backup_file (archive_name_array[0], 1);
backed_up_flag = 1;
}
archive = rmtcreat (archive_name_array[0], MODE_RW,
rsh_command_option);
if (verify_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;
case ACCESS_UPDATE:

View File

@@ -51,6 +51,7 @@ TESTSUITE_AT = \
append01.at\
append02.at\
append03.at\
append04.at\
backup01.at\
chtype.at\
comprec.at\

60
tests/append04.at Normal file
View 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

View File

@@ -218,6 +218,7 @@ m4_include([append.at])
m4_include([append01.at])
m4_include([append02.at])
m4_include([append03.at])
m4_include([append04.at])
AT_BANNER([Transforms])
m4_include([xform-h.at])