summaryrefslogtreecommitdiffstats
path: root/src/filesystem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/filesystem.c')
-rw-r--r--src/filesystem.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/filesystem.c b/src/filesystem.c
index c8a58c1..0ec9802 100644
--- a/src/filesystem.c
+++ b/src/filesystem.c
@@ -193,6 +193,28 @@ lilv_path_parent(const char* path)
}
char*
+lilv_path_filename(const char* path)
+{
+ const size_t path_len = strlen(path);
+ size_t last_sep = path_len;
+ for (size_t i = 0; i < path_len; ++i) {
+ if (lilv_is_dir_sep(path[i])) {
+ last_sep = i;
+ }
+ }
+
+ if (last_sep >= path_len) {
+ return lilv_strdup(path);
+ }
+
+ const size_t ret_len = path_len - last_sep;
+ char* const ret = (char*)calloc(ret_len + 1, 1);
+
+ strncpy(ret, path + last_sep + 1, ret_len);
+ return ret;
+}
+
+char*
lilv_path_join(const char* a, const char* b)
{
if (!a) {