Software /
code /
prosody
Comparison
util-src/table.c @ 12575:1f6f05a98fcd
util-src: Remove Lua 5.1 compat macros
Part of #1600
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 01 Jul 2022 21:21:21 +0200 |
parent | 12405:308ed64dc69b |
child | 12591:494577d883ff |
comparison
equal
deleted
inserted
replaced
12574:18d33668c5fa | 12575:1f6f05a98fcd |
---|---|
2 #include <lauxlib.h> | 2 #include <lauxlib.h> |
3 | 3 |
4 #ifndef LUA_MAXINTEGER | 4 #ifndef LUA_MAXINTEGER |
5 #include <stdint.h> | 5 #include <stdint.h> |
6 #define LUA_MAXINTEGER PTRDIFF_MAX | 6 #define LUA_MAXINTEGER PTRDIFF_MAX |
7 #endif | |
8 | |
9 #if (LUA_VERSION_NUM > 501) | |
10 #define lua_equal(L, A, B) lua_compare(L, A, B, LUA_OPEQ) | |
11 #endif | 7 #endif |
12 | 8 |
13 static int Lcreate_table(lua_State *L) { | 9 static int Lcreate_table(lua_State *L) { |
14 lua_createtable(L, luaL_checkinteger(L, 1), luaL_checkinteger(L, 2)); | 10 lua_createtable(L, luaL_checkinteger(L, 1), luaL_checkinteger(L, 2)); |
15 return 1; | 11 return 1; |
45 luaL_argcheck(L, f > 0 || e < LUA_MAXINTEGER + f, 3, | 41 luaL_argcheck(L, f > 0 || e < LUA_MAXINTEGER + f, 3, |
46 "too many elements to move"); | 42 "too many elements to move"); |
47 n = e - f + 1; /* number of elements to move */ | 43 n = e - f + 1; /* number of elements to move */ |
48 luaL_argcheck(L, t <= LUA_MAXINTEGER - n + 1, 4, | 44 luaL_argcheck(L, t <= LUA_MAXINTEGER - n + 1, 4, |
49 "destination wrap around"); | 45 "destination wrap around"); |
50 if (t > e || t <= f || (tt != 1 && !lua_equal(L, 1, tt))) { | 46 if (t > e || t <= f || (tt != 1 && !lua_compare(L, 1, tt, LUA_OPEQ))) { |
51 for (i = 0; i < n; i++) { | 47 for (i = 0; i < n; i++) { |
52 lua_rawgeti(L, 1, f + i); | 48 lua_rawgeti(L, 1, f + i); |
53 lua_rawseti(L, tt, t + i); | 49 lua_rawseti(L, tt, t + i); |
54 } | 50 } |
55 } else { | 51 } else { |
63 lua_pushvalue(L, tt); /* return destination table */ | 59 lua_pushvalue(L, tt); /* return destination table */ |
64 return 1; | 60 return 1; |
65 } | 61 } |
66 | 62 |
67 int luaopen_util_table(lua_State *L) { | 63 int luaopen_util_table(lua_State *L) { |
68 #if (LUA_VERSION_NUM > 501) | |
69 luaL_checkversion(L); | 64 luaL_checkversion(L); |
70 #endif | |
71 lua_createtable(L, 0, 2); | 65 lua_createtable(L, 0, 2); |
72 lua_pushcfunction(L, Lcreate_table); | 66 lua_pushcfunction(L, Lcreate_table); |
73 lua_setfield(L, -2, "create"); | 67 lua_setfield(L, -2, "create"); |
74 lua_pushcfunction(L, Lpack); | 68 lua_pushcfunction(L, Lpack); |
75 lua_setfield(L, -2, "pack"); | 69 lua_setfield(L, -2, "pack"); |