chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: remove normalize_env_assignment(), it's unused
[elogind.git]
/
src
/
shared
/
conf-files.c
diff --git
a/src/shared/conf-files.c
b/src/shared/conf-files.c
index 64ce8a0e57fb70d4c90479b2d3f37528f45a3dfd..9ab08355e35cff0819462d4b2494d995643ff5d5 100644
(file)
--- a/
src/shared/conf-files.c
+++ b/
src/shared/conf-files.c
@@
-19,13
+19,10
@@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include <assert.h>
#include <string.h>
#include <string.h>
-#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
-#include <sys/stat.h>
#include <dirent.h>
#include "macro.h"
#include <dirent.h>
#include "macro.h"
@@
-44,7
+41,7
@@
static int files_add(Hashmap *h, const char *root, const char *path, const char
assert(path);
assert(suffix);
assert(path);
assert(suffix);
- dirpath = str
append
a(root ? root : "", path);
+ dirpath = str
join
a(root ? root : "", path);
dir = opendir(dirpath);
if (!dir) {
dir = opendir(dirpath);
if (!dir) {
@@
-98,7
+95,7
@@
static int base_cmp(const void *a, const void *b) {
}
static int conf_files_list_strv_internal(char ***strv, const char *suffix, const char *root, char **dirs) {
}
static int conf_files_list_strv_internal(char ***strv, const char *suffix, const char *root, char **dirs) {
-
Hashmap *fh
;
+
_cleanup_hashmap_free_ Hashmap *fh = NULL
;
char **files, **p;
int r;
char **files, **p;
int r;
@@
-109,30
+106,27
@@
static int conf_files_list_strv_internal(char ***strv, const char *suffix, const
if (!path_strv_resolve_uniq(dirs, root))
return -ENOMEM;
if (!path_strv_resolve_uniq(dirs, root))
return -ENOMEM;
- fh = hashmap_new(
string_hash_func, string_compare_func
);
+ fh = hashmap_new(
&string_hash_ops
);
if (!fh)
return -ENOMEM;
STRV_FOREACH(p, dirs) {
r = files_add(fh, root, *p, suffix);
if (r == -ENOMEM) {
if (!fh)
return -ENOMEM;
STRV_FOREACH(p, dirs) {
r = files_add(fh, root, *p, suffix);
if (r == -ENOMEM) {
- hashmap_free_free(fh);
return r;
} else if (r < 0)
return r;
} else if (r < 0)
- log_debug
("Failed to search for files in %s: %s
",
-
*p, strerror(-r)
);
+ log_debug
_errno(r, "Failed to search for files in %s: %m
",
+
*p
);
}
files = hashmap_get_strv(fh);
if (files == NULL) {
}
files = hashmap_get_strv(fh);
if (files == NULL) {
- hashmap_free_free(fh);
return -ENOMEM;
}
qsort_safe(files, hashmap_size(fh), sizeof(char *), base_cmp);
*strv = files;
return -ENOMEM;
}
qsort_safe(files, hashmap_size(fh), sizeof(char *), base_cmp);
*strv = files;
- hashmap_free(fh);
return 0;
}
return 0;
}