]> Dogcows Code - chaz/tar/blobdiff - src/misc.c
Warn about existing files in keep-old-files mode (complements 8f390db9).
[chaz/tar] / src / misc.c
index 763c661e9ca704d6193633baaa3020628d217110..b75f2ab4e419e4f9a928e75b25342630f2ad17ec 100644 (file)
@@ -37,8 +37,7 @@
 void
 assign_string (char **string, const char *value)
 {
-  if (*string)
-    free (*string);
+  free (*string);
   *string = value ? xstrdup (value) : 0;
 }
 
@@ -728,7 +727,6 @@ chdir_do (int i)
 {
   if (chdir_current != i)
     {
-      static size_t counter;
       struct wd *curr = &wd[i];
       int fd = curr->fd;
 
@@ -736,7 +734,8 @@ chdir_do (int i)
        {
          if (! IS_ABSOLUTE_FILE_NAME (curr->name))
            chdir_do (i - 1);
-         fd = openat (chdir_fd, curr->name, open_searchdir_flags);
+         fd = openat (chdir_fd, curr->name,
+                      open_searchdir_flags & ~ O_NOFOLLOW);
          if (fd < 0)
            open_fatal (curr->name);
 
@@ -856,21 +855,6 @@ file_removed_diag (const char *name, bool top_level,
     diagfn (name);
 }
 
-void
-dir_removed_diag (const char *name, bool top_level,
-                  void (*diagfn) (char const *name))
-{
-  if (!top_level && errno == ENOENT)
-    {
-      WARNOPT (WARN_FILE_REMOVED,
-              (0, 0, _("%s: Directory removed before we read it"),
-               quotearg_colon (name)));
-      set_exit_status (TAREXIT_DIFFERS);
-    }
-  else
-    diagfn (name);
-}
-
 void
 write_fatal_details (char const *name, ssize_t status, size_t size)
 {
This page took 0.025154 seconds and 4 git commands to generate.