]> Dogcows Code - chaz/tar/blobdiff - src/extract.c
Update FSF postal mail address.
[chaz/tar] / src / extract.c
index b1ca4e5c14891009e23faff4a81089a0bd2ffba4..d193807421913e8db12dab2a4fc1f2c9edd8bf0b 100644 (file)
@@ -17,7 +17,7 @@
 
    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
-   59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include <system.h>
 #include <quotearg.h>
@@ -440,7 +440,8 @@ file_newer_p (const char *file_name, struct tar_stat_info *tar_stat)
   if (stat (file_name, &st))
     {
       stat_warn (file_name);
-      return true; /* Be on the safe side */
+      /* Be on the safe side: if the file does exist assume it is newer */
+      return errno != ENOENT;
     }
   if (!S_ISDIR (st.st_mode)
       && st.st_mtime >= tar_stat->stat.st_mtime)
@@ -713,7 +714,7 @@ extract_file (char *file_name, int typeflag)
       {
        if (multi_volume_option)
          {
-           assign_string (&save_name, current_stat_info.file_name);
+           assign_string (&save_name, current_stat_info.orig_file_name);
            save_totsize = current_stat_info.stat.st_size;
            save_sizeleft = size;
          }
@@ -981,8 +982,6 @@ typedef int (*tar_extractor_t) (char *file_name, int typeflag);
 
 \f
 
-#define EXTRACT_OVER_PIPE (to_stdout_option || to_command_option)
-
 /* Prepare to extract a file. Find extractor function.
    Return zero if extraction should not proceed.  */
 
@@ -1074,7 +1073,7 @@ prepare_to_extract (char const *file_name, int typeflag, tar_extractor_t *fun)
 
     default:
       WARN ((0, 0,
-            _("%s: Unknown file type '%c', extracted as normal file"),
+            _("%s: Unknown file type `%c', extracted as normal file"),
             quotearg_colon (file_name), typeflag));
       *fun = extract_file;
     }
@@ -1099,7 +1098,8 @@ prepare_to_extract (char const *file_name, int typeflag, tar_extractor_t *fun)
     case KEEP_NEWER_FILES:
       if (file_newer_p (file_name, &current_stat_info))
        {
-         WARN ((0, 0, _("Current %s is newer"), quote (file_name)));
+         WARN ((0, 0, _("Current %s is newer or same age"),
+                quote (file_name)));
          return 0;
        }
       break;
@@ -1149,7 +1149,7 @@ extract_archive (void)
 
   /* Take a safety backup of a previously existing file.  */
 
-  if (backup_option && ! EXTRACT_OVER_PIPE)
+  if (backup_option)
     if (!maybe_backup_file (file_name, 0))
       {
        int e = errno;
This page took 0.021394 seconds and 4 git commands to generate.