core/CLogger.cpp
changeset 274 959c85596341
parent 271 fd561009f4f1
child 281 830ca16e6d84
     1.1 --- a/core/CLogger.cpp	Sat Jan 06 19:35:25 2007 +0000
     1.2 +++ b/core/CLogger.cpp	Sun Jan 07 01:30:28 2007 +0000
     1.3 @@ -35,6 +35,7 @@
     1.4  	{
     1.5  		g_SMAPI->ConPrint("[SM] Unexpected fatal logging error. SourceMod logging disabled.\n");
     1.6  		m_Active = false;
     1.7 +		return;
     1.8  	} else {
     1.9  		char date[32];
    1.10  		strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
    1.11 @@ -125,7 +126,10 @@
    1.12  
    1.13  	if (m_mode == LoggingMode_HL2)
    1.14  	{
    1.15 -		_PrintToHL2Log(vafmt);
    1.16 +		va_list ap;
    1.17 +		va_start(ap, vafmt);
    1.18 +		_PrintToHL2Log(vafmt, ap);
    1.19 +		va_end(ap);
    1.20  		return;
    1.21  	}
    1.22  
    1.23 @@ -135,7 +139,7 @@
    1.24  		_NewMapFile();
    1.25  	}
    1.26  
    1.27 -	static char msg[3072];
    1.28 +	char msg[3072];
    1.29  	va_list ap;
    1.30  	va_start(ap, vafmt);
    1.31  	vsnprintf(msg, sizeof(msg), vafmt, ap);
    1.32 @@ -215,7 +219,7 @@
    1.33  		m_ErrMapStart = false;
    1.34  	}
    1.35  
    1.36 -	static char msg[3072];
    1.37 +	char msg[3072];
    1.38  	va_list ap;
    1.39  	va_start(ap, vafmt);
    1.40  	vsnprintf(msg, sizeof(msg), vafmt, ap);
    1.41 @@ -235,6 +239,7 @@
    1.42  	} else {
    1.43  		g_SMAPI->ConPrint("[SM] Unexpected fatal logging error. SourceMod logging disabled.\n");
    1.44  		m_Active = false;
    1.45 +		return;
    1.46  	}
    1.47  
    1.48  	g_SMAPI->ConPrintf("L %s: %s\n", date, msg);
    1.49 @@ -265,17 +270,16 @@
    1.50  	m_ErrMapStart = false;
    1.51  }
    1.52  
    1.53 -void CLogger::_PrintToHL2Log(const char *fmt, ...)
    1.54 +void CLogger::_PrintToHL2Log(const char *fmt, va_list ap)
    1.55  {
    1.56 -	static char msg[3072];
    1.57 +	char msg[3072];
    1.58  	size_t len;
    1.59  
    1.60 -	va_list ap;
    1.61 -	va_start(ap, fmt);
    1.62 -	len = vsnprintf(msg, sizeof(msg)-1, fmt, ap);
    1.63 +	len = vsnprintf(msg, sizeof(msg)-2, fmt, ap);
    1.64 +	len = (len >= sizeof(msg)) ? (sizeof(msg) - 2) : len;
    1.65 +
    1.66  	msg[len++] = '\n';
    1.67  	msg[len] = '\0';
    1.68 -	va_end(ap);
    1.69  
    1.70  	engine->LogPrint(msg);
    1.71  }
    1.72 \ No newline at end of file