1 https://github.com/google/mozc/issues/470
3 --- /src/base/system_util.cc
4 +++ /src/base/system_util.cc
7 std::string UserProfileDirectoryImpl::GetUserProfileDirectory() const {
8 #if defined(OS_CHROMEOS)
9 + const char *configuration_directory_env = Environ::GetEnv("MOZC_CONFIGURATION_DIRECTORY");
10 + if (configuration_directory_env) {
11 + return configuration_directory_env;
14 // TODO(toka): Must use passed in user profile dir which passed in. If mojo
15 // platform the user profile is determined on runtime.
16 // It's hack, the user profile dir should be passed in. Although the value in
19 // OS_IOS block must be placed before __APPLE__ because both macros are
20 // currently defined on iOS.
23 + const char *configuration_directory_env = Environ::GetEnv("MOZC_CONFIGURATION_DIRECTORY");
24 + if (configuration_directory_env) {
25 + return configuration_directory_env;
28 // On iOS, use Caches directory instead of Application Spport directory
29 // because the support directory doesn't exist by default. Also, it is backed
30 // up by iTunes and iCloud.
31 return FileUtil::JoinPath({MacUtil::GetCachesDirectory(), kProductPrefix});
34 + const char *configuration_directory_env = Environ::GetEnv("MOZC_CONFIGURATION_DIRECTORY");
35 + if (configuration_directory_env) {
36 + return configuration_directory_env;
39 DCHECK(SUCCEEDED(Singleton<LocalAppDataDirectoryCache>::get()->result()));
40 std::string dir = Singleton<LocalAppDataDirectoryCache>::get()->path();
45 #elif defined(__APPLE__)
46 + const char *configuration_directory_env = Environ::GetEnv("MOZC_CONFIGURATION_DIRECTORY");
47 + if (configuration_directory_env) {
48 + return configuration_directory_env;
51 std::string dir = MacUtil::GetApplicationSupportDirectory();
52 # ifdef GOOGLE_JAPANESE_INPUT_BUILD
53 dir = FileUtil::JoinPath(dir, "Google");
57 #elif defined(OS_LINUX)
58 + const char *configuration_directory_env = Environ::GetEnv("MOZC_CONFIGURATION_DIRECTORY");
59 + if (configuration_directory_env) {
60 + return configuration_directory_env;
63 // 1. If "$HOME/.mozc" already exists,
64 // use "$HOME/.mozc" for backward compatibility.
65 // 2. If $XDG_CONFIG_HOME is defined
69 std::string SystemUtil::GetServerDirectory() {
70 + const char *server_directory_env = Environ::GetEnv("MOZC_SERVER_DIRECTORY");
71 + if (server_directory_env) {
72 + return server_directory_env;
76 DCHECK(SUCCEEDED(Singleton<ProgramFilesX86Cache>::get()->result()));
77 # if defined(GOOGLE_JAPANESE_INPUT_BUILD)
81 std::string SystemUtil::GetDocumentDirectory() {
82 + const char *documents_directory_env = Environ::GetEnv("MOZC_DOCUMENTS_DIRECTORY");
83 + if (documents_directory_env) {
84 + return documents_directory_env;
87 #if defined(__APPLE__)
88 return GetServerDirectory();
89 #elif defined(MOZC_DOCUMENT_DIRECTORY)