patch 8.1.0305: missing support for Lua 5.4 32 bits on Unix
Problem: Missing support for Lua 5.4 32 bits on Unix.
Solution: Define lua_newuserdatauv. (Kazunobu Kuriyama)
diff --git a/src/if_lua.c b/src/if_lua.c
index 7602c80..6e33734 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -164,7 +164,11 @@
#define lua_rawget dll_lua_rawget
#define lua_rawgeti dll_lua_rawgeti
#define lua_createtable dll_lua_createtable
-#define lua_newuserdata dll_lua_newuserdata
+#if LUA_VERSION_NUM >= 504
+ #define lua_newuserdatauv dll_lua_newuserdatauv
+#else
+ #define lua_newuserdata dll_lua_newuserdata
+#endif
#define lua_getmetatable dll_lua_getmetatable
#define lua_setfield dll_lua_setfield
#define lua_rawset dll_lua_rawset
@@ -261,7 +265,11 @@
int (*dll_lua_rawgeti) (lua_State *L, int idx, lua_Integer n);
#endif
void (*dll_lua_createtable) (lua_State *L, int narr, int nrec);
+#if LUA_VERSION_NUM >= 504
+void *(*dll_lua_newuserdatauv) (lua_State *L, size_t sz, int nuvalue);
+#else
void *(*dll_lua_newuserdata) (lua_State *L, size_t sz);
+#endif
int (*dll_lua_getmetatable) (lua_State *L, int objindex);
void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
void (*dll_lua_rawset) (lua_State *L, int idx);
@@ -362,7 +370,11 @@
{"lua_rawget", (luaV_function) &dll_lua_rawget},
{"lua_rawgeti", (luaV_function) &dll_lua_rawgeti},
{"lua_createtable", (luaV_function) &dll_lua_createtable},
+#if LUA_VERSION_NUM >= 504
+ {"lua_newuserdatauv", (luaV_function) &dll_lua_newuserdatauv},
+#else
{"lua_newuserdata", (luaV_function) &dll_lua_newuserdata},
+#endif
{"lua_getmetatable", (luaV_function) &dll_lua_getmetatable},
{"lua_setfield", (luaV_function) &dll_lua_setfield},
{"lua_rawset", (luaV_function) &dll_lua_rawset},
diff --git a/src/version.c b/src/version.c
index 8fa17ec..9cb1041 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 305,
+/**/
304,
/**/
303,