fix(lua): vim.split may trim inner empty items

Problem:
`vim.split('a:::', ':', {trimempty=true})` trims inner empty items.
Regression from 9c49c10470

Solution:
Set `empty_start=false` when first non-empty item is found.
close #23212
This commit is contained in:
Justin M. Keyes
2023-04-21 06:46:18 +02:00
parent 9e79f7433e
commit 622b1ae38a
2 changed files with 6 additions and 2 deletions

View File

@@ -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))