From 6c07d765db6c0e03a07febe80580d38c5a4c86aa Mon Sep 17 00:00:00 2001 From: Edoardo Prezioso Date: Thu, 2 Apr 2015 13:18:37 +0200 Subject: [PATCH 1/4] - Fixed a wrong linux macro in an ifdef. --- src/cmdlib.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmdlib.cpp b/src/cmdlib.cpp index 557c80cf8..b3c406ee0 100644 --- a/src/cmdlib.cpp +++ b/src/cmdlib.cpp @@ -957,7 +957,7 @@ void ScanDirectory(TArray &list, const char *dirpath) } } -#elif defined(__sun) || defined(linux) +#elif defined(__sun) || defined(__linux__) //========================================================================== // From e07f64a23ac240366dcbb5947e7e381150ec222d Mon Sep 17 00:00:00 2001 From: Edoardo Prezioso Date: Thu, 2 Apr 2015 13:19:48 +0200 Subject: [PATCH 2/4] - Increase the SDL crashinfo char buffer to 4 KB. This helps the crash catcher when there are numerous wad files, for which it's possible that either the wad list, the map or the position is truncated. A more reliable alternative to this should be allocating the char buffer, but I never heard about a way to do this reliably during signal handling. --- src/posix/sdl/crashcatcher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/posix/sdl/crashcatcher.c b/src/posix/sdl/crashcatcher.c index 4754a369a..f85713e31 100644 --- a/src/posix/sdl/crashcatcher.c +++ b/src/posix/sdl/crashcatcher.c @@ -37,7 +37,7 @@ static struct { pid_t pid; int has_siginfo; siginfo_t siginfo; - char buf[1024]; + char buf[4096]; } crash_info; From a88f515364c1cfa67b67833181bdee040d252559 Mon Sep 17 00:00:00 2001 From: Edoardo Prezioso Date: Thu, 2 Apr 2015 13:27:52 +0200 Subject: [PATCH 3/4] - Import GAMENAMELOWERCASE macro from Zandronum. This will greatly help reducing the code delta between ZDoom and the child ports. --- src/d_iwad.cpp | 15 ++++++++------- src/m_specialpaths.cpp | 18 +++++++++--------- src/posix/sdl/i_main.cpp | 2 +- src/version.h | 3 ++- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/d_iwad.cpp b/src/d_iwad.cpp index 393ca11cc..4bb53e3fe 100644 --- a/src/d_iwad.cpp +++ b/src/d_iwad.cpp @@ -47,6 +47,7 @@ #include "v_video.h" #include "gameconfigfile.h" #include "resourcefiles/resourcefile.h" +#include "version.h" CVAR (Bool, queryiwad, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG); @@ -504,19 +505,19 @@ int FIWadManager::IdentifyVersion (TArray &wadfiles, const char *iwad, if (numwads == 0) { I_FatalError ("Cannot find a game IWAD (doom.wad, doom2.wad, heretic.wad, etc.).\n" - "Did you install ZDoom properly? You can do either of the following:\n" + "Did you install " GAMENAME " properly? You can do either of the following:\n" "\n" #if defined(_WIN32) - "1. Place one or more of these wads in the same directory as ZDoom.\n" - "2. Edit your zdoom-username.ini and add the directories of your iwads\n" + "1. Place one or more of these wads in the same directory as " GAMENAME ".\n" + "2. Edit your " GAMENAMELOWERCASE "-username.ini and add the directories of your iwads\n" "to the list beneath [IWADSearch.Directories]"); #elif defined(__APPLE__) - "1. Place one or more of these wads in ~/Library/Application Support/zdoom/\n" - "2. Edit your ~/Library/Preferences/zdoom.ini and add the directories\n" + "1. Place one or more of these wads in ~/Library/Application Support/" GAMENAMELOWERCASE "/\n" + "2. Edit your ~/Library/Preferences/" GAMENAMELOWERCASE ".ini and add the directories\n" "of your iwads to the list beneath [IWADSearch.Directories]"); #else - "1. Place one or more of these wads in ~/.config/zdoom/.\n" - "2. Edit your ~/.config/zdoom/zdoom.ini and add the directories of your\n" + "1. Place one or more of these wads in ~/.config/" GAMENAMELOWERCASE "/.\n" + "2. Edit your ~/.config/" GAMENAMELOWERCASE "/" GAMENAMELOWERCASE ".ini and add the directories of your\n" "iwads to the list beneath [IWADSearch.Directories]"); #endif } diff --git a/src/m_specialpaths.cpp b/src/m_specialpaths.cpp index e6f74eda6..a45c23dc7 100644 --- a/src/m_specialpaths.cpp +++ b/src/m_specialpaths.cpp @@ -204,7 +204,7 @@ FString M_GetConfigPath(bool for_reading) { path += "/" GAME_DIR; CreatePath(path); - path += "/zdoom.ini"; + path += "/" GAMENAMELOWERCASE ".ini"; } else { // construct "$PROGDIR/zdoom-$USER.ini" @@ -224,11 +224,11 @@ FString M_GetConfigPath(bool for_reading) *probe = '_'; ++probe; } - path << "zdoom-" << uname << ".ini"; + path << GAMENAMELOWERCASE "-" << uname << ".ini"; } else { // Couldn't get user name, so just use zdoom.ini - path += "zdoom.ini"; + path += GAMENAMELOWERCASE ".ini"; } } @@ -239,7 +239,7 @@ FString M_GetConfigPath(bool for_reading) if (!FileExists(path)) { path = progdir; - path << "zdoom.ini"; + path << GAMENAMELOWERCASE ".ini"; } } @@ -411,11 +411,11 @@ FString M_GetConfigPath(bool for_reading) noErr == FSRefMakePath(&folder, (UInt8*)cpath, PATH_MAX)) { FString path; - path << cpath << "/zdoom.ini"; + path << cpath << "/" GAMENAMELOWERCASE ".ini"; return path; } // Ungh. - return "zdoom.ini"; + return GAMENAMELOWERCASE ".ini"; } //=========================================================================== @@ -497,12 +497,12 @@ FString GetUserFile (const char *file) // This can be removed after a release or two // Transfer the old zdoom directory to the new location bool moved = false; - FString oldpath = NicePath("~/.zdoom/"); + FString oldpath = NicePath("~/." GAMENAMELOWERCASE "/"); if (stat (oldpath, &extrainfo) != -1) { if (rename(oldpath, path) == -1) { - I_Error ("Failed to move old zdoom directory (%s) to new location (%s).", + I_Error ("Failed to move old " GAMENAMELOWERCASE " directory (%s) to new location (%s).", oldpath.GetChars(), path.GetChars()); } else @@ -598,7 +598,7 @@ FString M_GetCajunPath(const char *botfilename) FString M_GetConfigPath(bool for_reading) { - return GetUserFile("zdoom.ini"); + return GetUserFile(GAMENAMELOWERCASE ".ini"); } //=========================================================================== diff --git a/src/posix/sdl/i_main.cpp b/src/posix/sdl/i_main.cpp index d60494d1a..7c08dacdb 100644 --- a/src/posix/sdl/i_main.cpp +++ b/src/posix/sdl/i_main.cpp @@ -240,7 +240,7 @@ int main (int argc, char **argv) #if !defined (__APPLE__) { int s[4] = { SIGSEGV, SIGILL, SIGFPE, SIGBUS }; - cc_install_handlers(argc, argv, 4, s, "zdoom-crash.log", DoomSpecificInfo); + cc_install_handlers(argc, argv, 4, s, GAMENAMELOWERCASE "-crash.log", DoomSpecificInfo); } #endif // !__APPLE__ diff --git a/src/version.h b/src/version.h index 7f6d9cedd..cbbb8bd21 100644 --- a/src/version.h +++ b/src/version.h @@ -88,13 +88,14 @@ const char *GetVersionString(); // More stuff that needs to be different for derivatives. #define GAMENAME "ZDoom" +#define GAMENAMELOWERCASE "zdoom" #define FORUM_URL "http://forum.zdoom.org" #define BUGS_FORUM_URL "http://forum.zdoom.org/index.php?c=3" #if defined(__APPLE__) || defined(_WIN32) #define GAME_DIR GAMENAME #else -#define GAME_DIR ".config/zdoom" +#define GAME_DIR ".config/" GAMENAMELOWERCASE #endif From 7c7c3fb54ec941a99ff15592031b15f7df11365b Mon Sep 17 00:00:00 2001 From: Edoardo Prezioso Date: Thu, 2 Apr 2015 20:00:51 +0200 Subject: [PATCH 4/4] - Make the 'crashout' CCMD available in non-win32. --- src/c_cmds.cpp | 17 +++++++++++++++++ src/win32/i_main.cpp | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/c_cmds.cpp b/src/c_cmds.cpp index 778f25be1..74968404d 100644 --- a/src/c_cmds.cpp +++ b/src/c_cmds.cpp @@ -641,6 +641,23 @@ CCMD (error_fatal) } } +//========================================================================== +// +// CCMD crashout +// +// Debugging routine for testing the crash logger. +// Useless in a win32 debug build, because that doesn't enable the crash logger. +// +//========================================================================== + +#if !defined(_WIN32) || !defined(_DEBUG) +CCMD (crashout) +{ + *(volatile int *)0 = 0; +} +#endif + + CCMD (dir) { FString dir, path; diff --git a/src/win32/i_main.cpp b/src/win32/i_main.cpp index f2a4fab4d..c63e7bc1c 100644 --- a/src/win32/i_main.cpp +++ b/src/win32/i_main.cpp @@ -1288,20 +1288,3 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE nothing, LPSTR cmdline, int n MainThread = INVALID_HANDLE_VALUE; return 0; } - -//========================================================================== -// -// CCMD crashout -// -// Debugging routine for testing the crash logger. -// Useless in a debug build, because that doesn't enable the crash logger. -// -//========================================================================== - -#ifndef _DEBUG -#include "c_dispatch.h" -CCMD (crashout) -{ - *(int *)0 = 0; -} -#endif