summaryrefslogtreecommitdiff
path: root/UnityCore
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2016-02-09 17:06:47 +0100
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2016-02-09 17:06:47 +0100
commitff51b6a783fd66ea378ab769025fb34b2860ff2e (patch)
tree20f29c287dd68855319cd7662ef8e245cfac0b34 /UnityCore
parent0973cb0c1e889358e155f2ad4241264a50231606 (diff)
DesktopUtilities: add GetUserHomeDirectory
(bzr r4068.4.1)
Diffstat (limited to 'UnityCore')
-rw-r--r--UnityCore/DesktopUtilities.cpp11
-rw-r--r--UnityCore/DesktopUtilities.h1
2 files changed, 9 insertions, 3 deletions
diff --git a/UnityCore/DesktopUtilities.cpp b/UnityCore/DesktopUtilities.cpp
index a9a41c5e7..a0600d784 100644
--- a/UnityCore/DesktopUtilities.cpp
+++ b/UnityCore/DesktopUtilities.cpp
@@ -35,6 +35,11 @@ namespace
DECLARE_LOGGER(logger, "unity.desktop.utilities");
}
+std::string DesktopUtilities::GetUserHomeDirectory()
+{
+ return glib::gchar_to_string(g_get_home_dir());
+}
+
std::string DesktopUtilities::GetUserDataDirectory()
{
const char* user_dir = g_get_user_data_dir();
@@ -43,12 +48,12 @@ std::string DesktopUtilities::GetUserDataDirectory()
return user_dir;
// This shouldn't ever happen, but let's manually fallback to the default
- const char* home = g_get_home_dir();
+ auto home = GetUserHomeDirectory();
- if (home)
+ if (!home.empty())
{
const char* subdir = G_DIR_SEPARATOR_S ".local" G_DIR_SEPARATOR_S "share";
- return std::string(home).append(subdir);
+ return home.append(subdir);
}
return "";
diff --git a/UnityCore/DesktopUtilities.h b/UnityCore/DesktopUtilities.h
index 203603ea1..c3c94b9b3 100644
--- a/UnityCore/DesktopUtilities.h
+++ b/UnityCore/DesktopUtilities.h
@@ -29,6 +29,7 @@ namespace unity
class DesktopUtilities
{
public:
+ static std::string GetUserHomeDirectory();
static std::string GetUserDataDirectory();
static std::string GetUserCacheDirectory();
static std::string GetUserRuntimeDirectory();