From: Sergey Poznyakoff Date: Thu, 23 Jan 2014 16:04:36 +0000 (+0200) Subject: Make sure transformed file names retain trailing slash in listing. X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=a09e840507c16357ec11b17a02e103c3a26adebc;p=chaz%2Ftar Make sure transformed file names retain trailing slash in listing. * src/list.c (simple_print_header): Print trailing slash if using the transformed name. Use had_trailing_slash instead of analyzing last byte if temp_name --- diff --git a/src/list.c b/src/list.c index 094f649..3a59f29 100644 --- a/src/list.c +++ b/src/list.c @@ -1111,7 +1111,10 @@ simple_print_header (struct tar_stat_info *st, union block *blk, if (verbose_option <= 1) { /* Just the fax, mam. */ - fprintf (stdlis, "%s\n", quotearg (temp_name)); + fputs (quotearg (temp_name), stdlis); + if (show_transformed_names_option && st->had_trailing_slash) + fputc ('/', stdlis); + fputc ('\n', stdlis); } else { @@ -1138,9 +1141,7 @@ simple_print_header (struct tar_stat_info *st, union block *blk, case GNUTYPE_SPARSE: case REGTYPE: case AREGTYPE: - modes[0] = '-'; - if (temp_name[strlen (temp_name) - 1] == '/') - modes[0] = 'd'; + modes[0] = st->had_trailing_slash ? 'd' : '-'; break; case LNKTYPE: modes[0] = 'h'; @@ -1251,6 +1252,8 @@ simple_print_header (struct tar_stat_info *st, union block *blk, datewidth, time_stamp); fprintf (stdlis, " %s", quotearg (temp_name)); + if (show_transformed_names_option && st->had_trailing_slash) + fputc ('/', stdlis); switch (blk->header.typeflag) {