chiark / gitweb /
implement drop-in directories
[elogind.git] / util.c
diff --git a/util.c b/util.c
index f752a248ec6e014a5f662d08450a79187f26ec10..7c3935353ce36df0e01df61582510b0033cd48f5 100644 (file)
--- a/util.c
+++ b/util.c
@@ -443,3 +443,28 @@ char *file_name_from_path(const char *p) {
 
         return (char*) p;
 }
+
+bool path_is_absolute(const char *p) {
+        assert(p);
+
+        return p[0] == '/';
+}
+
+bool is_path(const char *p) {
+
+        return !!strchr(p, '/');
+}
+
+char *path_make_absolute(const char *p, const char *prefix) {
+        char *r;
+
+        assert(p);
+
+        if (path_is_absolute(p) || !prefix)
+                return strdup(p);
+
+        if (asprintf(&r, "%s/%s", prefix, p) < 0)
+                return NULL;
+
+        return r;
+}