X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Flist.c;h=4ecd5b1cd1999da9f544708538a9c44909ab026b;hb=450636adfad8125dc0eb7c47dc820a93f23134ef;hp=59374ff8cbaf6fdb4943511f49e20ea0abdf01b5;hpb=f29b54b2377e4c5eee21863bc58a183f077217d7;p=chaz%2Ftar diff --git a/src/list.c b/src/list.c index 59374ff..4ecd5b1 100644 --- a/src/list.c +++ b/src/list.c @@ -421,6 +421,7 @@ read_header (bool raw_extended_headers) recent_long_name = 0; recent_long_name_blocks = 0; } + assign_string (&orig_file_name, name); assign_string (¤t_file_name, name); current_trailing_slash = strip_trailing_slashes (current_file_name); @@ -903,6 +904,8 @@ print_header (off_t block_ordinal) { char modes[11]; char const *time_stamp; + char *temp_name = orig_file_name ? orig_file_name : current_file_name; + /* These hold formatted ints. */ char uform[UINTMAX_STRSIZE_BOUND], gform[UINTMAX_STRSIZE_BOUND]; char *user, *group; @@ -925,7 +928,7 @@ print_header (off_t block_ordinal) if (verbose_option <= 1) { /* Just the fax, mam. */ - fprintf (stdlis, "%s\n", quotearg (current_file_name)); + fprintf (stdlis, "%s\n", quotearg (temp_name)); } else { @@ -956,7 +959,7 @@ print_header (off_t block_ordinal) case REGTYPE: case AREGTYPE: modes[0] = '-'; - if (current_file_name[strlen (current_file_name) - 1] == '/') + if (temp_name[strlen (temp_name) - 1] == '/') modes[0] = 'd'; break; case LNKTYPE: @@ -1070,7 +1073,7 @@ print_header (off_t block_ordinal) fprintf (stdlis, "%s %s/%s %*s%s %s", modes, user, group, ugswidth - pad, "", size, time_stamp); - fprintf (stdlis, " %s", quotearg (current_file_name)); + fprintf (stdlis, " %s", quotearg (temp_name)); switch (current_header->header.typeflag) {