Skip to content

Commit

Permalink
Fix finding home and use XDG standard when looking for SurrealEngine.pk3
Browse files Browse the repository at this point in the history
  • Loading branch information
sharkwouter authored and dpjudas committed Aug 27, 2024
1 parent 7369c3b commit 0713223
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions SurrealEngine/UI/WidgetResourceData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
#include "Utils/File.h"
#include <miniz.h>
#include "Utils/Exception.h"
#include <cstdlib>
#include <string>

static mz_zip_archive widgetResources;

Expand All @@ -13,10 +15,20 @@ void InitWidgetResources()
// On Linux, SurrealEngine.pk3 can additionally be put in some other folders given below.
if (!result)
result = mz_zip_reader_init_file(&widgetResources, FilePath::combine("/usr/share/surrealengine", "SurrealEngine.pk3").c_str(), 0);
if (!result)
result = mz_zip_reader_init_file(&widgetResources, FilePath::combine("~/.local/share/surrealengine", "SurrealEngine.pk3").c_str(), 0);
if (!result)
result = mz_zip_reader_init_file(&widgetResources, FilePath::combine("~/.surrealengine", "SurrealEngine.pk3").c_str(), 0);
if (!result) {
char * home = std::getenv("HOME");
std::string directory = FilePath::combine(std::string(home) , ".local/share/surrealengine");
char * xdg_data_home = std::getenv("XDG_DATA_HOME");
if (xdg_data_home != NULL) {
directory = FilePath::combine(std::string(xdg_data_home), "surrealengine");
}
result = mz_zip_reader_init_file(&widgetResources, FilePath::combine(directory, "SurrealEngine.pk3").c_str(), 0);
}
if (!result) {
char * home = std::getenv("HOME");
std::string directory = FilePath::combine(std::string(home) , ".surrealengine");
result = mz_zip_reader_init_file(&widgetResources, FilePath::combine(directory, "SurrealEngine.pk3").c_str(), 0);
}
#endif
if (!result)
Exception::Throw("Could not open SurrealEngine.pk3");
Expand Down

0 comments on commit 0713223

Please sign in to comment.