aboutsummaryrefslogtreecommitdiff
path: root/src/cjson/lua_cjson.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-05-03 19:26:56 +0800
committerGitHub <noreply@github.com>2024-05-03 19:26:56 +0800
commite15991c8116cc7fa1c0ccf65b544199ec6ffa7e8 (patch)
treeace0ce1475826ca2ec9a73572708189ee1b43ed7 /src/cjson/lua_cjson.c
parent40ce8577977fcdce8ad76863c70eb522e4cefd4d (diff)
downloadrneovim-e15991c8116cc7fa1c0ccf65b544199ec6ffa7e8.tar.gz
rneovim-e15991c8116cc7fa1c0ccf65b544199ec6ffa7e8.tar.bz2
rneovim-e15991c8116cc7fa1c0ccf65b544199ec6ffa7e8.zip
fix(vim.json): properly treat luanil options as booleans (#28622)
Note: Upstream doesn't have this. It's an Nvim addition.
Diffstat (limited to 'src/cjson/lua_cjson.c')
-rw-r--r--src/cjson/lua_cjson.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/cjson/lua_cjson.c b/src/cjson/lua_cjson.c
index 6af43d8eb7..254355e5a2 100644
--- a/src/cjson/lua_cjson.c
+++ b/src/cjson/lua_cjson.c
@@ -174,9 +174,9 @@ typedef struct {
typedef struct {
/* convert null in json objects to lua nil instead of vim.NIL */
- int luanil_object;
+ bool luanil_object;
/* convert null in json arrays to lua nil instead of vim.NIL */
- int luanil_array;
+ bool luanil_array;
} json_options_t;
typedef struct {
@@ -1453,15 +1453,11 @@ static int json_decode(lua_State *l)
luaL_checktype(l, -1, LUA_TTABLE);
lua_getfield(l, -1, "object");
- if (!lua_isnil(l, -1)) {
- options.luanil_object = true;
- }
+ options.luanil_object = lua_toboolean(l, -1);
lua_pop(l, 1);
lua_getfield(l, -1, "array");
- if (!lua_isnil(l, -1)) {
- options.luanil_array = true;
- }
+ options.luanil_array = lua_toboolean(l, -1);
/* Also pop the luanil table */
lua_pop(l, 2);
break;