X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=9a573b5e2d3678f133990ae0296660a905826e35;hb=730deaee1a38f75d749a21cddbb562c2b339cc73;hp=7439108a883e1ecb921b40c628b14df747fc5f02;hpb=9965b1637d7919f7472eb2eab16abcf9fe2ba3f6;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 7439108a..9a573b5e 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -395,13 +395,25 @@ inline static char *getLevelArtworkDir(int type) char *getProgramConfigFilename(char *command_filename_ptr) { - char *command_filename = getStringCopy(command_filename_ptr); + char *command_filename_1 = getStringCopy(command_filename_ptr); // strip trailing executable suffix from command filename - if (strSuffix(command_filename, ".exe")) - command_filename[strlen(command_filename) - 4] = '\0'; + if (strSuffix(command_filename_1, ".exe")) + command_filename_1[strlen(command_filename_1) - 4] = '\0'; - return getStringCat2(command_filename, ".conf"); + char *command_basepath = getBasePath(command_filename_ptr); + char *command_basename = getBaseNameNoSuffix(command_filename_ptr); + char *command_filename_2 = getPath2(command_basepath, command_basename); + + char *config_filename_1 = getStringCat2(command_filename_1, ".conf"); + char *config_filename_2 = getStringCat2(command_filename_2, ".conf"); + + // 1st try: look for config file that exactly matches the binary filename + if (fileExists(config_filename_1)) + return config_filename_1; + + // 2nd try: return config filename that matches binary filename without suffix + return config_filename_2; } char *getTapeFilename(int nr) @@ -1379,30 +1391,6 @@ char *getUserGameDataDir(void) return user_game_data_dir; } -void updateUserGameDataDir() -{ -#if defined(PLATFORM_MACOSX) - char *userdata_dir_old = getPath2(getHomeDir(), program.userdata_subdir_unix); - char *userdata_dir_new = getUserGameDataDir(); /* do not free() this */ - - /* convert old Unix style game data directory to Mac OS X style, if needed */ - if (directoryExists(userdata_dir_old) && !directoryExists(userdata_dir_new)) - { - if (rename(userdata_dir_old, userdata_dir_new) != 0) - { - Error(ERR_WARN, "cannot move game data directory '%s' to '%s'", - userdata_dir_old, userdata_dir_new); - - /* continue using Unix style data directory -- this should not happen */ - program.userdata_path = getPath2(getPersonalDataDir(), - program.userdata_subdir_unix); - } - } - - free(userdata_dir_old); -#endif -} - char *getSetupDir() { return getUserGameDataDir();