|
@@ -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++;
|
|
|
}
|