From 17b0eca6e7ae464778c2fa896710724908c6f0c1 Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Mon, 13 Jan 2014 13:38:47 +0100 Subject: [PATCH] Fix name of master settings file in OS X The name needs to be relative to the bundle path, but ~~ expansion did not work for compiled-in defaults, as the expansion takes place when parsing an option. The dataDir is now also kept in an array rather than as a pointer, to allow it to appear in statically initialized tables. --- gtk/xboard.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gtk/xboard.c b/gtk/xboard.c index 334f92a..20eeaff 100644 --- a/gtk/xboard.c +++ b/gtk/xboard.c @@ -174,12 +174,13 @@ extern char *getenv(); # define SLASH '-' // redefine some defaults # undef ICS_LOGON -# undef SYSCONFDIR # undef DATADIR +# undef SETTINGS_FILE # define ICS_LOGON "Library/Preferences/XboardICS.conf" -# define SYSCONFDIR "../etc" # define DATADIR dataDir - char *dataDir; // for expanding ~~ +# define SETTINGS_FILE masterSettings + char dataDir[MSG_SIZ]; // for expanding ~~ + char masterSettings[MSG_SIZ]; #else # define SLASH '/' #endif @@ -776,7 +777,9 @@ main (int argc, char **argv) #ifdef __APPLE__ { // prepare to catch OX OpenFile signal, which will tell us the clicked file GtkosxApplication *theApp = g_object_new(GTKOSX_TYPE_APPLICATION, NULL); - dataDir = gtkosx_application_get_bundle_path(); + char *path = gtkosx_application_get_bundle_path(); + strncpy(dataDir, path, MSG_SIZ); + snprintf(masterSettings, MSG_SIZ, "%s/../Resources/etc/xboard.conf", path); g_signal_connect(theApp, "NSApplicationOpenFile", G_CALLBACK(StartNewXBoard), NULL); // we must call application ready before we can get the signal, // and supply a (dummy) menu bar before that, to avoid problems with dual apples in it -- 1.7.0.4