summaryrefslogtreecommitdiff
path: root/src/lib/util.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-09-01 00:06:19 +0100
committerCarl Hetherington <cth@carlh.net>2014-09-01 00:06:19 +0100
commitcf8bbea2de38c4e9ac140f55b27311b7b6dcd814 (patch)
tree7786cf4672ce8c5134c5b9e53947609a1e1c9cc3 /src/lib/util.cc
parent22b9f3b2090d8bdfe52cda1e69d3acbe874f1ce5 (diff)
parentbbb2a4b7ccec953900d13e7bcdad229028bc7795 (diff)
Merge master.
Diffstat (limited to 'src/lib/util.cc')
-rw-r--r--src/lib/util.cc31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/lib/util.cc b/src/lib/util.cc
index c9685aa44..c09ed9cb2 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -383,35 +383,42 @@ mo_path ()
}
#endif
+#ifdef DCPOMATIC_OSX
+boost::filesystem::path
+mo_path ()
+{
+ return "DCP-o-matic.app/Contents/Resources";
+}
+#endif
+
void
dcpomatic_setup_gettext_i18n (string lang)
{
-#ifdef DCPOMATIC_POSIX
+#ifdef DCPOMATIC_LINUX
lang += ".UTF8";
#endif
if (!lang.empty ()) {
- /* Override our environment language; this is essential on
- Windows.
+ /* Override our environment language. Note that the caller must not
+ free the string passed into putenv().
*/
- char cmd[64];
- snprintf (cmd, sizeof(cmd), "LANGUAGE=%s", lang.c_str ());
- putenv (cmd);
- snprintf (cmd, sizeof(cmd), "LANG=%s", lang.c_str ());
- putenv (cmd);
- snprintf (cmd, sizeof(cmd), "LC_ALL=%s", lang.c_str ());
- putenv (cmd);
+ string s = String::compose ("LANGUAGE=%1", lang);
+ putenv (strdup (s.c_str ()));
+ s = String::compose ("LANG=%1", lang);
+ putenv (strdup (s.c_str ()));
+ s = String::compose ("LC_ALL=%1", lang);
+ putenv (strdup (s.c_str ()));
}
setlocale (LC_ALL, "");
textdomain ("libdcpomatic");
-#ifdef DCPOMATIC_WINDOWS
+#if defined(DCPOMATIC_WINDOWS) || defined(DCPOMATIC_OSX)
bindtextdomain ("libdcpomatic", mo_path().string().c_str());
bind_textdomain_codeset ("libdcpomatic", "UTF8");
#endif
-#ifdef DCPOMATIC_POSIX
+#ifdef DCPOMATIC_LINUX
bindtextdomain ("libdcpomatic", POSIX_LOCALE_PREFIX);
#endif
}