diff options
author | Gregory Anders <greg@gpanders.com> | 2024-05-30 19:57:47 -0500 |
---|---|---|
committer | Gregory Anders <greg@gpanders.com> | 2024-05-31 08:25:35 -0500 |
commit | 4cff4185647c17b1a397c4c26ff7d8b0738f6396 (patch) | |
tree | 1a4b6afbb4133e2c2846a5902a6ec1bfdcb5e71c | |
parent | d24f3d055ae7b3e9e47e9eb53a1dafb3ad44760c (diff) | |
download | rneovim-4cff4185647c17b1a397c4c26ff7d8b0738f6396.tar.gz rneovim-4cff4185647c17b1a397c4c26ff7d8b0738f6396.tar.bz2 rneovim-4cff4185647c17b1a397c4c26ff7d8b0738f6396.zip |
fix(vim.text): remove assert from vim.text.hexdecode
Instead, return nil plus an error message if the input is invalid.
-rw-r--r-- | runtime/doc/lua.txt | 5 | ||||
-rw-r--r-- | runtime/lua/vim/text.lua | 10 |
2 files changed, 10 insertions, 5 deletions
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index 36d6e0d41e..8e600adeb9 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -4385,8 +4385,9 @@ vim.text.hexdecode({enc}) *vim.text.hexdecode()* Parameters: ~ • {enc} (`string`) String to decode - Return: ~ - (`string`) Decoded string + Return (multiple): ~ + (`string?`) Decoded string + (`string?`) Error message, if any vim.text.hexencode({str}) *vim.text.hexencode()* Hex encode a string. diff --git a/runtime/lua/vim/text.lua b/runtime/lua/vim/text.lua index bc90d490aa..0be3396464 100644 --- a/runtime/lua/vim/text.lua +++ b/runtime/lua/vim/text.lua @@ -18,15 +18,19 @@ end --- Hex decode a string. --- --- @param enc string String to decode ---- @return string : Decoded string +--- @return string? : Decoded string +--- @return string? : Error message, if any function M.hexdecode(enc) - assert(#enc % 2 == 0, 'string must have an even number of hex characters') + if #enc % 2 ~= 0 then + return nil, 'string must have an even number of hex characters' + end + local str = {} ---@type string[] for i = 1, #enc, 2 do local n = assert(tonumber(enc:sub(i, i + 1), 16)) str[#str + 1] = string.char(n) end - return table.concat(str) + return table.concat(str), nil end return M |