mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-25 14:25:38 +03:00
added request at28068 (split log files)
fixed all native debug errors in core
This commit is contained in:
parent
ed1b2914be
commit
a5df31570e
@ -59,7 +59,7 @@ static cell AMX_NATIVE_CALL set_xvar_num(AMX *amx, cell *params)
|
|||||||
{
|
{
|
||||||
if (g_xvars.setValue(params[1], params[2]))
|
if (g_xvars.setValue(params[1], params[2]))
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Invalid xvar id");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1104,7 +1104,7 @@ static cell AMX_NATIVE_CALL amx_md5_file(AMX *amx, cell *params)
|
|||||||
|
|
||||||
if (!fp)
|
if (!fp)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Cant open file \"%s\"", file);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1311,8 +1311,7 @@ static cell AMX_NATIVE_CALL register_event(AMX *amx, cell *params) /* 2 param */
|
|||||||
|
|
||||||
if ((pos = g_events.getEventId(sTemp)) == 0)
|
if ((pos = g_events.getEventId(sTemp)) == 0)
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] Invalid event (name \"%s\") (plugin \"%s\")", sTemp, plugin->getName());
|
LogError(amx, AMX_ERR_NATIVE, "Invalid event (name \"%s\") (plugin \"%s\")", sTemp, plugin->getName());
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1611,9 +1610,7 @@ static cell AMX_NATIVE_CALL message_begin(AMX *amx, cell *params) /* 4 param */
|
|||||||
if (params[2] < 1 || ((params[2] > 63) // maximal number of engine messages
|
if (params[2] < 1 || ((params[2] > 63) // maximal number of engine messages
|
||||||
&& !GET_USER_MSG_NAME(PLID, params[2], NULL)))
|
&& !GET_USER_MSG_NAME(PLID, params[2], NULL)))
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] Plugin called message_begin with an invalid message id (%d).", params[2]);
|
LogError(amx, AMX_ERR_NATIVE, "Plugin called message_begin with an invalid message id (%d).", params[2]);
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1628,7 +1625,7 @@ static cell AMX_NATIVE_CALL message_begin(AMX *amx, cell *params) /* 4 param */
|
|||||||
case MSG_PVS_R: case MSG_PAS_R:
|
case MSG_PVS_R: case MSG_PAS_R:
|
||||||
if (numparam < 3)
|
if (numparam < 3)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Invalid number of parameters passed");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1645,7 +1642,7 @@ static cell AMX_NATIVE_CALL message_begin(AMX *amx, cell *params) /* 4 param */
|
|||||||
case MSG_ONE:
|
case MSG_ONE:
|
||||||
if (numparam < 4)
|
if (numparam < 4)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Invalid number of parameters passed");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1806,12 +1803,6 @@ static cell AMX_NATIVE_CALL get_time(AMX *amx, cell *params) /* 3 param */
|
|||||||
time_t td = time(NULL);
|
time_t td = time(NULL);
|
||||||
tm* lt = localtime(&td);
|
tm* lt = localtime(&td);
|
||||||
|
|
||||||
if (lt == 0)
|
|
||||||
{
|
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
char szDate[512];
|
char szDate[512];
|
||||||
strftime(szDate, 511, sptemp, lt);
|
strftime(szDate, 511, sptemp, lt);
|
||||||
|
|
||||||
@ -1828,7 +1819,7 @@ static cell AMX_NATIVE_CALL format_time(AMX *amx, cell *params) /* 3 param */
|
|||||||
|
|
||||||
if (lt == 0)
|
if (lt == 0)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't get localtime");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1854,7 +1845,7 @@ static cell AMX_NATIVE_CALL parse_time(AMX *amx, cell *params) /* 3 param */
|
|||||||
|
|
||||||
if (mytime == 0)
|
if (mytime == 0)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't get localtime");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1865,7 +1856,7 @@ static cell AMX_NATIVE_CALL parse_time(AMX *amx, cell *params) /* 3 param */
|
|||||||
|
|
||||||
if (mytime == 0)
|
if (mytime == 0)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't get localtime");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2217,9 +2208,7 @@ static cell AMX_NATIVE_CALL set_task(AMX *amx, cell *params) /* 2 param */
|
|||||||
|
|
||||||
if (iFunc == -1)
|
if (iFunc == -1)
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] Function is not present (function \"%s\") (plugin \"%s\")", stemp, plugin->getName());
|
LogError(amx, AMX_ERR_NATIVE, "Function is not present (function \"%s\") (plugin \"%s\")", stemp, plugin->getName());
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2385,7 +2374,7 @@ static cell AMX_NATIVE_CALL pause(AMX *amx, cell *params) /* 3 param */
|
|||||||
|
|
||||||
if (flags & 2) // pause function
|
if (flags & 2) // pause function
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] This usage of the native pause() has been deprecated!");
|
LogError(amx, AMX_ERR_NATIVE, "This usage of the native pause() has been deprecated!");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if (flags & 4)
|
else if (flags & 4)
|
||||||
@ -2421,7 +2410,7 @@ static cell AMX_NATIVE_CALL unpause(AMX *amx, cell *params) /* 3 param */
|
|||||||
|
|
||||||
if (flags & 2)
|
if (flags & 2)
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] This usage of the native pause() has been deprecated!");
|
LogError(amx, AMX_ERR_NATIVE, "This usage of the native pause() has been deprecated!");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if (flags & 4)
|
else if (flags & 4)
|
||||||
@ -2576,7 +2565,7 @@ static cell AMX_NATIVE_CALL precache_sound(AMX *amx, cell *params) /* 1 param */
|
|||||||
{
|
{
|
||||||
if (g_dontprecache)
|
if (g_dontprecache)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Precaching not allowed");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2592,7 +2581,7 @@ static cell AMX_NATIVE_CALL precache_model(AMX *amx, cell *params) /* 1 param */
|
|||||||
{
|
{
|
||||||
if (g_dontprecache)
|
if (g_dontprecache)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Precaching not allowed");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2844,7 +2833,7 @@ static cell AMX_NATIVE_CALL parse_loguser(AMX *amx, cell *params)
|
|||||||
|
|
||||||
if (len < 6) // no user to parse!?
|
if (len < 6) // no user to parse!?
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "No user name specified");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2868,7 +2857,7 @@ static cell AMX_NATIVE_CALL parse_loguser(AMX *amx, cell *params)
|
|||||||
/******** GET AUTHID **********/
|
/******** GET AUTHID **********/
|
||||||
if (len <= 0)
|
if (len <= 0)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "No Authid found");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2891,7 +2880,7 @@ static cell AMX_NATIVE_CALL parse_loguser(AMX *amx, cell *params)
|
|||||||
/******** GET USERID **********/
|
/******** GET USERID **********/
|
||||||
if (len <= 0)
|
if (len <= 0)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "No Userid found");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3364,8 +3353,7 @@ static cell AMX_NATIVE_CALL callfunc_push_byval(AMX *amx, cell *params)
|
|||||||
|
|
||||||
if (g_CallFunc_CurParam == CALLFUNC_MAXPARAMS)
|
if (g_CallFunc_CurParam == CALLFUNC_MAXPARAMS)
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] callfunc_push_xxx: maximal parameters num: %d", CALLFUNC_MAXPARAMS);
|
LogError(amx, AMX_ERR_NATIVE, "Callfunc_push_xxx: maximal parameters num: %d", CALLFUNC_MAXPARAMS);
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,6 +72,7 @@
|
|||||||
#include "amxxlog.h"
|
#include "amxxlog.h"
|
||||||
|
|
||||||
#define AMXXLOG_Log g_log.Log
|
#define AMXXLOG_Log g_log.Log
|
||||||
|
#define AMXXLOG_Error g_log.LogError
|
||||||
#define AMX_VERSION "1.71"
|
#define AMX_VERSION "1.71"
|
||||||
|
|
||||||
extern AMX_NATIVE_INFO core_Natives[];
|
extern AMX_NATIVE_INFO core_Natives[];
|
||||||
|
@ -48,6 +48,7 @@ CLog::CLog()
|
|||||||
{
|
{
|
||||||
m_LogType = 0;
|
m_LogType = 0;
|
||||||
m_LogFile.clear();
|
m_LogFile.clear();
|
||||||
|
m_FoundError = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
CLog::~CLog()
|
CLog::~CLog()
|
||||||
@ -226,3 +227,44 @@ void CLog::Log(const char *fmt, ...)
|
|||||||
ALERT(at_logged, "%s\n", msg_);
|
ALERT(at_logged, "%s\n", msg_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CLog::LogError(const char *fmt, ...)
|
||||||
|
{
|
||||||
|
static char file[256];
|
||||||
|
|
||||||
|
if (m_FoundError)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// get time
|
||||||
|
time_t td;
|
||||||
|
time(&td);
|
||||||
|
tm *curTime = localtime(&td);
|
||||||
|
|
||||||
|
char date[32];
|
||||||
|
strftime(date, 31, "%m/%d/%Y - %H:%M:%S", curTime);
|
||||||
|
|
||||||
|
// msg
|
||||||
|
static char msg[3072];
|
||||||
|
|
||||||
|
va_list arglst;
|
||||||
|
va_start(arglst, fmt);
|
||||||
|
vsnprintf(msg, 3071, fmt, arglst);
|
||||||
|
va_end(arglst);
|
||||||
|
|
||||||
|
FILE *pF = NULL;
|
||||||
|
build_pathname_r(file, sizeof(file)-1, "%s/error_%02d%02d%02d.log", g_log_dir.c_str(), curTime->tm_mon + 1, curTime->tm_mday, 100 - curTime->tm_year);
|
||||||
|
pF = fopen(file, "a+");
|
||||||
|
|
||||||
|
if (pF)
|
||||||
|
{
|
||||||
|
fprintf(pF, "L %s: %s\n", date, msg);
|
||||||
|
fclose(pF);
|
||||||
|
} else {
|
||||||
|
ALERT(at_logged, "[AMXX] Unexpected fatal logging error (couldn't open %s for a+). AMXX Error Logging disabled for this map.\n", file);
|
||||||
|
m_FoundError = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// print on server console
|
||||||
|
print_srvconsole("L %s: %s\n", date, msg);
|
||||||
|
}
|
@ -36,6 +36,7 @@ class CLog
|
|||||||
private:
|
private:
|
||||||
String m_LogFile;
|
String m_LogFile;
|
||||||
int m_LogType;
|
int m_LogType;
|
||||||
|
bool m_FoundError;
|
||||||
|
|
||||||
void GetLastFile(int &outMonth, int &outDay, String &outFilename);
|
void GetLastFile(int &outMonth, int &outDay, String &outFilename);
|
||||||
void UseFile(const String &fileName);
|
void UseFile(const String &fileName);
|
||||||
@ -47,6 +48,7 @@ public:
|
|||||||
void CloseFile();
|
void CloseFile();
|
||||||
void MapChange();
|
void MapChange();
|
||||||
void Log(const char *fmt, ...);
|
void Log(const char *fmt, ...);
|
||||||
|
void LogError(const char *fmt, ...);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __AMXXLOG_H__
|
#endif // __AMXXLOG_H__
|
||||||
|
@ -556,15 +556,15 @@ void Debugger::Clear()
|
|||||||
void Debugger::DisplayTrace(const char *message)
|
void Debugger::DisplayTrace(const char *message)
|
||||||
{
|
{
|
||||||
if (message != NULL)
|
if (message != NULL)
|
||||||
AMXXLOG_Log("%s", message);
|
AMXXLOG_Error("%s", message);
|
||||||
|
|
||||||
char buffer[512];
|
char buffer[512];
|
||||||
FormatError(buffer, sizeof(buffer)-1);
|
FormatError(buffer, sizeof(buffer)-1);
|
||||||
|
|
||||||
const char *filename = _GetFilename();
|
const char *filename = _GetFilename();
|
||||||
|
|
||||||
AMXXLOG_Log("[AMXX] Displaying debug trace (plugin \"%s\")", filename);
|
AMXXLOG_Error("[AMXX] Displaying debug trace (plugin \"%s\")", filename);
|
||||||
AMXXLOG_Log("[AMXX] %s", buffer);
|
AMXXLOG_Error("[AMXX] %s", buffer);
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
long lLine;
|
long lLine;
|
||||||
@ -573,7 +573,7 @@ void Debugger::DisplayTrace(const char *message)
|
|||||||
while (pTrace)
|
while (pTrace)
|
||||||
{
|
{
|
||||||
GetTraceInfo(pTrace, lLine, function, file);
|
GetTraceInfo(pTrace, lLine, function, file);
|
||||||
AMXXLOG_Log(
|
AMXXLOG_Error(
|
||||||
"[AMXX] [%d] %s::%s (line %d)",
|
"[AMXX] [%d] %s::%s (line %d)",
|
||||||
count,
|
count,
|
||||||
file,
|
file,
|
||||||
@ -633,7 +633,7 @@ void Debugger::GenericMessage(AMX *amx, int err)
|
|||||||
Debugger::FmtGenericMsg(amx, err, buffer, sizeof(buffer)-1);
|
Debugger::FmtGenericMsg(amx, err, buffer, sizeof(buffer)-1);
|
||||||
|
|
||||||
if (buffer[0] != '\0')
|
if (buffer[0] != '\0')
|
||||||
AMXXLOG_Log("[AMXX] %s", buffer);
|
AMXXLOG_Error("[AMXX] %s", buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
Debugger::~Debugger()
|
Debugger::~Debugger()
|
||||||
@ -762,7 +762,7 @@ int Handler::HandleNative(const char *native, int index, int trap)
|
|||||||
}
|
}
|
||||||
if (!trap)
|
if (!trap)
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] Runtime failure %d occurred in native filter. Aborting plugin load.", err);
|
AMXXLOG_Error("[AMXX] Runtime failure %d occurred in native filter. Aborting plugin load.", err);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
//handle this manually.
|
//handle this manually.
|
||||||
@ -773,7 +773,7 @@ int Handler::HandleNative(const char *native, int index, int trap)
|
|||||||
} else if (err != -1) {
|
} else if (err != -1) {
|
||||||
LogError(m_pAmx, err, NULL);
|
LogError(m_pAmx, err, NULL);
|
||||||
}
|
}
|
||||||
AMXXLOG_Log("[AMXX] NOTE: Runtime failures in native filters are not good!");
|
AMXXLOG_Error("[AMXX] NOTE: Runtime failures in native filters are not good!");
|
||||||
retval = 0;
|
retval = 0;
|
||||||
}
|
}
|
||||||
if (!trap)
|
if (!trap)
|
||||||
@ -833,10 +833,10 @@ int Handler::HandleError(const char *msg)
|
|||||||
pDebugger->DisplayTrace(msg);
|
pDebugger->DisplayTrace(msg);
|
||||||
} else {
|
} else {
|
||||||
if (GetLastMsg())
|
if (GetLastMsg())
|
||||||
AMXXLOG_Log("%s", GetLastMsg());
|
AMXXLOG_Error("%s", GetLastMsg());
|
||||||
Debugger::GenericMessage(m_pAmx, err);
|
Debugger::GenericMessage(m_pAmx, err);
|
||||||
}
|
}
|
||||||
AMXXLOG_Log("[AMXX] NOTE: Runtime failures in an error filter are not good!");
|
AMXXLOG_Error("[AMXX] NOTE: Runtime failures in an error filter are not good!");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pDebugger)
|
if (pDebugger)
|
||||||
@ -864,7 +864,7 @@ static cell AMX_NATIVE_CALL set_error_filter(AMX *amx, cell *params)
|
|||||||
if (!pHandler)
|
if (!pHandler)
|
||||||
{
|
{
|
||||||
Debugger::GenericMessage(amx, AMX_ERR_NOTFOUND);
|
Debugger::GenericMessage(amx, AMX_ERR_NOTFOUND);
|
||||||
AMXXLOG_Log("[AMXX] Plugin not initialized correctly.");
|
AMXXLOG_Error("[AMXX] Plugin not initialized correctly.");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -872,7 +872,7 @@ static cell AMX_NATIVE_CALL set_error_filter(AMX *amx, cell *params)
|
|||||||
if (err != AMX_ERR_NONE)
|
if (err != AMX_ERR_NONE)
|
||||||
{
|
{
|
||||||
Debugger::GenericMessage(amx, AMX_ERR_NOTFOUND);
|
Debugger::GenericMessage(amx, AMX_ERR_NOTFOUND);
|
||||||
AMXXLOG_Log("[AMXX] Function not found: %s", function);
|
AMXXLOG_Error("[AMXX] Function not found: %s", function);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -952,7 +952,7 @@ static cell AMX_NATIVE_CALL set_native_filter(AMX *amx, cell *params)
|
|||||||
if (!pHandler)
|
if (!pHandler)
|
||||||
{
|
{
|
||||||
Debugger::GenericMessage(amx, AMX_ERR_NOTFOUND);
|
Debugger::GenericMessage(amx, AMX_ERR_NOTFOUND);
|
||||||
AMXXLOG_Log("[AMXX] Plugin not initialized correctly.");
|
AMXXLOG_Error("[AMXX] Plugin not initialized correctly.");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -971,7 +971,7 @@ static cell AMX_NATIVE_CALL set_native_filter(AMX *amx, cell *params)
|
|||||||
if (err != AMX_ERR_NONE)
|
if (err != AMX_ERR_NONE)
|
||||||
{
|
{
|
||||||
Debugger::GenericMessage(amx, AMX_ERR_NOTFOUND);
|
Debugger::GenericMessage(amx, AMX_ERR_NOTFOUND);
|
||||||
AMXXLOG_Log("[AMXX] Function not found: %s", function);
|
AMXXLOG_Error("[AMXX] Function not found: %s", function);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ static cell AMX_NATIVE_CALL read_file(AMX *amx, cell *params) /* 5 param */
|
|||||||
|
|
||||||
if ((fp =fopen(build_pathname("%s", szFile), "r")) == NULL)
|
if ((fp =fopen(build_pathname("%s", szFile), "r")) == NULL)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't read file \"%s\"", szFile);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ static cell AMX_NATIVE_CALL write_file(AMX *amx, cell *params) /* 3 param */
|
|||||||
{
|
{
|
||||||
if ((pFile = fopen(sFile, "a")) == NULL)
|
if ((pFile = fopen(sFile, "a")) == NULL)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't write file \"%s\"", sFile);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ static cell AMX_NATIVE_CALL write_file(AMX *amx, cell *params) /* 3 param */
|
|||||||
{
|
{
|
||||||
if ((pFile = fopen(sFile, "w")) == NULL)
|
if ((pFile = fopen(sFile, "w")) == NULL)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't write file \"%s\"", sFile);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,7 +219,7 @@ static cell AMX_NATIVE_CALL write_file(AMX *amx, cell *params) /* 3 param */
|
|||||||
|
|
||||||
if ((pTemp = tmpfile()) == NULL)
|
if ((pTemp = tmpfile()) == NULL)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't create temp file");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,7 +249,7 @@ static cell AMX_NATIVE_CALL write_file(AMX *amx, cell *params) /* 3 param */
|
|||||||
// now rewrite because file can be now smaller...
|
// now rewrite because file can be now smaller...
|
||||||
if ((pFile = fopen(sFile, "w")) == NULL)
|
if ((pFile = fopen(sFile, "w")) == NULL)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't write file \"%s\"", sFile);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,14 +80,14 @@ const char *translate(AMX *amx, cell amxaddr, const char *key)
|
|||||||
const char *testlang = amx_mldebug->string;
|
const char *testlang = amx_mldebug->string;
|
||||||
if (!g_langMngr.LangExists(testlang))
|
if (!g_langMngr.LangExists(testlang))
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] \"%s\" is an invalid debug language", testlang);
|
AMXXLOG_Error("[AMXX] \"%s\" is an invalid debug language", testlang);
|
||||||
validlang = false;
|
validlang = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_langMngr.GetDef(testlang, key, debug_status);
|
g_langMngr.GetDef(testlang, key, debug_status);
|
||||||
|
|
||||||
if (validlang && debug_status == ERR_BADKEY)
|
if (validlang && debug_status == ERR_BADKEY)
|
||||||
AMXXLOG_Log("[AMXX] Language key \"%s\" not found for language \"%s\", check \"%s\"", key, testlang, GetFileName(amx));
|
AMXXLOG_Error("[AMXX] Language key \"%s\" not found for language \"%s\", check \"%s\"", key, testlang, GetFileName(amx));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (def == NULL)
|
if (def == NULL)
|
||||||
@ -96,7 +96,7 @@ const char *translate(AMX *amx, cell amxaddr, const char *key)
|
|||||||
{
|
{
|
||||||
if (status == ERR_BADLANG && (BadLang_Table.AltFindOrInsert(pLangName).last + 120.0f < gpGlobals->time))
|
if (status == ERR_BADLANG && (BadLang_Table.AltFindOrInsert(pLangName).last + 120.0f < gpGlobals->time))
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] Language \"%s\" not found", pLangName);
|
AMXXLOG_Error("[AMXX] Language \"%s\" not found", pLangName);
|
||||||
BadLang_Table.AltFindOrInsert(pLangName).last = gpGlobals->time;
|
BadLang_Table.AltFindOrInsert(pLangName).last = gpGlobals->time;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1474,10 +1474,10 @@ extern "C" void LogError(AMX *amx, int err, const char *fmt, ...)
|
|||||||
if (!pDebugger)
|
if (!pDebugger)
|
||||||
{
|
{
|
||||||
if (fmt)
|
if (fmt)
|
||||||
AMXXLOG_Log("%s", msg_buffer);
|
AMXXLOG_Error("%s", msg_buffer);
|
||||||
|
|
||||||
Debugger::GenericMessage(amx, err);
|
Debugger::GenericMessage(amx, err);
|
||||||
AMXXLOG_Log("[AMXX] To enable debug mode, add \"debug\" after the plugin name in plugins.ini (without quotes).");
|
AMXXLOG_Error("[AMXX] To enable debug mode, add \"debug\" after the plugin name in plugins.ini (without quotes).");
|
||||||
//destroy original error code so the original is not displayed again
|
//destroy original error code so the original is not displayed again
|
||||||
} else {
|
} else {
|
||||||
pDebugger->SetTracedError(err);
|
pDebugger->SetTracedError(err);
|
||||||
|
@ -832,7 +832,7 @@ static cell AMX_NATIVE_CALL format_args(AMX *amx, cell *params)
|
|||||||
|
|
||||||
if (pos < 0)
|
if (pos < 0)
|
||||||
{
|
{
|
||||||
amx_RaiseError(amx, AMX_ERR_NATIVE);
|
LogError(amx, AMX_ERR_NATIVE, "Pos has to be a positive number");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user