basic: modernize conf-files.c a bit
This commit is contained in:
parent
8ad182a124
commit
31d5192d0c
|
@ -41,6 +41,7 @@
|
|||
static int files_add(Hashmap *h, const char *root, const char *path, const char *suffix) {
|
||||
_cleanup_closedir_ DIR *dir = NULL;
|
||||
const char *dirpath;
|
||||
struct dirent *de;
|
||||
int r;
|
||||
|
||||
assert(path);
|
||||
|
@ -55,18 +56,9 @@ static int files_add(Hashmap *h, const char *root, const char *path, const char
|
|||
return -errno;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
struct dirent *de;
|
||||
FOREACH_DIRENT(de, dir, return -errno) {
|
||||
char *p;
|
||||
|
||||
errno = 0;
|
||||
de = readdir(dir);
|
||||
if (!de && errno != 0)
|
||||
return -errno;
|
||||
|
||||
if (!de)
|
||||
break;
|
||||
|
||||
if (!dirent_is_file_with_suffix(de, suffix))
|
||||
continue;
|
||||
|
||||
|
@ -116,17 +108,15 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const
|
|||
|
||||
STRV_FOREACH(p, dirs) {
|
||||
r = files_add(fh, root, *p, suffix);
|
||||
if (r == -ENOMEM) {
|
||||
if (r == -ENOMEM)
|
||||
return r;
|
||||
} else if (r < 0)
|
||||
log_debug_errno(r, "Failed to search for files in %s: %m",
|
||||
*p);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to search for files in %s, ignoring: %m", *p);
|
||||
}
|
||||
|
||||
files = hashmap_get_strv(fh);
|
||||
if (files == NULL) {
|
||||
if (!files)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
qsort_safe(files, hashmap_size(fh), sizeof(char *), base_cmp);
|
||||
*strv = files;
|
||||
|
|
Loading…
Reference in New Issue