]> Dogcows Code - chaz/tar/commitdiff
Fix interacton of --verbose and --append.
authorSergey Poznyakoff <gray@gnu.org.ua>
Sun, 4 Aug 2013 16:00:46 +0000 (19:00 +0300)
committerSergey Poznyakoff <gray@gnu.org.ua>
Sun, 4 Aug 2013 16:00:46 +0000 (19:00 +0300)
* 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.

THANKS
src/buffer.c
tests/Makefile.am
tests/append04.at [new file with mode: 0644]
tests/testsuite.at

diff --git a/THANKS b/THANKS
index c30df3375b8f521f5995f54db535550c4b639d77..65f459c9a33ef72812af804463f11cf614d06765 100644 (file)
--- a/THANKS
+++ b/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
index 1452940be72a31fde8caae50cad880d3a4737181..97084ab5caa0d76a43abd053e5a11d9368996226 100644 (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:
index e13b0794b75f2a8fde2e060e9a79902e70a2417d..ab20552a96de93bdedf70a303350483da8f536a3 100644 (file)
@@ -51,6 +51,7 @@ TESTSUITE_AT = \
  append01.at\
  append02.at\
  append03.at\
+ append04.at\
  backup01.at\
  chtype.at\
  comprec.at\
diff --git a/tests/append04.at b/tests/append04.at
new file mode 100644 (file)
index 0000000..43b32dd
--- /dev/null
@@ -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
index f1b6cc3d3e617ead0c31442a95daa463984abe1f..605cca3b367471fb50555520b8916e4c626a592e 100644 (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])
This page took 0.024554 seconds and 4 git commands to generate.