diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-10-04 14:23:48 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-10-04 14:23:48 +0300 |
commit | 16c4db122f07cdf0e8e96214848e2ddd91c1fdc8 (patch) | |
tree | e0bc790b9f42d6bf95ca1e281501bc28aad08b0a /source/blender/blenkernel/intern/appdir.c | |
parent | 8683d4e88f2e64be0ec868f1c028f3c60262e948 (diff) |
Fix error in last commit printing NULL strings
While this works with GCC, printing NULL strings is undefined behavior.
Diffstat (limited to 'source/blender/blenkernel/intern/appdir.c')
-rw-r--r-- | source/blender/blenkernel/intern/appdir.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/appdir.c b/source/blender/blenkernel/intern/appdir.c index 65c8921666b..667b4d5ef94 100644 --- a/source/blender/blenkernel/intern/appdir.c +++ b/source/blender/blenkernel/intern/appdir.c @@ -60,6 +60,9 @@ # include <unistd.h> #endif /* WIN32 */ +static const char _str_null[] = "(null)"; +#define STR_OR_FALLBACK(a) ((a) ? (a) : _str_null) + /* -------------------------------------------------------------------- */ /** \name Local Variables * \{ */ @@ -297,7 +300,11 @@ static bool get_path_local_ex(char *targetpath, { char relfolder[FILE_MAX]; - CLOG_INFO(&LOG, 3, "folder='%s', subfolder='%s'", folder_name, subfolder_name); + CLOG_INFO(&LOG, + 3, + "folder='%s', subfolder='%s'", + STR_OR_FALLBACK(folder_name), + STR_OR_FALLBACK(subfolder_name)); if (folder_name) { /* `subfolder_name` may be NULL. */ BLI_path_join(relfolder, sizeof(relfolder), folder_name, subfolder_name, NULL); @@ -415,7 +422,12 @@ static bool get_path_user_ex(char *targetpath, return false; } - CLOG_INFO(&LOG, 3, "'%s', folder='%s', subfolder='%s'", user_path, folder_name, subfolder_name); + CLOG_INFO(&LOG, + 3, + "'%s', folder='%s', subfolder='%s'", + user_path, + STR_OR_FALLBACK(folder_name), + STR_OR_FALLBACK(subfolder_name)); /* `subfolder_name` may be NULL. */ return test_path( @@ -470,8 +482,12 @@ static bool get_path_system_ex(char *targetpath, return false; } - CLOG_INFO( - &LOG, 3, "'%s', folder='%s', subfolder='%s'", system_path, folder_name, subfolder_name); + CLOG_INFO(&LOG, + 3, + "'%s', folder='%s', subfolder='%s'", + system_path, + STR_OR_FALLBACK(folder_name), + STR_OR_FALLBACK(subfolder_name)); /* Try `$BLENDERPATH/folder_name/subfolder_name`, `subfolder_name` may be NULL. */ return test_path( |