Mercurial > vim
changeset 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 | 2aab309de110 |
children | 42011b52bd3c |
files | src/if_lua.c src/testdir/test_lua.vim src/version.c |
diffstat | 3 files changed, 8 insertions(+), 7 deletions(-) [+] |
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 */
--- a/src/testdir/test_lua.vim +++ b/src/testdir/test_lua.vim @@ -198,11 +198,8 @@ endfunc " 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