Merge pull request #173 from alliedmodders/tr-smc

Port SMC parsing API to transitional syntax.
This commit is contained in:
David Anderson
2014-11-19 22:38:19 -08:00
8 changed files with 281 additions and 228 deletions
+20 -22
View File
@@ -1,5 +1,5 @@
/**
* vim: set ts=4 :
* vim: set ts=4 sw=4 tw=99 noet :
* =============================================================================
* SourceMod Admin File Reader Plugin
* Reads the admin_groups.cfg file. Do not compile this directly.
@@ -38,13 +38,13 @@
#define GROUP_PASS_FIRST 1
#define GROUP_PASS_SECOND 2
static Handle:g_hGroupParser = INVALID_HANDLE;
static SMCParser g_hGroupParser;
static GroupId:g_CurGrp = INVALID_GROUP_ID;
static g_GroupState = GROUP_STATE_NONE;
static g_GroupPass = 0;
static bool:g_NeedReparse = false;
public SMCResult:ReadGroups_NewSection(Handle:smc, const String:name[], bool:opt_quotes)
public SMCResult ReadGroups_NewSection(SMCParser smc, const char[] name, bool opt_quotes)
{
if (g_IgnoreLevel)
{
@@ -80,14 +80,13 @@ public SMCResult:ReadGroups_NewSection(Handle:smc, const String:name[], bool:opt
return SMCParse_Continue;
}
public SMCResult:ReadGroups_KeyValue(Handle:smc,
const String:key[],
const String:value[],
bool:key_quotes,
bool:value_quotes)
public SMCResult ReadGroups_KeyValue(SMCParser smc,
const char[] key,
const char[] value,
bool key_quotes,
bool value_quotes)
{
if (g_CurGrp == INVALID_GROUP_ID
|| g_IgnoreLevel)
if (g_CurGrp == INVALID_GROUP_ID || g_IgnoreLevel)
{
return SMCParse_Continue;
}
@@ -165,7 +164,7 @@ public SMCResult:ReadGroups_KeyValue(Handle:smc,
return SMCParse_Continue;
}
public SMCResult:ReadGroups_EndSection(Handle:smc)
public SMCResult ReadGroups_EndSection(SMCParser smc)
{
/* If we're ignoring, skip out */
if (g_IgnoreLevel)
@@ -187,7 +186,7 @@ public SMCResult:ReadGroups_EndSection(Handle:smc)
return SMCParse_Continue;
}
public SMCResult:ReadGroups_CurrentLine(Handle:smc, const String:line[], lineno)
public SMCResult ReadGroups_CurrentLine(SMCParser smc, const char[] line, int lineno)
{
g_CurrentLine = lineno;
@@ -196,14 +195,13 @@ public SMCResult:ReadGroups_CurrentLine(Handle:smc, const String:line[], lineno)
static InitializeGroupParser()
{
if (g_hGroupParser == INVALID_HANDLE)
if (!g_hGroupParser)
{
g_hGroupParser = SMC_CreateParser();
SMC_SetReaders(g_hGroupParser,
ReadGroups_NewSection,
ReadGroups_KeyValue,
ReadGroups_EndSection);
SMC_SetRawLine(g_hGroupParser, ReadGroups_CurrentLine);
g_hGroupParser = SMCParser();
g_hGroupParser.OnEnterSection = ReadGroups_NewSection;
g_hGroupParser.OnKeyValue = ReadGroups_KeyValue;
g_hGroupParser.OnLeaveSection = ReadGroups_EndSection;
g_hGroupParser.OnRawLine = ReadGroups_CurrentLine;
}
}
@@ -216,11 +214,11 @@ static InternalReadGroups(const String:path[], pass)
g_GroupPass = pass;
g_NeedReparse = false;
new SMCError:err = SMC_ParseFile(g_hGroupParser, path);
SMCError err = g_hGroupParser.ParseFile(path);
if (err != SMCError_Okay)
{
decl String:buffer[64];
if (SMC_GetErrorString(err, buffer, sizeof(buffer)))
char buffer[64];
if (g_hGroupParser.GetErrorString(err, buffer, sizeof(buffer)))
{
ParseError("%s", buffer);
} else {
+30 -33
View File
@@ -36,11 +36,11 @@
#define OVERRIDE_STATE_LEVELS 1
#define OVERRIDE_STATE_OVERRIDES 2
static Handle:g_hOldOverrideParser = INVALID_HANDLE;
static Handle:g_hNewOverrideParser = INVALID_HANDLE;
static SMCParser g_hOldOverrideParser;
static SMCParser g_hNewOverrideParser;
static g_OverrideState = OVERRIDE_STATE_NONE;
public SMCResult:ReadOldOverrides_NewSection(Handle:smc, const String:name[], bool:opt_quotes)
public SMCResult ReadOldOverrides_NewSection(SMCParser smc, const char[] name, bool opt_quotes)
{
if (g_IgnoreLevel)
{
@@ -70,7 +70,7 @@ public SMCResult:ReadOldOverrides_NewSection(Handle:smc, const String:name[], bo
return SMCParse_Continue;
}
public SMCResult:ReadNewOverrides_NewSection(Handle:smc, const String:name[], bool:opt_quotes)
public SMCResult ReadNewOverrides_NewSection(SMCParser smc, const char[] name, bool opt_quotes)
{
if (g_IgnoreLevel)
{
@@ -93,19 +93,18 @@ public SMCResult:ReadNewOverrides_NewSection(Handle:smc, const String:name[], bo
return SMCParse_Continue;
}
public SMCResult:ReadOverrides_KeyValue(Handle:smc,
const String:key[],
const String:value[],
bool:key_quotes,
bool:value_quotes)
public SMCResult ReadOverrides_KeyValue(SMCParser smc,
const char[] key,
const char[] value,
bool key_quotes,
bool value_quotes)
{
if (g_OverrideState != OVERRIDE_STATE_OVERRIDES
|| g_IgnoreLevel)
if (g_OverrideState != OVERRIDE_STATE_OVERRIDES || g_IgnoreLevel)
{
return SMCParse_Continue;
}
new flags = ReadFlagString(value);
int flags = ReadFlagString(value);
if (key[0] == '@')
{
@@ -117,7 +116,7 @@ public SMCResult:ReadOverrides_KeyValue(Handle:smc,
return SMCParse_Continue;
}
public SMCResult:ReadOldOverrides_EndSection(Handle:smc)
public SMCResult ReadOldOverrides_EndSection(SMCParser smc)
{
/* If we're ignoring, skip out */
if (g_IgnoreLevel)
@@ -138,7 +137,7 @@ public SMCResult:ReadOldOverrides_EndSection(Handle:smc)
return SMCParse_Continue;
}
public SMCResult:ReadNewOverrides_EndSection(Handle:smc)
public SMCResult ReadNewOverrides_EndSection(SMCParser smc)
{
/* If we're ignoring, skip out */
if (g_IgnoreLevel)
@@ -155,7 +154,7 @@ public SMCResult:ReadNewOverrides_EndSection(Handle:smc)
return SMCParse_Continue;
}
public SMCResult:ReadOverrides_CurrentLine(Handle:smc, const String:line[], lineno)
public SMCResult ReadOverrides_CurrentLine(SMCParser smc, const char[] line, int lineno)
{
g_CurrentLine = lineno;
@@ -164,27 +163,25 @@ public SMCResult:ReadOverrides_CurrentLine(Handle:smc, const String:line[], line
static InitializeOverrideParsers()
{
if (g_hOldOverrideParser == INVALID_HANDLE)
if (!g_hOldOverrideParser)
{
g_hOldOverrideParser = SMC_CreateParser();
SMC_SetReaders(g_hOldOverrideParser,
ReadOldOverrides_NewSection,
ReadOverrides_KeyValue,
ReadOldOverrides_EndSection);
SMC_SetRawLine(g_hOldOverrideParser, ReadOverrides_CurrentLine);
g_hOldOverrideParser = SMCParser();
g_hOldOverrideParser.OnEnterSection = ReadOldOverrides_NewSection;
g_hOldOverrideParser.OnKeyValue = ReadOverrides_KeyValue;
g_hOldOverrideParser.OnLeaveSection = ReadOldOverrides_EndSection;
g_hOldOverrideParser.OnRawLine = ReadOverrides_CurrentLine;
}
if (g_hNewOverrideParser == INVALID_HANDLE)
if (!g_hNewOverrideParser)
{
g_hNewOverrideParser = SMC_CreateParser();
SMC_SetReaders(g_hNewOverrideParser,
ReadNewOverrides_NewSection,
ReadOverrides_KeyValue,
ReadNewOverrides_EndSection);
SMC_SetRawLine(g_hNewOverrideParser, ReadOverrides_CurrentLine);
g_hNewOverrideParser = SMCParser();
g_hNewOverrideParser.OnEnterSection = ReadNewOverrides_NewSection;
g_hNewOverrideParser.OnKeyValue = ReadOverrides_KeyValue;
g_hNewOverrideParser.OnLeaveSection = ReadNewOverrides_EndSection;
g_hNewOverrideParser.OnRawLine = ReadOverrides_CurrentLine;
}
}
InternalReadOverrides(Handle:parser, const String:file[])
InternalReadOverrides(SMCParser parser, const char[] file)
{
BuildPath(Path_SM, g_Filename, sizeof(g_Filename), file);
@@ -192,11 +189,11 @@ InternalReadOverrides(Handle:parser, const String:file[])
InitGlobalStates();
g_OverrideState = OVERRIDE_STATE_NONE;
new SMCError:err = SMC_ParseFile(parser, g_Filename);
SMCError err = parser.ParseFile(g_Filename);
if (err != SMCError_Okay)
{
decl String:buffer[64];
if (SMC_GetErrorString(err, buffer, sizeof(buffer)))
char buffer[64];
if (parser.GetErrorString(err, buffer, sizeof(buffer)))
{
ParseError("%s", buffer);
} else {
+11 -12
View File
@@ -1,5 +1,5 @@
/**
* vim: set ts=4 :
* vim: set ts=4 sw=4 tw=99 noet :
* =============================================================================
* SourceMod Admin File Reader Plugin
* Reads the admins.cfg file. Do not compile this directly.
@@ -35,7 +35,7 @@
#define USER_STATE_ADMINS 1
#define USER_STATE_INADMIN 2
static Handle:g_hUserParser = INVALID_HANDLE;
static SMCParser g_hUserParser;
static g_UserState = USER_STATE_NONE;
static String:g_CurAuth[64];
static String:g_CurIdent[64];
@@ -210,14 +210,13 @@ public SMCResult:ReadUsers_CurrentLine(Handle:smc, const String:line[], lineno)
static InitializeUserParser()
{
if (g_hUserParser == INVALID_HANDLE)
if (!g_hUserParser)
{
g_hUserParser = SMC_CreateParser();
SMC_SetReaders(g_hUserParser,
ReadUsers_NewSection,
ReadUsers_KeyValue,
ReadUsers_EndSection);
SMC_SetRawLine(g_hUserParser, ReadUsers_CurrentLine);
g_hUserParser = SMCParser();
g_hUserParser.OnEnterSection = ReadUsers_NewSection;
g_hUserParser.OnKeyValue = ReadUsers_KeyValue;
g_hUserParser.OnLeaveSection = ReadUsers_EndSection;
g_hUserParser.OnRawLine = ReadUsers_CurrentLine;
g_GroupArray = CreateArray();
}
@@ -233,11 +232,11 @@ ReadUsers()
InitGlobalStates();
g_UserState = USER_STATE_NONE;
new SMCError:err = SMC_ParseFile(g_hUserParser, g_Filename);
SMCError err = g_hUserParser.ParseFile(g_Filename);
if (err != SMCError_Okay)
{
decl String:buffer[64];
if (SMC_GetErrorString(err, buffer, sizeof(buffer)))
char buffer[64];
if (g_hUserParser.GetErrorString(err, buffer, sizeof(buffer)))
{
ParseError("%s", buffer);
}