sdl/i_system.cpp: fix compiler errors

This commit is contained in:
James R 2023-10-14 18:49:29 -07:00
parent 68a8f2b274
commit bca2c8cb19

View file

@ -25,6 +25,8 @@
#include <thread> #include <thread>
#include <fmt/format.h>
#include <signal.h> #include <signal.h>
#ifdef _WIN32 #ifdef _WIN32
@ -369,53 +371,16 @@ static void I_ShowErrorMessageBox(const char *messagefordevelopers, boolean dump
static void I_ReportSignal(int num, int coredumped) static void I_ReportSignal(int num, int coredumped)
{ {
//static char msg[] = "oh no! back to reality!\r\n"; //static char msg[] = "oh no! back to reality!\r\n";
const char * sigmsg; auto report = [coredumped](std::string sigmsg)
char msg[128];
switch (num)
{ {
// case SIGINT:
// sigmsg = "SIGINT - interrupted";
// break;
case SIGILL:
sigmsg = "SIGILL - illegal instruction - invalid function image";
break;
case SIGFPE:
sigmsg = "SIGFPE - mathematical exception";
break;
case SIGSEGV:
sigmsg = "SIGSEGV - segment violation";
break;
// case SIGTERM:
// sigmsg = "SIGTERM - Software termination signal from kill";
// break;
// case SIGBREAK:
// sigmsg = "SIGBREAK - Ctrl-Break sequence";
// break;
case SIGABRT:
sigmsg = "SIGABRT - abnormal termination triggered by abort call";
break;
default:
sprintf(msg,"signal number %d", num);
if (coredumped)
sigmsg = 0;
else
sigmsg = msg;
}
if (coredumped) if (coredumped)
{ {
if (sigmsg) sigmsg += " (core dumped)";
sprintf(msg, "%s (core dumped)", sigmsg);
else
strcat(msg, " (core dumped)");
sigmsg = msg;
} }
I_OutputMsg("\nProcess killed by signal: %s\n\n", sigmsg); I_OutputMsg("\nProcess killed by signal: %s\n\n", sigmsg.c_str());
I_ShowErrorMessageBox(sigmsg, I_ShowErrorMessageBox(sigmsg.c_str(),
#if defined (UNIXBACKTRACE) #if defined (UNIXBACKTRACE)
true true
#elif defined (_WIN32) #elif defined (_WIN32)
@ -424,6 +389,34 @@ static void I_ReportSignal(int num, int coredumped)
false false
#endif #endif
); );
};
switch (num)
{
// case SIGINT:
// report("SIGINT - interrupted");
// break;
case SIGILL:
report("SIGILL - illegal instruction - invalid function image");
break;
case SIGFPE:
report("SIGFPE - mathematical exception");
break;
case SIGSEGV:
report("SIGSEGV - segment violation");
break;
// case SIGTERM:
// report("SIGTERM - Software termination signal from kill");
// break;
// case SIGBREAK:
// report("SIGBREAK - Ctrl-Break sequence");
// break;
case SIGABRT:
report("SIGABRT - abnormal termination triggered by abort call");
break;
default:
report(fmt::format("signal number {}", num));
}
} }
#ifndef NEWSIGNALHANDLER #ifndef NEWSIGNALHANDLER
@ -581,8 +574,8 @@ static void I_StartupConsole(void)
signal(SIGTTIN, SIG_IGN); signal(SIGTTIN, SIG_IGN);
signal(SIGTTOU, SIG_IGN); signal(SIGTTOU, SIG_IGN);
consolevent = !M_CheckParm("-noconsole"); consolevent = static_cast<SDL_bool>(!M_CheckParm("-noconsole"));
framebuffer = M_CheckParm("-framebuffer"); framebuffer = static_cast<SDL_bool>(M_CheckParm("-framebuffer"));
if (framebuffer) if (framebuffer)
consolevent = SDL_FALSE; consolevent = SDL_FALSE;
@ -622,7 +615,7 @@ static void I_StartupConsole(void)
void I_GetConsoleEvents(void) void I_GetConsoleEvents(void)
{ {
// we use this when sending back commands // we use this when sending back commands
event_t ev = {0}; event_t ev = {};
char key = 0; char key = 0;
ssize_t d; ssize_t d;
@ -2199,43 +2192,43 @@ static const char *locateWad(void)
// examine default dirs // examine default dirs
#ifdef DEFAULTWADLOCATION1 #ifdef DEFAULTWADLOCATION1
I_OutputMsg(","DEFAULTWADLOCATION1); I_OutputMsg("," DEFAULTWADLOCATION1);
strcpy(returnWadPath, DEFAULTWADLOCATION1); strcpy(returnWadPath, DEFAULTWADLOCATION1);
if (isWadPathOk(returnWadPath)) if (isWadPathOk(returnWadPath))
return returnWadPath; return returnWadPath;
#endif #endif
#ifdef DEFAULTWADLOCATION2 #ifdef DEFAULTWADLOCATION2
I_OutputMsg(","DEFAULTWADLOCATION2); I_OutputMsg("," DEFAULTWADLOCATION2);
strcpy(returnWadPath, DEFAULTWADLOCATION2); strcpy(returnWadPath, DEFAULTWADLOCATION2);
if (isWadPathOk(returnWadPath)) if (isWadPathOk(returnWadPath))
return returnWadPath; return returnWadPath;
#endif #endif
#ifdef DEFAULTWADLOCATION3 #ifdef DEFAULTWADLOCATION3
I_OutputMsg(","DEFAULTWADLOCATION3); I_OutputMsg("," DEFAULTWADLOCATION3);
strcpy(returnWadPath, DEFAULTWADLOCATION3); strcpy(returnWadPath, DEFAULTWADLOCATION3);
if (isWadPathOk(returnWadPath)) if (isWadPathOk(returnWadPath))
return returnWadPath; return returnWadPath;
#endif #endif
#ifdef DEFAULTWADLOCATION4 #ifdef DEFAULTWADLOCATION4
I_OutputMsg(","DEFAULTWADLOCATION4); I_OutputMsg("," DEFAULTWADLOCATION4);
strcpy(returnWadPath, DEFAULTWADLOCATION4); strcpy(returnWadPath, DEFAULTWADLOCATION4);
if (isWadPathOk(returnWadPath)) if (isWadPathOk(returnWadPath))
return returnWadPath; return returnWadPath;
#endif #endif
#ifdef DEFAULTWADLOCATION5 #ifdef DEFAULTWADLOCATION5
I_OutputMsg(","DEFAULTWADLOCATION5); I_OutputMsg("," DEFAULTWADLOCATION5);
strcpy(returnWadPath, DEFAULTWADLOCATION5); strcpy(returnWadPath, DEFAULTWADLOCATION5);
if (isWadPathOk(returnWadPath)) if (isWadPathOk(returnWadPath))
return returnWadPath; return returnWadPath;
#endif #endif
#ifdef DEFAULTWADLOCATION6 #ifdef DEFAULTWADLOCATION6
I_OutputMsg(","DEFAULTWADLOCATION6); I_OutputMsg("," DEFAULTWADLOCATION6);
strcpy(returnWadPath, DEFAULTWADLOCATION6); strcpy(returnWadPath, DEFAULTWADLOCATION6);
if (isWadPathOk(returnWadPath)) if (isWadPathOk(returnWadPath))
return returnWadPath; return returnWadPath;
#endif #endif
#ifdef DEFAULTWADLOCATION7 #ifdef DEFAULTWADLOCATION7
I_OutputMsg(","DEFAULTWADLOCATION7); I_OutputMsg("," DEFAULTWADLOCATION7);
strcpy(returnWadPath, DEFAULTWADLOCATION7); strcpy(returnWadPath, DEFAULTWADLOCATION7);
if (isWadPathOk(returnWadPath)) if (isWadPathOk(returnWadPath))
return returnWadPath; return returnWadPath;
@ -2252,21 +2245,21 @@ static const char *locateWad(void)
#endif #endif
#ifdef DEFAULTSEARCHPATH1 #ifdef DEFAULTSEARCHPATH1
// find in /usr/local // find in /usr/local
I_OutputMsg(", in:"DEFAULTSEARCHPATH1); I_OutputMsg(", in:" DEFAULTSEARCHPATH1);
WadPath = searchWad(DEFAULTSEARCHPATH1); WadPath = searchWad(DEFAULTSEARCHPATH1);
if (WadPath) if (WadPath)
return WadPath; return WadPath;
#endif #endif
#ifdef DEFAULTSEARCHPATH2 #ifdef DEFAULTSEARCHPATH2
// find in /usr/games // find in /usr/games
I_OutputMsg(", in:"DEFAULTSEARCHPATH2); I_OutputMsg(", in:" DEFAULTSEARCHPATH2);
WadPath = searchWad(DEFAULTSEARCHPATH2); WadPath = searchWad(DEFAULTSEARCHPATH2);
if (WadPath) if (WadPath)
return WadPath; return WadPath;
#endif #endif
#ifdef DEFAULTSEARCHPATH3 #ifdef DEFAULTSEARCHPATH3
// find in ??? // find in ???
I_OutputMsg(", in:"DEFAULTSEARCHPATH3); I_OutputMsg(", in:" DEFAULTSEARCHPATH3);
WadPath = searchWad(DEFAULTSEARCHPATH3); WadPath = searchWad(DEFAULTSEARCHPATH3);
if (WadPath) if (WadPath)
return WadPath; return WadPath;
@ -2310,7 +2303,7 @@ const char *I_LocateWad(void)
static long get_entry(const char* name, const char* buf) static long get_entry(const char* name, const char* buf)
{ {
long val; long val;
char* hit = strstr(buf, name); char* hit = strstr(const_cast<char*>(buf), name);
if (hit == NULL) { if (hit == NULL) {
return -1; return -1;
} }