X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcreate.c;h=413115cf06e974834f39f0f551f5b10fd420c1cc;hb=969d2b986b5848fe3d20003ea268690c12ae2ed3;hp=de81639e2244f7c89afd0d6e597f77c4624adcc2;hpb=eaaadcfd366e8620385944a251da932cf9c843bc;p=chaz%2Ftar diff --git a/src/create.c b/src/create.c index de81639..413115c 100644 --- a/src/create.c +++ b/src/create.c @@ -1616,6 +1616,7 @@ dump_file0 (struct tar_stat_info *st, const char *p, case dump_status_ok: case dump_status_short: mv_end (); + file_count_links (st); break; case dump_status_fail: @@ -1625,8 +1626,6 @@ dump_file0 (struct tar_stat_info *st, const char *p, abort (); } - file_count_links (st); - ok = status == dump_status_ok; } @@ -1706,6 +1705,7 @@ dump_file0 (struct tar_stat_info *st, const char *p, } buffer[size] = '\0'; assign_string (&st->link_name, buffer); + transform_name (&st->link_name); if (NAME_FIELD_SIZE - (archive_format == OLDGNU_FORMAT) < size) write_long_link (st); @@ -1714,7 +1714,7 @@ dump_file0 (struct tar_stat_info *st, const char *p, header = start_header (st); if (!header) return; - tar_copy_str (header->header.linkname, buffer, NAME_FIELD_SIZE); + tar_copy_str (header->header.linkname, st->link_name, NAME_FIELD_SIZE); header->header.typeflag = SYMTYPE; finish_header (st, header, block_ordinal); /* nothing more to do to it */