Fix tar -c -l file file
When the same file is added several times to the archive, count
correctly the number of hard links. See also 37ddfb0b.
* src/create.c (dump_hard_link): Don't decrease nlink if it is 0.
* tests/link04.at: Test -cl options.
This commit is contained in:
@@ -1472,8 +1472,8 @@ dump_hard_link (struct tar_stat_info *st)
|
||||
/* We found a link. */
|
||||
char const *link_name = safer_name_suffix (duplicate->name, true,
|
||||
absolute_names_option);
|
||||
|
||||
duplicate->nlink--;
|
||||
if (duplicate->nlink)
|
||||
duplicate->nlink--;
|
||||
|
||||
block_ordinal = current_block_ordinal ();
|
||||
assign_string (&st->link_name, link_name);
|
||||
|
||||
@@ -39,6 +39,10 @@ tar tvf archive | sed '
|
||||
s,.*[[0-9]] dir/,dir/,
|
||||
' | sort
|
||||
|
||||
echo --
|
||||
|
||||
tar cfl archive dir dir
|
||||
|
||||
echo ==
|
||||
|
||||
tar chf archive dir
|
||||
@@ -55,6 +59,7 @@ dir/file
|
||||
dir/file link to dir/file
|
||||
dir/symlink -> file
|
||||
dir/symlink link to dir/symlink
|
||||
--
|
||||
==
|
||||
dir/
|
||||
dir/FOO
|
||||
|
||||
Reference in New Issue
Block a user