summaryrefslogtreecommitdiff
path: root/src/oniguruma/lonig.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/oniguruma/lonig.c')
-rw-r--r--src/oniguruma/lonig.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/oniguruma/lonig.c b/src/oniguruma/lonig.c
index 0af863f..ea7c236 100644
--- a/src/oniguruma/lonig.c
+++ b/src/oniguruma/lonig.c
@@ -319,6 +319,26 @@ static int LOnig_version (lua_State *L) {
return 1;
}
+static int LOnig_internal_test (lua_State *L) {
+ unsigned int i;
+ for (i=1; i<sizeof(Encodings)/sizeof(Encodings[0]); i++) {
+ if (fcmp(&Encodings[i-1], &Encodings[i]) >= 0) {
+ lua_pushboolean(L, 0);
+ lua_pushstring(L, "Array 'Encodings' is not properly sorted.");
+ return 2;
+ }
+ }
+ for (i=1; i<sizeof(Syntaxes)/sizeof(Syntaxes[0]); i++) {
+ if (fcmp(&Syntaxes[i-1], &Syntaxes[i]) >= 0) {
+ lua_pushboolean(L, 0);
+ lua_pushstring(L, "Array 'Syntaxes' is not properly sorted.");
+ return 2;
+ }
+ }
+ lua_pushboolean(L, 1);
+ return 1;
+}
+
static const luaL_Reg r_methods[] = {
{ "exec", algm_exec },
{ "tfind", algm_tfind }, /* old name: match */
@@ -341,6 +361,7 @@ static const luaL_Reg r_functions[] = {
{ "flags", LOnig_get_flags },
{ "version", LOnig_version },
{ "setdefaultsyntax", LOnig_setdefaultsyntax },
+ { "internal_test", LOnig_internal_test },
{ NULL, NULL }
};