diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-06-19 15:20:13 +0200 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2019-06-21 08:42:55 +0900 |
commit | c6134d3e2f1d1d17b32b6e06556cd0c5429bc78a (patch) | |
tree | 14163e4dffb3f2b12dc3fe84e9d676d3521f53cd /src/basic/conf-files.c | |
parent | f66ad46066a9911192f0b49eb06dae7dafc0c983 (diff) | |
download | systemd-c6134d3e2f1d1d17b32b6e06556cd0c5429bc78a.tar.gz |
path-util: get rid of prefix_root()
prefix_root() is equivalent to path_join() in almost all ways, hence
let's remove it.
There are subtle differences though: prefix_root() will try shorten
multiple "/" before and after the prefix. path_join() doesn't do that.
This means prefix_root() might return a string shorter than both its
inputs combined, while path_join() never does that. I like the
path_join() semantics better, hence I think dropping prefix_root() is
totally OK. In the end the strings generated by both functon should
always be identical in terms of path_equal() if not streq().
This leaves prefix_roota() in place. Ideally we'd have path_joina(), but
I don't think we can reasonably implement that as a macro. or maybe we
can? (if so, sounds like something for a later PR)
Also add in a few missing OOM checks
Diffstat (limited to 'src/basic/conf-files.c')
-rw-r--r-- | src/basic/conf-files.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/basic/conf-files.c b/src/basic/conf-files.c index 7c85022f08..a0d17e8a0e 100644 --- a/src/basic/conf-files.c +++ b/src/basic/conf-files.c @@ -207,7 +207,7 @@ int conf_files_insert(char ***strv, const char *root, char **dirs, const char *p _cleanup_free_ char *rdir = NULL; char *p1, *p2; - rdir = prefix_root(root, *dir); + rdir = path_join(root, *dir); if (!rdir) return -ENOMEM; @@ -221,7 +221,7 @@ int conf_files_insert(char ***strv, const char *root, char **dirs, const char *p if (p2) { /* Our new entry has higher priority */ - t = prefix_root(root, path); + t = path_join(root, path); if (!t) return log_oom(); @@ -238,7 +238,7 @@ int conf_files_insert(char ***strv, const char *root, char **dirs, const char *p } /* The new file has lower priority than all the existing entries */ - t = prefix_root(root, path); + t = path_join(root, path); if (!t) return -ENOMEM; @@ -313,7 +313,7 @@ int conf_files_list_with_replacement( if (r < 0) return log_error_errno(r, "Failed to extend config file list: %m"); - p = prefix_root(root, replacement); + p = path_join(root, replacement); if (!p) return log_oom(); } |