On 11/07/2012 04:30 AM, Live user wrote:
John Stanley wrote:

Hi,
I was wondering if it would be possible in the 'skip-old-files' option
warning messages, to have a distinction made between existing files and

existing directories, i.e., instead of, e.g., printing:

tar: ./usr/local: skipping existing file

print:

tar: ./usr/local/: skipping existing directory

This would make it much easier to parse existing files and existing
directories.  I have been using the following simple patch to handle
this in my work:

+++ tar-master-1.26.90.new/src/extract.c        2012-11-06
18:18:28.853013706 -0500
@@ -644,8 +644,12 @@ maybe_recoverable (char *file_name, bool
        switch (old_files_option)
         {
         case SKIP_OLD_FILES:
-         WARNOPT (WARN_EXISTING_FILE,
-                  (0, 0, _("%s: skipping existing file"), file_name));
+         if (current_stat_info.had_trailing_slash)
+           WARNOPT (WARN_EXISTING_FILE,
+                    (0, 0, _("%s/: skipping existing directory"),
file_name));
+         else
+           WARNOPT (WARN_EXISTING_FILE,
+                    (0, 0, _("%s: skipping existing file"),
file_name));
           return RECOVER_SKIP;

         case KEEP_OLD_FILES:
Directories don't always have trailing slash in tar archives, so you should 
check for both the trailing slash or the directory attribute.
I guess that would mean adding a 'typeflag' argument to maybe_recoverable (), eg

maybe_recoverable (char *file_name, bool regular, int typeflag, bool *interdir_made)
?





Reply via email to