@ 261102.1

260307.2 · 280a011f02cf10033f164fe039c07fbf9e25e606

With a non-default --delimiter, --{accept,with}-nth should not remove trailing whitespaces

reading declarations

src/tokenizer.go

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

test/test_core.rb

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