]> Dogcows Code - chaz/tar/blobdiff - src/list.c
Assign orig_file_name
[chaz/tar] / src / list.c
index baee9e88b493d23993e5e44194e1737e682517fd..16a6970a58f618c1c16aeb0c5ccd2d6b0757134c 100644 (file)
@@ -222,7 +222,7 @@ list_archive (void)
       set_next_block_after (current_header);
       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;
        }
       for (size = current_stat_info.stat.st_size; size > 0; size -= written)
@@ -258,7 +258,7 @@ list_archive (void)
     }
 
   if (multi_volume_option)
-    assign_string (&save_name, current_stat_info.file_name);
+    assign_string (&save_name, current_stat_info.orig_file_name);
 
   skip_member ();
 
@@ -1098,7 +1098,9 @@ print_header (struct tar_stat_info *st, off_t block_ordinal)
 
       /* User and group names.  */
 
-      if (st->uname && current_format != V7_FORMAT
+      if (st->uname
+         && st->uname[0]
+         && current_format != V7_FORMAT
          && !numeric_owner_option)
        user = st->uname;
       else
@@ -1121,7 +1123,9 @@ print_header (struct tar_stat_info *st, off_t block_ordinal)
            }
        }
 
-      if (st->gname && current_format != V7_FORMAT
+      if (st->gname
+         && st->gname[0]
+         && current_format != V7_FORMAT
          && !numeric_owner_option)
        group = st->gname;
       else
@@ -1305,7 +1309,7 @@ skip_member (void)
   char save_typeflag = current_header->header.typeflag;
   set_next_block_after (current_header);
 
-  assign_string (&save_name, current_stat_info.file_name);
+  assign_string (&save_name, current_stat_info.orig_file_name);
 
   if (current_stat_info.is_sparse)
     sparse_skip_file (&current_stat_info);
This page took 0.027042 seconds and 4 git commands to generate.