aboutsummaryrefslogtreecommitdiff
path: root/c-api/compat-5.3.c
diff options
context:
space:
mode:
Diffstat (limited to 'c-api/compat-5.3.c')
-rw-r--r--c-api/compat-5.3.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/c-api/compat-5.3.c b/c-api/compat-5.3.c
index b82c654..ebaf03f 100644
--- a/c-api/compat-5.3.c
+++ b/c-api/compat-5.3.c
@@ -205,11 +205,18 @@ COMPAT53_API void lua_rawsetp (lua_State *L, int i, const void *p) {
205 205
206 206
207COMPAT53_API lua_Integer lua_tointegerx (lua_State *L, int i, int *isnum) { 207COMPAT53_API lua_Integer lua_tointegerx (lua_State *L, int i, int *isnum) {
208 lua_Integer n = lua_tointeger(L, i); 208 int ok = 0;
209 if (isnum != NULL) { 209 lua_Number n = lua_tonumberx(L, i, &ok);
210 *isnum = (n != 0 || lua_isnumber(L, i)); 210 lua_Integer j = (lua_tointeger)(L, i); /* native lua_tointeger */
211 if (isnum == NULL)
212 isnum = &ok;
213 if (ok && n == j) {
214 *isnum = 1;
215 return j;
216 } else {
217 *isnum = 0;
218 return 0;
211 } 219 }
212 return n;
213} 220}
214 221
215 222