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 */
diff --git a/src/testdir/test_lua.vim b/src/testdir/test_lua.vim
index 7313471..2280792 100644
--- a/src/testdir/test_lua.vim
+++ b/src/testdir/test_lua.vim
@@ -198,11 +198,8 @@
 " Test vim.buffer().name and vim.buffer().fname
 func Test_buffer_name()
   new
-  " FIXME: for an unnamed buffer, I would expect
-  " vim.buffer().name to give an empty string, but
-  " it returns 0. Is it a bug?
-  " so this assert_equal is commented out.
-  " call assert_equal('', luaeval('vim.buffer().name'))
+  call assert_equal('', luaeval('vim.buffer().name'))
+  call assert_equal('', luaeval('vim.buffer().fname'))
   bwipe!
 
   new Xfoo
diff --git a/src/version.c b/src/version.c
index 0215c9d..4338a64 100644
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    164,
+/**/
     163,
 /**/
     162,