]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
path-util: port path_join() over to path_join_many()
authorLennart Poettering <lennart@poettering.net>
Mon, 30 Jul 2018 19:29:34 +0000 (21:29 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 29 Nov 2018 19:03:56 +0000 (20:03 +0100)
We should probably drop path_join() entirely in the long run (and
then rename path_join_many() to it?), but for now let's make one a
wrapper for the other.

src/basic/path-util.c
src/basic/path-util.h

index ba31c858fd575de8e43752409a4158f768e7487e..7d1e0f3f2da311a14db488f901bbb55ca170945a 100644 (file)
@@ -481,20 +481,6 @@ bool path_equal_or_files_same(const char *a, const char *b, int flags) {
         return path_equal(a, b) || files_same(a, b, flags) > 0;
 }
 
-char* path_join(const char *root, const char *path, const char *rest) {
-        assert(path);
-
-        if (!isempty(root))
-                return strjoin(root, endswith(root, "/") ? "" : "/",
-                               path[0] == '/' ? path+1 : path,
-                               rest ? (endswith(path, "/") ? "" : "/") : NULL,
-                               rest && rest[0] == '/' ? rest+1 : rest);
-        else
-                return strjoin(path,
-                               rest ? (endswith(path, "/") ? "" : "/") : NULL,
-                               rest && rest[0] == '/' ? rest+1 : rest);
-}
-
 char* path_join_many_internal(const char *first, ...) {
         char *joined, *q;
         const char *p;
index 868d64e17d093a1d68b642f955b632a3a290e3cd..8bda450ff3ee450647094e2500e914583acfc802 100644 (file)
@@ -49,9 +49,13 @@ char* path_startswith(const char *path, const char *prefix) _pure_;
 int path_compare(const char *a, const char *b) _pure_;
 bool path_equal(const char *a, const char *b) _pure_;
 bool path_equal_or_files_same(const char *a, const char *b, int flags);
-char* path_join(const char *root, const char *path, const char *rest);
 char* path_join_many_internal(const char *first, ...) _sentinel_;
 #define path_join_many(x, ...) path_join_many_internal(x, __VA_ARGS__, NULL)
+static inline char* path_join(const char *root, const char *path, const char *rest) {
+        assert(path);
+
+        return path_join_many(strempty(root), path, rest);
+}
 
 char* path_simplify(char *path, bool kill_dots);