diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-22 23:28:05 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-22 23:28:05 +0000 |
commit | 1c657854c20ee288f8812c707d4bf4fcfecb7495 (patch) | |
tree | 2d157e936beea91a3f9ad2385999ad27804ec5d4 /base/file_util_posix.cc | |
parent | a1170ed12a730f79d4224779b90e35923c7bb729 (diff) | |
download | chromium_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.cc | 20 |
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) |