Skip to content
Permalink
Browse files

Use CUSTOM_LOCALEDIR if specified

  • Loading branch information
ShadowNinja authored and est31 committed Sep 6, 2015
1 parent 31b6d26 commit 645e2086734e3d2d1ec95f50faa39f0f24304761
Showing with 16 additions and 4 deletions.
  1. +1 −0 src/cmake_config.h.in
  2. +2 −2 src/main.cpp
  3. +7 −1 src/porting.cpp
  4. +6 −1 src/porting.h
@@ -12,6 +12,7 @@
#define VERSION_STRING "@VERSION_STRING@"
#define PRODUCT_VERSION_STRING "@VERSION_MAJOR@.@VERSION_MINOR@"
#define STATIC_SHAREDIR "@SHAREDIR@"
#define STATIC_LOCALEDIR "@LOCALEDIR@"
#define BUILD_TYPE "@CMAKE_BUILD_TYPE@"
#cmakedefine01 RUN_IN_PLACE
#cmakedefine01 USE_GETTEXT
@@ -472,10 +472,10 @@ static bool init_common(int *log_level, const Settings &cmd_args, int argc, char
httpfetch_init(g_settings->getS32("curl_parallel_limit"));

#ifdef _MSC_VER
init_gettext((porting::path_share + DIR_DELIM + "locale").c_str(),
init_gettext(porting::path_locale.c_str(),
g_settings->get("language"), argc, argv);
#else
init_gettext((porting::path_share + DIR_DELIM + "locale").c_str(),
init_gettext(porting::path_locale.c_str(),
g_settings->get("language"));
#endif

@@ -136,6 +136,8 @@ void signal_handler_init(void)
// Default to RUN_IN_PLACE style relative paths
std::string path_share = "..";
std::string path_user = "..";
std::string path_locale = path_share + DIR_DELIM + "locale";


std::string getDataPath(const char *subpath)
{
@@ -503,13 +505,17 @@ void initializePaths()
path_share = execpath;
path_user = execpath;
}

#else
infostream << "Using system-wide paths (NOT RUN_IN_PLACE)" << std::endl;

if (!setSystemPaths())
errorstream << "Failed to get one or more system-wide path" << std::endl;

#endif
#ifdef STATIC_LOCALEDIR
path_locale = STATIC_LOCALEDIR[0] ? STATIC_LOCALEDIR : getDataPath("locale");
#else
path_locale = getDataPath("locale");
#endif

infostream << "Detected share path: " << path_share << std::endl;
@@ -142,14 +142,19 @@ extern std::string path_share;
*/
extern std::string path_user;

/*
Path to gettext locale files
*/
extern std::string path_locale;

/*
Get full path of stuff in data directory.
Example: "stone.png" -> "../data/stone.png"
*/
std::string getDataPath(const char *subpath);

/*
Initialize path_share and path_user.
Initialize path_*.
*/
void initializePaths();

0 comments on commit 645e208

Please sign in to comment.