/* ================ Host_Error This shuts down both the client and server ================ */ void Host_Error (const char *error, ...) { va_list argptr; char string[1024]; static qboolean inerror = false; if (inerror) Sys_Error ("Host_Error: recursively entered"); inerror = true; SCR_EndLoadingPlaque (); // reenable screen updates va_start (argptr,error); q_vsnprintf (string, sizeof(string), error, argptr); va_end (argptr); Con_Printf ("Host_Error: %s\n",string); if (sv.active) Host_ShutdownServer (false); if (cls.state == ca_dedicated) Sys_Error ("Host_Error: %s\n",string); // dedicated servers exit CL_Disconnect (); cls.demonum = -1; cl.intermission = 0; //johnfitz -- for errors during intermissions (changelevel with no map found, etc.) inerror = false; longjmp (host_abortserver, 1); }
void Sys_Error (const char *error, ...) { va_list argptr; char text[MAX_PRINTMSG]; va_start (argptr, error); q_vsnprintf (text, sizeof(text), error, argptr); va_end (argptr); if (con_debuglog) { LOG_Print (ERROR_PREFIX); LOG_Print (text); LOG_Print ("\n\n"); } Host_Shutdown (); printf (ERROR_PREFIX "%s\n\n", text); #ifdef DEBUG_BUILD getch(); #endif exit (1); }
int q_snprintf (char *str, size_t size, const char *format, ...) { int ret; va_list argptr; va_start (argptr, format); ret = q_vsnprintf (str, size, format, argptr); va_end (argptr); return ret; }
/* ================= Host_ClientCommands Send text over to the client to be executed ================= */ void Host_ClientCommands (const char *fmt, ...) { va_list argptr; char string[1024]; va_start (argptr,fmt); q_vsnprintf (string, sizeof(string), fmt, argptr); va_end (argptr); MSG_WriteByte (&host_client->message, svc_stufftext); MSG_WriteString (&host_client->message, string); }
/* ============== PR_ParseError ============== */ void PR_ParseError (const char *error, ...) { va_list argptr; char string[1024]; va_start (argptr, error); q_vsnprintf (string, sizeof(string), error, argptr); va_end (argptr); printf ("%s(%i) : %s\n", strings+s_file, pr_source_line, string); longjmp (pr_parse_abort, 1); }
char *va (const char *format, ...) { va_list argptr; char *va_buf; va_buf = get_va_buffer (); va_start (argptr, format); if (q_vsnprintf(va_buf, VA_BUFFERLEN, format, argptr) >= VA_BUFFERLEN) Con_DPrintf("%s: overflow (string truncated)\n", __thisfunc__); va_end (argptr); return va_buf; }
/* ============== PR_ParseWarning ============== */ void PR_ParseWarning (const char *error, ...) { va_list argptr; char string[1024]; if (!hcc_WarningsActive) return; va_start (argptr, error); q_vsnprintf (string, sizeof(string), error, argptr); va_end (argptr); printf ("%s(%d) : warning : %s\n", strings+s_file, lx_SourceLine, string); }
int qerr_snprintf (const char *caller, int linenum, char *str, size_t size, const char *format, ...) { int ret; va_list argptr; va_start (argptr, format); ret = q_vsnprintf (str, size, format, argptr); va_end (argptr); if ((size_t)ret >= size) Sys_Error("%s: %d: string buffer overflow!", caller, linenum); return ret; }
void PR_RunError (const char *error, ...) { va_list argptr; char string[1024]; va_start (argptr, error); q_vsnprintf (string, sizeof(string), error, argptr); va_end (argptr); PrintStatement(pr_statements + pr_xstatement); PrintCallHistory(); Con_Printf("%s\n", string); pr_depth = 0; // dump the stack so host_error can shutdown functions Host_Error("Program error"); }
/* ================= SV_BroadcastPrintf Sends text to all active clients ================= */ void SV_BroadcastPrintf (const char *fmt, ...) { va_list argptr; char string[1024]; int i; va_start (argptr,fmt); q_vsnprintf (string, sizeof(string), fmt, argptr); va_end (argptr); for (i = 0; i < svs.maxclients; i++) { if (svs.clients[i].active && svs.clients[i].spawned) { MSG_WriteByte (&svs.clients[i].message, svc_print); MSG_WriteString (&svs.clients[i].message, string); } } }
void Sys_Error (const char *error, ...) { va_list argptr; char text[1024]; DWORD dummy; va_start (argptr, error); q_vsnprintf (text, sizeof(text), error, argptr); va_end (argptr); if (isDedicated) WriteFile (houtput, errortxt1, strlen(errortxt1), &dummy, NULL); /* SDL will put these into its own stderr log, so print to stderr even in graphical mode. */ fputs (errortxt1, stderr); Host_Shutdown (); fputs (errortxt2, stderr); fputs (text, stderr); fputs ("\n\n", stderr); if (!isDedicated) PL_ErrorDialog(text); else { WriteFile (houtput, errortxt2, strlen(errortxt2), &dummy, NULL); WriteFile (houtput, text, strlen(text), &dummy, NULL); WriteFile (houtput, "\r\n", 2, &dummy, NULL); SDL_Delay (3000); /* show the console 3 more seconds */ } // shut down QHOST hooks if necessary // DeinitConProc (); #if defined(_DEBUG) && defined(_WIN32) __debugbreak(); #endif exit (1); }
/* ================ SV_Error Sends a datagram to all the clients informing them of the server crash, then exits ================ */ void SV_Error (const char *error, ...) { va_list argptr; static char string[1024]; static qboolean inerror = false; if (inerror) Sys_Error ("%s: recursive error! (%s)", __thisfunc__, string); inerror = true; va_start (argptr, error); q_vsnprintf (string, sizeof(string), error, argptr); va_end (argptr); Con_Printf ("%s: %s\n", __thisfunc__, string); SV_FinalMessage (va("server crashed: %s\n", string)); SV_Shutdown (); Sys_Error ("%s: %s\n", __thisfunc__, string); }
/* ================ Host_EndGame ================ */ void Host_EndGame (const char *message, ...) { va_list argptr; char string[1024]; va_start (argptr,message); q_vsnprintf (string, sizeof(string), message, argptr); va_end (argptr); Con_DPrintf ("Host_EndGame: %s\n",string); if (sv.active) Host_ShutdownServer (false); if (cls.state == ca_dedicated) Sys_Error ("Host_EndGame: %s\n",string); // dedicated servers exit if (cls.demonum != -1) CL_NextDemo (); else CL_Disconnect (); longjmp (host_abortserver, 1); }
void Sys_Error (const char *error, ...) { va_list argptr; char text[MAX_PRINTMSG]; va_start (argptr, error); q_vsnprintf (text, sizeof(text), error, argptr); va_end (argptr); if (con_debuglog) { LOG_Print (ERROR_PREFIX); LOG_Print (text); LOG_Print ("\n\n"); } Sys_EnableTerm(); Host_Shutdown (); fprintf(stderr, ERROR_PREFIX "%s\n\n", text); // Sys_AtExit is called by exit to shutdown the system exit (1); }
void Sys_Printf (const char *fmt, ...) { va_list argptr; char text[1024]; DWORD dummy; va_start (argptr,fmt); q_vsnprintf (text, sizeof(text), fmt, argptr); va_end (argptr); if (isDedicated) { WriteFile(houtput, text, strlen(text), &dummy, NULL); } else { /* SDL will put these into its own stdout log, so print to stdout even in graphical mode. */ fputs (text, stdout); #ifdef _WIN32 OutputDebugStringA(text); #endif } }