mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-25 06:15:37 +03:00
More error reporting
This commit is contained in:
parent
5f4d791129
commit
c622e1b6c7
@ -335,13 +335,16 @@ const char * CLangMngr::CLang::GetDef(const char *key)
|
|||||||
static char nfind[1024] = "ML_NOTFOUND";
|
static char nfind[1024] = "ML_NOTFOUND";
|
||||||
int ikey = lman->GetKeyEntry(key);
|
int ikey = lman->GetKeyEntry(key);
|
||||||
if (ikey == -1)
|
if (ikey == -1)
|
||||||
|
{
|
||||||
|
sprintf(nfind, "ML_NOTFOUND: %s", key);
|
||||||
return nfind;
|
return nfind;
|
||||||
|
}
|
||||||
for (unsigned int i = 0; i<m_LookUpTable.size(); i++)
|
for (unsigned int i = 0; i<m_LookUpTable.size(); i++)
|
||||||
{
|
{
|
||||||
if (m_LookUpTable[i]->GetKey() == ikey)
|
if (m_LookUpTable[i]->GetKey() == ikey)
|
||||||
return m_LookUpTable[i]->GetDef();
|
return m_LookUpTable[i]->GetDef();
|
||||||
}
|
}
|
||||||
return "ML_LNOTFOUND";
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -659,6 +662,23 @@ char * CLangMngr::FormatAmxString(AMX *amx, cell *params, int parm, int &len)
|
|||||||
int len;
|
int len;
|
||||||
char *key = get_amxstring(amx, params[parm++], 1, len);
|
char *key = get_amxstring(amx, params[parm++], 1, len);
|
||||||
const char *def = GetDef(cpLangName, key);
|
const char *def = GetDef(cpLangName, key);
|
||||||
|
if (def == NULL)
|
||||||
|
{
|
||||||
|
if (*pLangName != LANG_SERVER)
|
||||||
|
{
|
||||||
|
def = GetDef(g_vault.get("server_language"), key);
|
||||||
|
}
|
||||||
|
if (strcmp(cpLangName, "en")!=0 && strcmp(g_vault.get("server_language"), "en")!=0)
|
||||||
|
{
|
||||||
|
def = GetDef("en", key);
|
||||||
|
}
|
||||||
|
if (!def)
|
||||||
|
{
|
||||||
|
static char buf[255];
|
||||||
|
sprintf(buf, "ML_LNOTFOUND: %s", key);
|
||||||
|
def = buf;
|
||||||
|
}
|
||||||
|
}
|
||||||
while (*def)
|
while (*def)
|
||||||
{
|
{
|
||||||
switch (*def)
|
switch (*def)
|
||||||
@ -770,6 +790,7 @@ int CLangMngr::MergeDefinitionFile(const char *file)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
AMXXLOG_Log("[AMXX] Failed to open dictionary file: %s", file);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
MD5 md5;
|
MD5 md5;
|
||||||
@ -786,7 +807,7 @@ int CLangMngr::MergeDefinitionFile(const char *file)
|
|||||||
{
|
{
|
||||||
if ( (*iter)->val.compare(md5buffer) == 0 )
|
if ( (*iter)->val.compare(md5buffer) == 0 )
|
||||||
{
|
{
|
||||||
return 2;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
(*iter)->val.assign(md5buffer);
|
(*iter)->val.assign(md5buffer);
|
||||||
break;
|
break;
|
||||||
@ -806,6 +827,7 @@ int CLangMngr::MergeDefinitionFile(const char *file)
|
|||||||
fp = fopen(file, "rt");
|
fp = fopen(file, "rt");
|
||||||
if (!fp)
|
if (!fp)
|
||||||
{
|
{
|
||||||
|
AMXXLOG_Log("[AMXX] Failed to re-open dictionary file: %s", file);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -870,6 +892,8 @@ int CLangMngr::MergeDefinitionFile(const char *file)
|
|||||||
r = INSERT_FLOAT;
|
r = INSERT_FLOAT;
|
||||||
} else if (c == 's') {
|
} else if (c == 's') {
|
||||||
r = INSERT_STRING;
|
r = INSERT_STRING;
|
||||||
|
} else if (c == 'n') {
|
||||||
|
r = '\n';
|
||||||
} else {
|
} else {
|
||||||
r = 0;
|
r = 0;
|
||||||
}
|
}
|
||||||
|
@ -2618,9 +2618,9 @@ static cell get_lang(AMX *amx, cell *params)
|
|||||||
static cell register_dictionary(AMX *amx, cell *params)
|
static cell register_dictionary(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
g_langMngr.MergeDefinitionFile(build_pathname("%s/lang/%s",
|
int result = g_langMngr.MergeDefinitionFile(build_pathname("%s/lang/%s",
|
||||||
get_localinfo("amxx_datadir", "addons/amxx/data"), get_amxstring(amx, params[1], 1, len)));
|
get_localinfo("amxx_datadir", "addons/amxx/data"), get_amxstring(amx, params[1], 1, len)));
|
||||||
return 0;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// lang_exists(const name[]);
|
// lang_exists(const name[]);
|
||||||
|
Loading…
Reference in New Issue
Block a user