2023-05-24 14:27:39 +00:00
|
|
|
/************************************************************//**
|
|
|
|
*
|
|
|
|
* @file: platform_path.h
|
|
|
|
* @author: Martin Fouilleul
|
|
|
|
* @date: 24/05/2023
|
|
|
|
*
|
|
|
|
*****************************************************************/
|
|
|
|
#ifndef __PLATFORM_PATH_H_
|
|
|
|
#define __PLATFORM_PATH_H_
|
|
|
|
|
|
|
|
#include"util/strings.h"
|
|
|
|
|
2023-06-26 14:06:26 +00:00
|
|
|
/*NOTE:
|
|
|
|
by convention, functions that take an arena and return a path
|
|
|
|
allocated on that arena allocate 1 more character and null-terminate
|
|
|
|
the string.
|
|
|
|
*/
|
|
|
|
|
2023-05-24 14:27:39 +00:00
|
|
|
MP_API str8 path_slice_directory(str8 path);
|
|
|
|
MP_API str8 path_slice_filename(str8 path);
|
|
|
|
|
|
|
|
MP_API str8_list path_split(mem_arena* arena, str8 path);
|
|
|
|
MP_API str8 path_join(mem_arena* arena, str8_list elements);
|
2023-05-24 18:17:03 +00:00
|
|
|
MP_API str8 path_append(mem_arena* arena, str8 parent, str8 relPath);
|
2023-05-24 14:27:39 +00:00
|
|
|
|
2023-06-15 16:27:33 +00:00
|
|
|
MP_API bool path_is_absolute(str8 path);
|
2023-05-25 18:08:38 +00:00
|
|
|
MP_API str8 path_executable(mem_arena* arena);
|
|
|
|
MP_API str8 path_canonical(mem_arena* arena, str8 path);
|
|
|
|
|
|
|
|
// helper: gets the path from path_executable() and appends relPath
|
|
|
|
MP_API str8 path_executable_relative(mem_arena* arena, str8 relPath);
|
2023-05-24 14:27:39 +00:00
|
|
|
|
|
|
|
#endif //__PLATFORM_PATH_H_
|