summaryrefslogtreecommitdiffstats
path: root/libreport/src/lib/concat_path_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'libreport/src/lib/concat_path_file.c')
-rw-r--r--libreport/src/lib/concat_path_file.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/libreport/src/lib/concat_path_file.c b/libreport/src/lib/concat_path_file.c
new file mode 100644
index 00000000..a17739e3
--- /dev/null
+++ b/libreport/src/lib/concat_path_file.c
@@ -0,0 +1,25 @@
+/*
+ * Utility routines.
+ *
+ * Copyright (C) 2001 Erik Andersen
+ *
+ * Licensed under GPLv2 or later.
+ */
+
+/* Concatenate path and filename to new allocated buffer.
+ * Add '/' only as needed (no duplicate // are produced).
+ * If path is NULL, it is assumed to be "/".
+ * filename should not be NULL.
+ */
+
+#include "libreport.h"
+
+char *concat_path_file(const char *path, const char *filename)
+{
+ if (!path)
+ path = "";
+ const char *end = path + strlen(path);
+ while (*filename == '/')
+ filename++;
+ return xasprintf("%s%s%s", path, (end != path && end[-1] != '/' ? "/" : ""), filename);
+}