chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
conf-files: include root in returned file paths
[elogind.git]
/
src
/
shared
/
conf-files.c
diff --git
a/src/shared/conf-files.c
b/src/shared/conf-files.c
index 44e137e84c4118d78e19956f59208d322995dcfb..64ce8a0e57fb70d4c90479b2d3f37528f45a3dfd 100644
(file)
--- a/
src/shared/conf-files.c
+++ b/
src/shared/conf-files.c
@@
-37,20
+37,16
@@
#include "hashmap.h"
#include "conf-files.h"
#include "hashmap.h"
#include "conf-files.h"
-static int files_add(Hashmap *h, const char *
dirpath, const char *suffix, const char *root
) {
+static int files_add(Hashmap *h, const char *
root, const char *path, const char *suffix
) {
_cleanup_closedir_ DIR *dir = NULL;
_cleanup_closedir_ DIR *dir = NULL;
+ char *dirpath;
- assert(
dir
path);
+ assert(path);
assert(suffix);
assert(suffix);
- if (isempty(root))
- dir = opendir(dirpath);
- else {
- const char *p;
+ dirpath = strappenda(root ? root : "", path);
- p = strappenda3(root, "/", dirpath);
- dir = opendir(p);
- }
+ dir = opendir(dirpath);
if (!dir) {
if (errno == ENOENT)
return 0;
if (!dir) {
if (errno == ENOENT)
return 0;
@@
-118,7
+114,7
@@
static int conf_files_list_strv_internal(char ***strv, const char *suffix, const
return -ENOMEM;
STRV_FOREACH(p, dirs) {
return -ENOMEM;
STRV_FOREACH(p, dirs) {
- r = files_add(fh,
*p, suffix, root
);
+ r = files_add(fh,
root, *p, suffix
);
if (r == -ENOMEM) {
hashmap_free_free(fh);
return r;
if (r == -ENOMEM) {
hashmap_free_free(fh);
return r;