projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improved handling of R'n'D program filenames with suffix
[rocksndiamonds.git]
/
src
/
main.c
diff --git
a/src/main.c
b/src/main.c
index af4bcd34a58b0f218827a87756f8b6152296cffc..84004f468283e1c8b5e3e28b9948fa962fca2fb6 100644
(file)
--- a/
src/main.c
+++ b/
src/main.c
@@
-5630,7
+5630,7
@@
static void print_version()
static void InitProgramConfig(char *command_filename)
{
static void InitProgramConfig(char *command_filename)
{
- char *
command_basename = getBaseName
(command_filename);
+ char *
userdata_basename = getBaseNameNoSuffix
(command_filename);
char *config_filename = getProgramConfigFilename(command_filename);
char *program_title = PROGRAM_TITLE_STRING;
char *program_icon_file = PROGRAM_ICON_FILENAME;
char *config_filename = getProgramConfigFilename(command_filename);
char *program_title = PROGRAM_TITLE_STRING;
char *program_icon_file = PROGRAM_ICON_FILENAME;
@@
-5639,7
+5639,18
@@
static void InitProgramConfig(char *command_filename)
// read default program config, if existing
if (fileExists(config_filename))
// read default program config, if existing
if (fileExists(config_filename))
+ {
+ // if program config file exists, derive Unix user data directory from it
+ userdata_basename = getBaseName(config_filename);
+
+ if (strSuffix(userdata_basename, ".conf"))
+ userdata_basename[strlen(userdata_basename) - 4] = '\0';
+
LoadSetupFromFilename(config_filename);
LoadSetupFromFilename(config_filename);
+ }
+
+ // set user data directory for Linux/Unix (but not Mac OS X)
+ userdata_subdir_unix = getStringCat2(".", userdata_basename);
// set program title from potentially redefined program title
if (setup.internal.program_title != NULL &&
// set program title from potentially redefined program title
if (setup.internal.program_title != NULL &&
@@
-5651,12
+5662,6
@@
static void InitProgramConfig(char *command_filename)
strlen(setup.internal.program_icon_file) > 0)
program_icon_file = getStringCopy(setup.internal.program_icon_file);
strlen(setup.internal.program_icon_file) > 0)
program_icon_file = getStringCopy(setup.internal.program_icon_file);
- // strip trailing executable suffix from command basename
- if (strSuffix(command_basename, ".exe"))
- command_basename[strlen(command_basename) - 4] = '\0';
-
- userdata_subdir_unix = getStringCat2(".", command_basename);
-
#if defined(PLATFORM_WIN32) || defined(PLATFORM_MACOSX)
userdata_subdir = program_title;
#elif defined(PLATFORM_UNIX)
#if defined(PLATFORM_WIN32) || defined(PLATFORM_MACOSX)
userdata_subdir = program_title;
#elif defined(PLATFORM_UNIX)