From bb733c2283b7f9ffb1f05d57457475adb91bd04a Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 9 Jan 2012 15:57:45 +0000 Subject: Make lilv_state_save take a full filename with extension. Use a proper path joining function for separator normalisation. git-svn-id: http://svn.drobilla.net/lad/trunk/lilv@3927 a436a847-0d15-0410-975c-d299462d15a1 --- src/util.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/util.c') diff --git a/src/util.c b/src/util.c index 7980b74..3857b9c 100644 --- a/src/util.c +++ b/src/util.c @@ -256,6 +256,21 @@ lilv_path_is_absolute(const char* path) return false; } +char* +lilv_path_join(const char* a, const char* b) +{ + const size_t a_len = strlen(a); + const size_t b_len = strlen(b); + const size_t pre_len = a_len - (lilv_is_dir_sep(a[a_len - 1]) ? 1 : 0); + char* path = calloc(1, a_len + b_len + 2); + memcpy(path, a, pre_len); + path[pre_len] = LILV_DIR_SEP[0]; + memcpy(path + pre_len + 1, + b + (lilv_is_dir_sep(b[0]) ? 1 : 0), + lilv_is_dir_sep(b[0]) ? b_len - 1 : b_len); + return path; +} + static void lilv_size_mtime(const char* path, off_t* size, time_t* time) { -- cgit v1.2.1