summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShmuel Zeigerman <solomuz0@gmail.com>2018-07-16 11:22:38 +0300
committerShmuel Zeigerman <solomuz0@gmail.com>2018-07-16 11:22:38 +0300
commit1cdc7f6cb704848bf95837bdab29347ebed925c7 (patch)
tree68b5ebffbaf321d9e94ca851e2ab1fc8afa6ea31
parent6511dc6549a2ee7c2f97636742ee2e01c79e7c09 (diff)
downloadlrexlib-1cdc7f6cb704848bf95837bdab29347ebed925c7.tar.gz
Oniguruma binding: add function internal_test (not to be documented).
-rw-r--r--src/oniguruma/lonig.c21
-rw-r--r--test/oniguruma_sets.lua10
2 files changed, 31 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 }
};
diff --git a/test/oniguruma_sets.lua b/test/oniguruma_sets.lua
index 3a6f640..a3b300f 100644
--- a/test/oniguruma_sets.lua
+++ b/test/oniguruma_sets.lua
@@ -110,6 +110,15 @@ local function set_f_split (lib, flg)
}
end
+local function set_f_internal_test (lib, flg)
+ return {
+ Name = "Function internal_test",
+ Func = lib.internal_test,
+ --{ params results }
+ { {""}, {true} },
+ }
+end
+
local function set_m_exec (lib, flg)
return {
Name = "Method exec",
@@ -151,6 +160,7 @@ return function (libname)
local lib = require (libname)
local flags = lib.flags ()
local sets = {
+ set_f_internal_test (lib, flags),
set_f_match (lib, flags),
set_f_find (lib, flags),
set_f_gmatch (lib, flags),