X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fnames.c;h=0a282b9c071f516eb6bf58e021877e063bfe6798;hb=df59690240b9a41d59ebe9e809faffd93f340020;hp=eaa94d284aa7257c08970ff877155b1e3542e9aa;hpb=1bcbbcf1ff2c537ffa970dbf82e3843d4ad110e5;p=chaz%2Ftar diff --git a/src/names.c b/src/names.c index eaa94d2..0a282b9 100644 --- a/src/names.c +++ b/src/names.c @@ -912,9 +912,9 @@ collect_and_sort_names (void) read_directory_file (); } - for (name = namelist; name; name = next_name) + num_names = 0; + for (name = namelist; name; name = name->next, num_names++) { - next_name = name->next; if (name->found_count || name->dir_contents) continue; if (name->matching_flags & EXCLUDE_WILDCARDS) @@ -934,15 +934,10 @@ collect_and_sort_names (void) if (S_ISDIR (statbuf.st_mode)) { name->found_count++; - if (name->found_count == 1) - add_hierarchy_to_namelist (name, statbuf.st_dev, true); + add_hierarchy_to_namelist (name, statbuf.st_dev, true); } } - num_names = 0; - for (name = namelist; name; name = name->next) - num_names++; - namelist = merge_sort (namelist, num_names, compare_names); num_names = 0; @@ -980,7 +975,8 @@ collect_and_sort_names (void) } } name->found_count = 0; - hash_insert (nametab, name); + if (!hash_insert (nametab, name)) + xalloc_die (); prev_name = name; num_names++; }