diff --git a/src/common/utils.cpp b/src/common/utils.cpp index 9266eb31..696ae91e 100644 --- a/src/common/utils.cpp +++ b/src/common/utils.cpp @@ -40,11 +40,13 @@ constexpr char disable_watchdog_timer_env_var[] = "YABRIDGE_NO_WATCHDOG"; constexpr char temp_dir_override_env_var[] = "YABRIDGE_TEMP_DIR"; fs::path get_temporary_directory() { - bp::environment env = boost::this_process::environment(); - if (!env[temp_dir_override_env_var].empty()) { - return env[temp_dir_override_env_var].to_string(); - } else if (!env["XDG_RUNTIME_DIR"].empty()) { - return env["XDG_RUNTIME_DIR"].to_string(); + const bp::environment env = boost::this_process::environment(); + if (const auto directory = env.find(temp_dir_override_env_var); + directory != env.end() && !directory->empty()) { + return directory->to_string(); + } else if (const auto directory = env.find("XDG_RUNTIME_DIR"); + directory != env.end() && !directory->empty()) { + return directory->to_string(); } else { return fs::temp_directory_path(); } diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp index 8318f698..879ffbd5 100644 --- a/src/plugin/utils.cpp +++ b/src/plugin/utils.cpp @@ -256,12 +256,13 @@ fs::path normalize_plugin_path(const fs::path& windows_library_path, std::variant find_wine_prefix( fs::path windows_plugin_path) { - bp::environment env = boost::this_process::environment(); - if (!env["WINEPREFIX"].empty()) { - return OverridenWinePrefix{env["WINEPREFIX"].to_string()}; + const bp::environment env = boost::this_process::environment(); + if (const auto prefix = env.find("WINEPREFIX"); + prefix != env.end() && !prefix->empty()) { + return OverridenWinePrefix{prefix->to_string()}; } - std::optional dosdevices_dir = find_dominating_file( + const std::optional dosdevices_dir = find_dominating_file( "dosdevices", windows_plugin_path, fs::is_directory); if (!dosdevices_dir) { return DefaultWinePrefix{};