lua: Fixed broken __lt/__le operators caused by lnum patch.
[openwrt/staging/chunkeey.git] / package / utils / lua / patches-host / 012-lnum-fix-ltle-relational-operators.patch
diff --git a/package/utils/lua/patches-host/012-lnum-fix-ltle-relational-operators.patch b/package/utils/lua/patches-host/012-lnum-fix-ltle-relational-operators.patch
new file mode 100644 (file)
index 0000000..937fc13
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/src/lvm.c
++++ b/src/lvm.c
+@@ -284,7 +284,8 @@ int luaV_lessthan (lua_State *L, const T
+     else
+         return luai_numlt( nvalue_fast(l), cast_num(ivalue(r)) );
+-  } else if ((res = call_orderTM(L, l, r, TM_LT)) != -1)
++  } 
++  if ((res = call_orderTM(L, l, r, TM_LT)) != -1)
+     return res;
+   return luaG_ordererror(L, l, r);
+@@ -322,7 +323,8 @@ static int lessequal (lua_State *L, cons
+     else
+         return luai_numle( nvalue_fast(l), cast_num(ivalue(r)) );
+-  } else if ((res = call_orderTM(L, l, r, TM_LE)) != -1)  /* first try `le' */
++  } 
++  if ((res = call_orderTM(L, l, r, TM_LE)) != -1)  /* first try `le' */
+     return res;
+   else if ((res = call_orderTM(L, r, l, TM_LT)) != -1)  /* else try `lt' */
+     return !res;