Skip to content

Commit

Permalink
Merge pull request #3893 from laytan/temporary-directory-non-windows
Browse files Browse the repository at this point in the history
implement `temporary_directory` on non-windows
  • Loading branch information
gingerBill authored Jul 8, 2024
2 parents 48aef50 + 9ff7739 commit a3af94e
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions src/string.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -544,11 +544,10 @@ gb_internal String string16_to_string(gbAllocator a, String16 s) {


gb_internal String temporary_directory(gbAllocator allocator) {
String res = {};
#if defined(GB_SYSTEM_WINDOWS)
DWORD n = GetTempPathW(0, nullptr);
if (n == 0) {
return res;
return String{0};
}
DWORD len = gb_max(MAX_PATH, n);
wchar_t *b = gb_alloc_array(heap_allocator(), wchar_t, len+1);
Expand All @@ -561,9 +560,22 @@ gb_internal String temporary_directory(gbAllocator allocator) {
}
b[n] = 0;
String16 s = make_string16(b, n);
res = string16_to_string(allocator, s);
return string16_to_string(allocator, s);
#else
char const *tmp_env = gb_get_env("TMPDIR", allocator);
if (tmp_env) {
return make_string_c(tmp_env);
}

#if defined(P_tmpdir)
String tmp_macro = make_string_c(P_tmpdir);
if (tmp_macro.len != 0) {
return copy_string(allocator, tmp_macro);
}
#endif

return copy_string(allocator, str_lit("/tmp"));
#endif
return res;
}


Expand Down

0 comments on commit a3af94e

Please sign in to comment.