diff src/if_lua.c @ 14296:396b71b242b2 v8.1.0164

patch 8.1.0164: luaeval('vim.buffer().name') returns an error commit https://github.com/vim/vim/commit/fe08df452af10db8a24dbeb1bd9ef09492a4bc66 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jul 7 23:07:41 2018 +0200 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 https://github.com/vim/vim/issues/3167)
author Christian Brabandt <cb@256bit.org>
date Sat, 07 Jul 2018 23:15:05 +0200
parents e3bc8cdc94dd
children fe651f98e173
line wrap: on
line diff
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -1123,9 +1123,11 @@ luaV_buffer_index(lua_State *L)
     {
 	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 */