]> Dogcows Code - chaz/tar/blobdiff - src/tar.c
Test deletion of non-existing members
[chaz/tar] / src / tar.c
index b127109e2e71c999195dc53b574d34204bf4ef20..31d7d3064b37e0a3c10541b2ef9a304ab4306cbc 100644 (file)
--- a/src/tar.c
+++ b/src/tar.c
@@ -1417,7 +1417,7 @@ decode_options (int argc, char **argv)
       else
        {
          /* UNIX98 compatibility */
-         same_owner_option = 1;
+         same_owner_option = -1;
        }
     }
 
@@ -1464,6 +1464,18 @@ decode_options (int argc, char **argv)
                          _("--occurrence cannot be used in the requested operation mode")));
     }
 
+  if (seekable_archive && subcommand_option == DELETE_SUBCOMMAND)
+    {
+      /* The current code in delete.c is based on the assumption that
+        skip_member() reads all data from the archive. So, we should
+        make sure it won't use seeks. On the other hand, the same code
+        depends on the ability to backspace a record in the archive,
+        so setting seekable_archive to false is technically incorrect.
+         However, it is tested only in skip_member(), so it's not a
+        problem. */
+      seekable_archive = false;
+    }
+  
   if (archive_names == 0)
     {
       /* If no archive file name given, try TAPE from the environment, or
This page took 0.025881 seconds and 4 git commands to generate.