X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fxheader.c;h=70d287c05c58f264807f6f0216ff16a7e8ec553e;hb=e5ef01710ab4be17e8932f196b562244c3842c06;hp=f5e119946fcf68d0cbcb313e7f75a593d0a36991;hpb=d0201294c0978972fa1ce303d4b56de5cef48ee3;p=chaz%2Ftar diff --git a/src/xheader.c b/src/xheader.c index f5e1199..70d287c 100644 --- a/src/xheader.c +++ b/src/xheader.c @@ -264,7 +264,7 @@ xheader_format_name (struct tar_stat_info *st, const char *fmt, size_t n) case 'f': if (st) { - base = base_name (st->orig_file_name); + base = last_component (st->orig_file_name); len += strlen (base) - 2; } break; @@ -647,12 +647,10 @@ void xheader_read (union block *p, size_t size) { size_t j = 0; - size_t nblocks; free (extended_header.buffer); size += BLOCKSIZE; extended_header.size = size; - nblocks = (size + BLOCKSIZE - 1) / BLOCKSIZE; extended_header.buffer = xmalloc (size + 1); extended_header.buffer[size] = '\0'; @@ -782,7 +780,7 @@ xheader_string_end (char const *keyword) if (size != p) { ERROR ((0, 0, - _("Generated keyword/value pair is too long (keyword=%s, length=%s"), + _("Generated keyword/value pair is too long (keyword=%s, length=%s)"), keyword, nbuf)); obstack_free (extended_header.stk, obstack_finish (extended_header.stk)); return false; @@ -1094,9 +1092,10 @@ ctime_decoder (struct tar_stat_info *st, static void mtime_coder (struct tar_stat_info const *st, char const *keyword, - struct xheader *xhdr, void const *data __attribute__ ((unused))) + struct xheader *xhdr, void const *data) { - code_time (st->mtime, keyword, xhdr); + const struct timespec mtime = data ? *(struct timespec *) data : st->mtime; + code_time (mtime, keyword, xhdr); } static void