patch 8.1.0164: luaeval('vim.buffer().name') returns an error
Problem: luaeval('vim.buffer().name') returns an error.
Solution: Return an empty string. (Dominique Pelle, closes #3167)
diff --git a/src/if_lua.c b/src/if_lua.c
index df0ef34..f0d5a4d 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -1123,9 +1123,11 @@
{
const char *s = lua_tostring(L, 2);
if (strncmp(s, "name", 4) == 0)
- lua_pushstring(L, (char *) b->b_sfname);
+ lua_pushstring(L, (b->b_sfname == NULL)
+ ? "" : (char *) b->b_sfname);
else if (strncmp(s, "fname", 5) == 0)
- lua_pushstring(L, (char *) b->b_ffname);
+ lua_pushstring(L, (b->b_ffname == NULL)
+ ? "" : (char *) b->b_ffname);
else if (strncmp(s, "number", 6) == 0)
lua_pushinteger(L, b->b_fnum);
/* methods */