Hi,

Thanks for reporting.  Please apply the attached patch.

Regards,
Sergey
>From a09e840507c16357ec11b17a02e103c3a26adebc Mon Sep 17 00:00:00 2001
From: Sergey Poznyakoff <g...@gnu.org.ua>
Date: Thu, 23 Jan 2014 18:04:36 +0200
Subject: [PATCH] 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
---
 src/list.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

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)
 	{
--
1.7.12.1

Reply via email to