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/linux_util.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/linux_util.cc')
-rw-r--r-- | base/linux_util.cc | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/base/linux_util.cc b/base/linux_util.cc index 6197bc3..0ad9bb0 100644 --- a/base/linux_util.cc +++ b/base/linux_util.cc @@ -20,7 +20,6 @@ #include "base/process_util.h" #include "base/singleton.h" #include "base/string_util.h" -#include "base/third_party/xdg_user_dirs/xdg_user_dir_lookup.h" namespace { @@ -152,23 +151,6 @@ std::string linux_distro = "Unknown"; #endif -FilePath GetHomeDir(EnvVarGetter* env) { - std::string home_dir; - if (env->GetEnv("HOME", &home_dir) && !home_dir.empty()) - return FilePath(home_dir); - - home_dir = g_get_home_dir(); - if (!home_dir.empty()) - return FilePath(home_dir); - - FilePath rv; - if (PathService::Get(base::DIR_TEMP, &rv)) - return rv; - - // Last resort. - return FilePath("/tmp"); -} - std::string GetLinuxDistro() { #if defined(OS_CHROMEOS) return linux_distro; @@ -207,75 +189,6 @@ std::string GetLinuxDistro() { #endif } -FilePath GetXDGDirectory(EnvVarGetter* env, const char* env_name, - const char* fallback_dir) { - std::string env_value; - if (env->GetEnv(env_name, &env_value) && !env_value.empty()) - return FilePath(env_value); - return GetHomeDir(env).Append(fallback_dir); -} - -FilePath GetXDGUserDirectory(EnvVarGetter* env, const char* dir_name, - const char* fallback_dir) { - char* xdg_dir = xdg_user_dir_lookup(dir_name); - if (xdg_dir) { - FilePath rv(xdg_dir); - free(xdg_dir); - return rv; - } - return GetHomeDir(env).Append(fallback_dir); -} - -DesktopEnvironment GetDesktopEnvironment(EnvVarGetter* env) { - std::string desktop_session; - if (env->GetEnv("DESKTOP_SESSION", &desktop_session)) { - if (desktop_session == "gnome") { - return DESKTOP_ENVIRONMENT_GNOME; - } else if (desktop_session == "kde4") { - return DESKTOP_ENVIRONMENT_KDE4; - } else if (desktop_session == "kde") { - // This may mean KDE4 on newer systems, so we have to check. - if (env->HasEnv("KDE_SESSION_VERSION")) - return DESKTOP_ENVIRONMENT_KDE4; - return DESKTOP_ENVIRONMENT_KDE3; - } else if (desktop_session.find("xfce") != std::string::npos) { - return DESKTOP_ENVIRONMENT_XFCE; - } - } - - // Fall back on some older environment variables. - // Useful particularly in the DESKTOP_SESSION=default case. - if (env->HasEnv("GNOME_DESKTOP_SESSION_ID")) { - return DESKTOP_ENVIRONMENT_GNOME; - } else if (env->HasEnv("KDE_FULL_SESSION")) { - if (env->HasEnv("KDE_SESSION_VERSION")) - return DESKTOP_ENVIRONMENT_KDE4; - return DESKTOP_ENVIRONMENT_KDE3; - } - - return DESKTOP_ENVIRONMENT_OTHER; -} - -const char* GetDesktopEnvironmentName(DesktopEnvironment env) { - switch (env) { - case DESKTOP_ENVIRONMENT_OTHER: - return NULL; - case DESKTOP_ENVIRONMENT_GNOME: - return "GNOME"; - case DESKTOP_ENVIRONMENT_KDE3: - return "KDE3"; - case DESKTOP_ENVIRONMENT_KDE4: - return "KDE4"; - case DESKTOP_ENVIRONMENT_XFCE: - return "XFCE"; - } - return NULL; -} - -const char* GetDesktopEnvironmentName(EnvVarGetter* env) { - return GetDesktopEnvironmentName(GetDesktopEnvironment(env)); -} - bool FileDescriptorGetInode(ino_t* inode_out, int fd) { DCHECK(inode_out); |