neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 4cff4185647c17b1a397c4c26ff7d8b0738f6396
parent d24f3d055ae7b3e9e47e9eb53a1dafb3ad44760c
Author: Gregory Anders <greg@gpanders.com>
Date:   Thu, 30 May 2024 19:57:47 -0500

fix(vim.text): remove assert from vim.text.hexdecode

Instead, return nil plus an error message if the input is invalid.

Diffstat:
Mruntime/doc/lua.txt | 5+++--
Mruntime/lua/vim/text.lua | 10+++++++---
2 files changed, 10 insertions(+), 5 deletions(-)

diff --git 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 @@ -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