260307.2 · 280a011f02cf10033f164fe039c07fbf9e25e606
With a non-default --delimiter, --{accept,with}-nth should not remove trailing whitespaces
reading declarations
@@ -218,11 +218,12 @@ func Tokenize(text string, delimiter Delimiter) []Token { return withPrefixLengths(tokens, 0) } -// StripLastDelimiter removes the trailing delimiter and whitespaces+// StripLastDelimiter removes the trailing delimiter func StripLastDelimiter(str string, delimiter Delimiter) string { if delimiter.str != nil {- str = strings.TrimSuffix(str, *delimiter.str)- } else if delimiter.regex != nil {+ return strings.TrimSuffix(str, *delimiter.str)+ }+ if delimiter.regex != nil { locs := delimiter.regex.FindAllStringIndex(str, -1) if len(locs) > 0 { lastLoc := locs[len(locs)-1]@@ -230,6 +231,7 @@ func StripLastDelimiter(str string, delimiter Delimiter) string { str = str[:lastLoc[0]] } }+ return str } return strings.TrimRightFunc(str, unicode.IsSpace) }
@@ -2095,13 +2095,13 @@ class TestCore < TestInteractive tmux.send_keys %(echo "foo ,bar,baz" | #{FZF} -d, --accept-nth 2,2,1,3,1 --sync --bind start:accept > #{tempname}), :Enter wait do assert_path_exists tempname- # Last delimiter and the whitespaces are removed- assert_equal ['bar,bar,foo ,bazfoo'], File.readlines(tempname, chomp: true)+ # Last delimiter is removed+ assert_equal ['bar,bar,foo ,bazfoo '], File.readlines(tempname, chomp: true) end end def test_accept_nth_regex_delimiter- tmux.send_keys %(echo "foo :,:bar,baz" | #{FZF} --delimiter='[:,]+' --accept-nth 2,2,1,3,1 --sync --bind start:accept > #{tempname}), :Enter+ tmux.send_keys %(echo "foo :,:bar,baz" | #{FZF} --delimiter=' *[:,]+ *' --accept-nth 2,2,1,3,1 --sync --bind start:accept > #{tempname}), :Enter wait do assert_path_exists tempname # Last delimiter and the whitespaces are removed@@ -2119,7 +2119,7 @@ class TestCore < TestInteractive end def test_accept_nth_template- tmux.send_keys %(echo "foo ,bar,baz" | #{FZF} -d, --accept-nth '[{n}] 1st: {1}, 3rd: {3}, 2nd: {2}' --sync --bind start:accept > #{tempname}), :Enter+ tmux.send_keys %(echo "foo ,bar,baz" | #{FZF} -d " *, *" --accept-nth '[{n}] 1st: {1}, 3rd: {3}, 2nd: {2}' --sync --bind start:accept > #{tempname}), :Enter wait do assert_path_exists tempname # Last delimiter and the whitespaces are removed