Finalized (not tested!)
This commit is contained in:
parent
d9b6fa1f93
commit
380f560fa4
@ -36,7 +36,7 @@ static cell AMX_NATIVE_CALL regex_match(AMX *amx, cell *params)
|
|||||||
const char *err = x->mError;
|
const char *err = x->mError;
|
||||||
*eOff = x->mErrorOffset;
|
*eOff = x->mErrorOffset;
|
||||||
MF_SetAmxString(amx, params[4], err?err:"unknown", params[5]);
|
MF_SetAmxString(amx, params[4], err?err:"unknown", params[5]);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int e = x->Match(str);
|
int e = x->Match(str);
|
||||||
@ -46,7 +46,11 @@ static cell AMX_NATIVE_CALL regex_match(AMX *amx, cell *params)
|
|||||||
cell *res = MF_GetAmxAddr(amx, params[3]);
|
cell *res = MF_GetAmxAddr(amx, params[3]);
|
||||||
*res = x->mErrorOffset;
|
*res = x->mErrorOffset;
|
||||||
x->Clear();
|
x->Clear();
|
||||||
return -1;
|
return -2;
|
||||||
|
} else if (e == 0) {
|
||||||
|
*res = 0;
|
||||||
|
x->Clear();
|
||||||
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
cell *res = MF_GetAmxAddr(amx, params[3]);
|
cell *res = MF_GetAmxAddr(amx, params[3]);
|
||||||
*res = x->mSubStrings;
|
*res = x->mSubStrings;
|
||||||
@ -78,9 +82,27 @@ static cell AMX_NATIVE_CALL regex_substr(AMX *amx, cell *params)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL regex_free(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
cell *c = MF_GetAmxAddr(amx, params[1]);
|
||||||
|
int id = *c;
|
||||||
|
*c = 0;
|
||||||
|
if (id >= (int)PEL.size() || id < 0 || PEL[id]->isFree())
|
||||||
|
{
|
||||||
|
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid regex handle %d", id);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
RegEx *x = PEL[id];
|
||||||
|
x->Clear();
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
AMX_NATIVE_INFO regex_Natives[] = {
|
AMX_NATIVE_INFO regex_Natives[] = {
|
||||||
{"regex_match", regex_match},
|
{"regex_match", regex_match},
|
||||||
{"regex_substr", regex_substr},
|
{"regex_substr", regex_substr},
|
||||||
|
{"regex_free", regex_free},
|
||||||
{NULL, NULL},
|
{NULL, NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user