mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 06:58:35 +00:00
Merge pull request #17529 from seandewar/api-string-oopsie
fix(api): convert blob to NUL-terminated API string
This commit is contained in:
@@ -57,7 +57,7 @@ typedef struct {
|
|||||||
const size_t len_ = (size_t)(len); \
|
const size_t len_ = (size_t)(len); \
|
||||||
const blob_T *const blob_ = (blob); \
|
const blob_T *const blob_ = (blob); \
|
||||||
kvi_push(edata->stack, STRING_OBJ(((String) { \
|
kvi_push(edata->stack, STRING_OBJ(((String) { \
|
||||||
.data = len_ != 0 ? xmemdup(blob_->bv_ga.ga_data, len_) : NULL, \
|
.data = len_ != 0 ? xmemdupz(blob_->bv_ga.ga_data, len_) : xstrdup(""), \
|
||||||
.size = len_ \
|
.size = len_ \
|
||||||
}))); \
|
}))); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
@@ -102,6 +102,13 @@ describe('luaeval(vim.api.…)', function()
|
|||||||
eq(false, funcs.luaeval('vim.api.nvim__id(false)'))
|
eq(false, funcs.luaeval('vim.api.nvim__id(false)'))
|
||||||
eq(NIL, funcs.luaeval('vim.api.nvim__id(nil)'))
|
eq(NIL, funcs.luaeval('vim.api.nvim__id(nil)'))
|
||||||
|
|
||||||
|
-- API strings from Blobs can work as NUL-terminated C strings
|
||||||
|
eq('Vim(call):E5555: API call: Vim:E15: Invalid expression: ',
|
||||||
|
exc_exec('call nvim_eval(v:_null_blob)'))
|
||||||
|
eq('Vim(call):E5555: API call: Vim:E15: Invalid expression: ',
|
||||||
|
exc_exec('call nvim_eval(0z)'))
|
||||||
|
eq(1, eval('nvim_eval(0z31)'))
|
||||||
|
|
||||||
eq(0, eval([[type(luaeval('vim.api.nvim__id(1)'))]]))
|
eq(0, eval([[type(luaeval('vim.api.nvim__id(1)'))]]))
|
||||||
eq(1, eval([[type(luaeval('vim.api.nvim__id("1")'))]]))
|
eq(1, eval([[type(luaeval('vim.api.nvim__id("1")'))]]))
|
||||||
eq(3, eval([[type(luaeval('vim.api.nvim__id({1})'))]]))
|
eq(3, eval([[type(luaeval('vim.api.nvim__id({1})'))]]))
|
||||||
|
Reference in New Issue
Block a user