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 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
|
||||
|
||||
11
src/buffer.c
11
src/buffer.c
@@ -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:
|
||||
|
||||
@@ -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
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([append02.at])
|
||||
m4_include([append03.at])
|
||||
m4_include([append04.at])
|
||||
|
||||
AT_BANNER([Transforms])
|
||||
m4_include([xform-h.at])
|
||||
|
||||
Reference in New Issue
Block a user