diff options
author | Aarni Koskela <akx@iki.fi> | 2024-01-07 19:53:43 +0200 |
---|---|---|
committer | Aarni Koskela <akx@iki.fi> | 2024-01-07 19:53:43 +0200 |
commit | a4c5dae8cb67fca6ab72364f288e694e8970f840 (patch) | |
tree | 71dc58137a00bc870fdf8694c53d44c29a53c166 /drivers/unix | |
parent | c8c483cf57a768110fce57e509f9b855e69d34b7 (diff) | |
download | redot-engine-a4c5dae8cb67fca6ab72364f288e694e8970f840.tar.gz |
Attempt to parse environment variables as UTF-8
Diffstat (limited to 'drivers/unix')
-rw-r--r-- | drivers/unix/os_unix.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp index 51ea9234d4..e7af49bcb4 100644 --- a/drivers/unix/os_unix.cpp +++ b/drivers/unix/os_unix.cpp @@ -703,10 +703,15 @@ bool OS_Unix::has_environment(const String &p_var) const { } String OS_Unix::get_environment(const String &p_var) const { - if (getenv(p_var.utf8().get_data())) { - return getenv(p_var.utf8().get_data()); + const char *val = getenv(p_var.utf8().get_data()); + if (val == nullptr) { // Not set; return empty string + return ""; } - return ""; + String s; + if (s.parse_utf8(val) == OK) { + return s; + } + return String(val); // Not valid UTF-8, so return as-is } void OS_Unix::set_environment(const String &p_var, const String &p_value) const { |