summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-07-14 20:49:42 +0200
committerBram Moolenaar <Bram@vim.org>2018-07-14 20:49:42 +0200
commit174136713181a1d1460951d7a0392b16603f81bb (patch)
tree5bca3ed0cd08ee862b825fb391759bef5d98d54a
parent4fc85003c5f53d6ceb3dbea4b8fae5681615a20c (diff)
downloadvim-git-174136713181a1d1460951d7a0392b16603f81bb.tar.gz
patch 8.1.0183: Lua API changed, breaking the buildv8.1.0183
Problem: Lua API changed, breaking the build. Solution: Adjust prototype of lua_rawgeti(). (Ken Takata, closes #3157, closes #3144)
-rw-r--r--src/if_lua.c24
-rw-r--r--src/version.c2
2 files changed, 21 insertions, 5 deletions
diff --git a/src/if_lua.c b/src/if_lua.c
index 3886401be..c0d809adc 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -253,14 +253,23 @@ void (*dll_lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n);
void (*dll_lua_pushboolean) (lua_State *L, int b);
void (*dll_lua_pushlightuserdata) (lua_State *L, void *p);
void (*dll_lua_getfield) (lua_State *L, int idx, const char *k);
+#if LUA_VERSION_NUM <= 502
void (*dll_lua_rawget) (lua_State *L, int idx);
void (*dll_lua_rawgeti) (lua_State *L, int idx, int n);
+#else
+int (*dll_lua_rawget) (lua_State *L, int idx);
+int (*dll_lua_rawgeti) (lua_State *L, int idx, lua_Integer n);
+#endif
void (*dll_lua_createtable) (lua_State *L, int narr, int nrec);
void *(*dll_lua_newuserdata) (lua_State *L, size_t sz);
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);
+#if LUA_VERSION_NUM <= 502
void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
+#else
+void (*dll_lua_rawseti) (lua_State *L, int idx, lua_Integer n);
+#endif
int (*dll_lua_setmetatable) (lua_State *L, int objindex);
int (*dll_lua_next) (lua_State *L, int idx);
/* libs */
@@ -962,7 +971,8 @@ luaV_dict_newindex(lua_State *L)
return 0;
if (*key == NUL)
luaL_error(L, "empty key");
- if (!lua_isnil(L, 3)) { /* read value? */
+ if (!lua_isnil(L, 3)) /* read value? */
+ {
luaV_checktypval(L, 3, &v, "setting dict item");
if (d->dv_scope == VAR_DEF_SCOPE && v.v_type == VAR_FUNC)
luaL_error(L, "cannot assign funcref to builtin scope");
@@ -1074,7 +1084,8 @@ luaV_funcref_call(lua_State *L)
status = FAIL;
else
{
- for (i = 0; i < n; i++) {
+ for (i = 0; i < n; i++)
+ {
luaV_checktypval(L, i + 2, &v, "calling funcref");
list_append_tv(f->args.vval.v_list, &v);
}
@@ -1531,13 +1542,16 @@ luaV_list(lua_State *L)
else
{
luaV_newlist(L, l);
- if (initarg) { /* traverse table to init dict */
+ if (initarg) /* traverse table to init list */
+ {
int notnil, i = 0;
typval_T v;
- do {
+ do
+ {
lua_rawgeti(L, 1, ++i);
notnil = !lua_isnil(L, -1);
- if (notnil) {
+ if (notnil)
+ {
luaV_checktypval(L, -1, &v, "vim.list");
list_append_tv(l, &v);
}
diff --git a/src/version.c b/src/version.c
index 679aabd3d..0cda7a5ae 100644
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 183,
+/**/
182,
/**/
181,