diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2023-04-21 06:46:18 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2023-04-21 13:50:22 +0200 |
commit | 622b1ae38a36c3d26fad19faa788d622f7835921 (patch) | |
tree | bf33b076ad568a33893ad72ed469428c4c911c3d /runtime/lua/vim/shared.lua | |
parent | 9e79f7433eb0e8c5ab9b7c84ac7670aac2f56671 (diff) | |
download | rneovim-622b1ae38a36c3d26fad19faa788d622f7835921.tar.gz rneovim-622b1ae38a36c3d26fad19faa788d622f7835921.tar.bz2 rneovim-622b1ae38a36c3d26fad19faa788d622f7835921.zip |
fix(lua): vim.split may trim inner empty items
Problem:
`vim.split('a:::', ':', {trimempty=true})` trims inner empty items.
Regression from 9c49c1047079427ff0a2356cb37302934845108e
Solution:
Set `empty_start=false` when first non-empty item is found.
close #23212
Diffstat (limited to 'runtime/lua/vim/shared.lua')
-rw-r--r-- | runtime/lua/vim/shared.lua | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua index 1a96ef9bc4..08f8afd087 100644 --- a/runtime/lua/vim/shared.lua +++ b/runtime/lua/vim/shared.lua @@ -138,7 +138,9 @@ function vim.gsplit(s, sep, opts) local seg = _pass(s:find(sep, start, plain)) -- Trim empty segments from start/end. - if trimempty and seg == '' then + if seg ~= '' then + empty_start = false + elseif trimempty then while not done and seg == '' do empty_segs = empty_segs + 1 seg = _pass(s:find(sep, start, plain)) |