summaryrefslogtreecommitdiffstats
path: root/base/file_util_posix.cc
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-22 23:28:05 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-22 23:28:05 +0000
commit1c657854c20ee288f8812c707d4bf4fcfecb7495 (patch)
tree2d157e936beea91a3f9ad2385999ad27804ec5d4 /base/file_util_posix.cc
parenta1170ed12a730f79d4224779b90e35923c7bb729 (diff)
downloadchromium_src-1c657854c20ee288f8812c707d4bf4fcfecb7495.zip
chromium_src-1c657854c20ee288f8812c707d4bf4fcfecb7495.tar.gz
chromium_src-1c657854c20ee288f8812c707d4bf4fcfecb7495.tar.bz2
bsd: refactor XDG bits of linux_util into a shared file.
This allows the shared code to build on the BSDs without them needing to build _linux files. Review URL: http://codereview.chromium.org/1701005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45380 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util_posix.cc')
-rw-r--r--base/file_util_posix.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc
index 8947d6a..4d4e572 100644
--- a/base/file_util_posix.cc
+++ b/base/file_util_posix.cc
@@ -10,6 +10,7 @@
#include <fnmatch.h>
#include <libgen.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <sys/errno.h>
#include <sys/mman.h>
@@ -21,6 +22,8 @@
#if defined(OS_MACOSX)
#include <AvailabilityMacros.h>
+#else
+#include <glib.h>
#endif
#include <fstream>
@@ -728,6 +731,23 @@ bool GetShmemTempDir(FilePath* path) {
return true;
}
+FilePath GetHomeDir() {
+ const char* home_dir = getenv("HOME");
+ if (home_dir && home_dir[0])
+ return FilePath(home_dir);
+
+ home_dir = g_get_home_dir();
+ if (home_dir && home_dir[0])
+ return FilePath(home_dir);
+
+ FilePath rv;
+ if (file_util::GetTempDir(&rv))
+ return rv;
+
+ // Last resort.
+ return FilePath("/tmp");
+}
+
bool CopyFile(const FilePath& from_path, const FilePath& to_path) {
int infile = open(from_path.value().c_str(), O_RDONLY);
if (infile < 0)