diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-05-03 19:26:56 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-03 19:26:56 +0800 |
commit | e15991c8116cc7fa1c0ccf65b544199ec6ffa7e8 (patch) | |
tree | ace0ce1475826ca2ec9a73572708189ee1b43ed7 /src/cjson/lua_cjson.c | |
parent | 40ce8577977fcdce8ad76863c70eb522e4cefd4d (diff) | |
download | rneovim-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.c | 12 |
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; |