diff --git a/intern/ghost/GHOST_Path-api.h b/intern/ghost/GHOST_Path-api.h index d303654d3e6..42c7cc75668 100644 --- a/intern/ghost/GHOST_Path-api.h +++ b/intern/ghost/GHOST_Path-api.h @@ -30,13 +30,19 @@ extern GHOST_TSuccess GHOST_DisposeSystemPaths(void); /** * Determine the base dir in which shared resources are located. It will first try to use * "unpack and run" path, then look for properly installed path, including versioning. - * \return Unsigned char string pointing to system dir (eg /usr/share/blender/). + * \return Unsigned char string pointing to system dir (eg `/usr/share/blender/`). + * + * \note typically: `BKE_appdir_resource_path_id(BLENDER_RESOURCE_PATH_SYSTEM, false)` should be + * used instead of this function directly as it ensures environment variable overrides are used. */ extern const char *GHOST_getSystemDir(int version, const char *versionstr); /** * Determine the base dir in which user configuration is stored, including versioning. * \return Unsigned char string pointing to user dir (eg ~). + * + * \note typically: `BKE_appdir_resource_path_id(BLENDER_RESOURCE_PATH_USER, false)` should be + * used instead of this function directly as it ensures environment variable overrides are used. */ extern const char *GHOST_getUserDir(int version, const char *versionstr); diff --git a/source/blender/blenkernel/BKE_appdir.h b/source/blender/blenkernel/BKE_appdir.h index 0f00ab9c321..a67c6c27b47 100644 --- a/source/blender/blenkernel/BKE_appdir.h +++ b/source/blender/blenkernel/BKE_appdir.h @@ -90,7 +90,10 @@ const char *BKE_appdir_folder_id_user_notest(int folder_id, * Returns the path of the top-level version-specific local, user or system directory. * If check_is_dir, then the result will be NULL if the directory doesn't exist. */ -const char *BKE_appdir_folder_id_version(int folder_id, int version, bool check_is_dir); +const char *BKE_appdir_resource_path_id_with_version(int folder_id, + bool check_is_dir, + int version); +const char *BKE_appdir_resource_path_id(int folder_id, bool check_is_dir); /** * Check if this is an install with user files kept together diff --git a/source/blender/blenkernel/intern/appdir.c b/source/blender/blenkernel/intern/appdir.c index 7c409f1095b..b2f1e75cd1d 100644 --- a/source/blender/blenkernel/intern/appdir.c +++ b/source/blender/blenkernel/intern/appdir.c @@ -760,9 +760,9 @@ const char *BKE_appdir_folder_id_create(const int folder_id, const char *subfold return path; } -const char *BKE_appdir_folder_id_version(const int folder_id, - const int version, - const bool check_is_dir) +const char *BKE_appdir_resource_path_id_with_version(const int folder_id, + const bool check_is_dir, + const int version) { static char path[FILE_MAX] = ""; bool ok; @@ -785,6 +785,11 @@ const char *BKE_appdir_folder_id_version(const int folder_id, return ok ? path : NULL; } +const char *BKE_appdir_resource_path_id(const int folder_id, const bool check_is_dir) +{ + return BKE_appdir_resource_path_id_with_version(folder_id, check_is_dir, BLENDER_VERSION); +} + /** \} */ /* -------------------------------------------------------------------- */ diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c index 3b3ffb321c3..861b4dddff9 100644 --- a/source/blender/python/intern/bpy.c +++ b/source/blender/python/intern/bpy.c @@ -322,7 +322,7 @@ static PyObject *bpy_resource_path(PyObject *UNUSED(self), PyObject *args, PyObj return NULL; } - path = BKE_appdir_folder_id_version(type.value_found, (major * 100) + minor, false); + path = BKE_appdir_resource_path_id_with_version(type.value_found, (major * 100) + minor, false); return PyC_UnicodeFromByte(path ? path : ""); }