From 67b309a0b76d5316d700d5acac7e45e7149694dc Mon Sep 17 00:00:00 2001 From: Josh Yelon Date: Tue, 7 Sep 2021 18:22:37 -0400 Subject: [PATCH] eris: change sort order for lua_genlt --- luprex/eris-master/src/lapi.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/luprex/eris-master/src/lapi.c b/luprex/eris-master/src/lapi.c index a7664702..feec81a5 100644 --- a/luprex/eris-master/src/lapi.c +++ b/luprex/eris-master/src/lapi.c @@ -312,6 +312,17 @@ LUA_API void lua_arith (lua_State *L, int op) { lua_unlock(L); } +static int sortorder(int t) { + switch (t) { + case LUA_TNIL: return 0; + case LUA_TNUMBER: return 1; + case LUA_TSTRING: return 2; + case LUA_TBOOLEAN: return 3; + case LUA_TTABLE: return 1000000; + default: return t+1000; + } +} + LUA_API int lua_genlt (lua_State *L, int index1, int index2) { StkId o1, o2; int i = 0; @@ -321,7 +332,7 @@ LUA_API int lua_genlt (lua_State *L, int index1, int index2) { int t1 = ttypenv(o1); int t2 = ttypenv(o2); if (t1 != t2) { - i = (t1 < t2); + i = (sortorder(t1) < sortorder(t2)); } else if (t1 == LUA_TNUMBER) { i = luai_numlt(L, nvalue(o1), nvalue(o2)); } else if (t1 == LUA_TSTRING) {