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 <fmt/format.h>
#include <signal.h>
#ifdef _WIN32
@ -369,53 +371,16 @@ static void I_ShowErrorMessageBox(const char *messagefordevelopers, boolean dump
static void I_ReportSignal(int num, int coredumped)
{
//static char msg[] = "oh no! back to reality!\r\n";
const char * sigmsg;
char msg[128];
switch (num)
auto report = [coredumped](std::string sigmsg)
{
// 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 (sigmsg)
sprintf(msg, "%s (core dumped)", sigmsg);
else
strcat(msg, " (core dumped)");
sigmsg = msg;
sigmsg += " (core dumped)";
}
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)
true
#elif defined (_WIN32)
@ -424,6 +389,34 @@ static void I_ReportSignal(int num, int coredumped)
false
#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
@ -581,8 +574,8 @@ static void I_StartupConsole(void)
signal(SIGTTIN, SIG_IGN);
signal(SIGTTOU, SIG_IGN);
consolevent = !M_CheckParm("-noconsole");
framebuffer = M_CheckParm("-framebuffer");
consolevent = static_cast<SDL_bool>(!M_CheckParm("-noconsole"));
framebuffer = static_cast<SDL_bool>(M_CheckParm("-framebuffer"));
if (framebuffer)
consolevent = SDL_FALSE;
@ -622,7 +615,7 @@ static void I_StartupConsole(void)
void I_GetConsoleEvents(void)
{
// we use this when sending back commands
event_t ev = {0};
event_t ev = {};
char key = 0;
ssize_t d;
@ -2310,7 +2303,7 @@ const char *I_LocateWad(void)
static long get_entry(const char* name, const char* buf)
{
long val;
char* hit = strstr(buf, name);
char* hit = strstr(const_cast<char*>(buf), name);
if (hit == NULL) {
return -1;
}