From 3b12e4cc66427df505939702b9213b1095d2d399 Mon Sep 17 00:00:00 2001 From: X7123M3-256 Date: Sat, 14 Jan 2017 12:39:38 +0000 Subject: [PATCH] Add function to get an absolute path from a relative one --- src/openrct2/platform/platform.h | 1 + src/openrct2/platform/posix.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/openrct2/platform/platform.h b/src/openrct2/platform/platform.h index ac93a317c5..62f076a89b 100644 --- a/src/openrct2/platform/platform.h +++ b/src/openrct2/platform/platform.h @@ -167,6 +167,7 @@ bool platform_original_game_data_exists(const utf8 *path); time_t platform_file_get_modified_time(const utf8* path); bool platform_ensure_directory_exists(const utf8 *path); bool platform_directory_delete(const utf8 *path); +char* platform_get_absolute_path(const char* relative_path,const char* base_path); bool platform_lock_single_instance(); sint32 platform_enumerate_files_begin(const utf8 *pattern); bool platform_enumerate_files_next(sint32 handle, file_info *outFileInfo); diff --git a/src/openrct2/platform/posix.c b/src/openrct2/platform/posix.c index 3891930217..c39d32ae0b 100644 --- a/src/openrct2/platform/posix.c +++ b/src/openrct2/platform/posix.c @@ -262,6 +262,19 @@ bool platform_directory_delete(const utf8 *path) return true; } +char* platform_get_absolute_path(const char* relative_path,const char* base_path) +{ +char path[MAX_PATH]; + +//This is to get around the fact that dirname() doesn't take a const char* +char base_path_copy[MAX_PATH]; +safe_strcpy(base_path_copy,base_path,MAX_PATH); + +snprintf(path,MAX_PATH,"%s/%s",dirname(base_path_copy),relative_path); +return realpath(path,NULL); +} + + bool platform_lock_single_instance() { char pidFilePath[MAX_PATH];