[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-tar] gnu tar bug: --show-transformed-names loses trailing slash
From: |
Sergey Poznyakoff |
Subject: |
Re: [Bug-tar] gnu tar bug: --show-transformed-names loses trailing slash in --list |
Date: |
Thu, 23 Jan 2014 18:00:47 +0200 |
Hi,
Thanks for reporting. Please apply the attached patch.
Regards,
Sergey
>From a09e840507c16357ec11b17a02e103c3a26adebc Mon Sep 17 00:00:00 2001
From: Sergey Poznyakoff <address@hidden>
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