summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/main.c b/main.c
index 1764e3f3..f398aaa6 100644
--- a/main.c
+++ b/main.c
@@ -591,6 +591,15 @@ restore_resume_state (void) {
int
main (int argc, char *argv[]) {
+#if PORTABLE
+ strcpy (dbinstalldir, argv[0]);
+ char *e = dbinstalldir + strlen (dbinstalldir);
+ while (e >= dbinstalldir && *e != '/') {
+ e--;
+ }
+ *e = 0;
+#endif
+
#ifdef __linux__
signal (SIGSEGV, sigsegv_handler);
#endif
@@ -598,7 +607,13 @@ main (int argc, char *argv[]) {
setlocale (LC_NUMERIC, "C");
#ifdef ENABLE_NLS
// fprintf (stderr, "enabling gettext support: package=" PACKAGE ", dir=" LOCALEDIR "...\n");
+#if PORTABLE
+ char localedir[PATH_MAX];
+ snprintf (localedir, sizeof (localedir), "%s/locale", dbinstalldir);
+ bindtextdomain (PACKAGE, localedir);
+#else
bindtextdomain (PACKAGE, LOCALEDIR);
+#endif
bind_textdomain_codeset (PACKAGE, "UTF-8");
textdomain (PACKAGE);
#endif
@@ -618,15 +633,6 @@ main (int argc, char *argv[]) {
prctl (PR_SET_NAME, "deadbeef-main", 0, 0, 0, 0);
#endif
-#if PORTABLE
- strcpy (dbinstalldir, argv[0]);
- char *e = dbinstalldir + strlen (dbinstalldir);
- while (e >= dbinstalldir && *e != '/') {
- e--;
- }
- *e = 0;
-#endif
-
#if PORTABLE_FULL
if (snprintf (confdir, sizeof (confdir), "%s/config", dbinstalldir) > sizeof (confdir)) {
fprintf (stderr, "fatal: too long install path %s\n", dbinstalldir);