From a8b3cc4812f3196c3fa3ca5005197e830141df8a Mon Sep 17 00:00:00 2001 From: janwas Date: Sat, 20 Mar 2010 21:37:14 +0000 Subject: [PATCH] add both the (potentially) read-only data from SVN and the appdata path to the config/ search path (fixes #450) This was SVN commit r7382. --- source/ps/GameSetup/GameSetup.cpp | 7 +++++-- source/ps/GameSetup/Paths.cpp | 11 +++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/source/ps/GameSetup/GameSetup.cpp b/source/ps/GameSetup/GameSetup.cpp index 17355bf73d..b1bc6145b1 100644 --- a/source/ps/GameSetup/GameSetup.cpp +++ b/source/ps/GameSetup/GameSetup.cpp @@ -517,8 +517,11 @@ static void InitVfs(const CmdLineArgs& args) g_VFS = CreateVfs(cacheSize); g_VFS->Mount(L"screenshots/", paths.Data()/L"screenshots/"); - g_VFS->Mount(L"config/", paths.RData()/L"config/"); - g_VFS->Mount(L"profiles/", paths.Config()/L"profiles/"); + const fs::wpath readonlyConfig = paths.RData()/L"config/"; + g_VFS->Mount(L"config/", readonlyConfig); + if(readonlyConfig != paths.Config()) + g_VFS->Mount(L"config/", paths.Config()); + g_VFS->Mount(L"profiles/", paths.Config()/L"profiles/"); // deprecated (overlaps the above mount), but profiles/ are still used by JS g_VFS->Mount(L"cache/", paths.Cache(), VFS_MOUNT_ARCHIVABLE); // (adding XMBs to archive speeds up subsequent reads) std::vector mods = args.GetMultiple("mod"); diff --git a/source/ps/GameSetup/Paths.cpp b/source/ps/GameSetup/Paths.cpp index 117c7d484c..673373a885 100644 --- a/source/ps/GameSetup/Paths.cpp +++ b/source/ps/GameSetup/Paths.cpp @@ -53,10 +53,13 @@ Paths::Paths(const CmdLineArgs& args) const char* envHome = getenv("HOME"); debug_assert(envHome); const fs::wpath home(wstring_from_utf8(envHome)); - m_data = AddSlash(XDG_Path("XDG_DATA_HOME", home, home/L".local/share/")/subdirectoryName); - m_config = AddSlash(XDG_Path("XDG_CONFIG_HOME", home, home/L".config/")/subdirectoryName); - m_cache = AddSlash(XDG_Path("XDG_CACHE_HOME", home, home/L".cache/")/subdirectoryName); - m_logs = AddSlash(m_config/L"logs"); + const fs::wpath xdgData = XDG_Path("XDG_DATA_HOME", home, home/L".local/share/")/subdirectoryName; + const fs::wpath xdgConfig = XDG_Path("XDG_CONFIG_HOME", home, home/L".config/")/subdirectoryName; + const fs::wpath xdgCache = XDG_Path("XDG_CACHE_HOME", home, home/L".cache/")/subdirectoryName; + m_data = AddSlash(xdgData); + m_cache = AddSlash(xdgCache); + m_config = AddSlash(xdgConfig/L"config"); + m_logs = AddSlash(xdgConfig/L"logs"); #endif } }