summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2020-02-29 11:54:05 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2020-02-29 12:01:55 +0900
commitb2c0413a98e210cedd34fbe0f6ba051906da398f (patch)
treebd1013f3ecfb0165b6bc8cad89d253cb642f3517
parente34c7c00b1df84085c6ade0380409bce61793a12 (diff)
[bash] Fix --query argument of CTRL-R
Fix #1898
-rw-r--r--shell/key-bindings.bash2
-rwxr-xr-xtest/test_go.rb15
2 files changed, 10 insertions, 7 deletions
diff --git a/shell/key-bindings.bash b/shell/key-bindings.bash
index fa485d25..f05c3b50 100644
--- a/shell/key-bindings.bash
+++ b/shell/key-bindings.bash
@@ -56,7 +56,7 @@ __fzf_history__() {
output=$(
builtin fc -lnr -2147483648 |
last_hist=$(HISTTIMEFORMAT='' builtin history 1) perl -p -l0 -e 'BEGIN { getc; $/ = "\n\t"; $HISTCMD = $ENV{last_hist} + 1 } s/^[ *]//; $_ = $HISTCMD - $. . "\t$_"' |
- FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS +m --query $(printf %q "$READLINE_LINE") --read0" $(__fzfcmd)
+ FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS +m --read0" $(__fzfcmd) --query "$READLINE_LINE"
) || return
READLINE_LINE=${output#*$'\t'}
if [ -z "$READLINE_POINT" ]; then
diff --git a/test/test_go.rb b/test/test_go.rb
index aa1589ca..7c448fe1 100755
--- a/test/test_go.rb
+++ b/test/test_go.rb
@@ -1853,12 +1853,15 @@ module TestShell
def test_ctrl_r_abort
skip "doesn't restore the original line when search is aborted pre Bash 4" if shell == :bash && /(?<= version )\d+/.match(`#{Shell.bash} --version`).to_s.to_i < 4
- tmux.send_keys 'foo'
- tmux.until { |lines| lines[-1].start_with? 'foo' }
- tmux.send_keys 'C-r'
- tmux.until { |lines| lines[-1].start_with? '>' }
- tmux.send_keys 'C-g'
- tmux.until { |lines| lines[-1].start_with? 'foo' }
+ %w[foo ' "].each do |query|
+ tmux.prepare
+ tmux.send_keys(query)
+ tmux.until { |lines| lines[-1].start_with? query }
+ tmux.send_keys 'C-r'
+ tmux.until { |lines| lines[-1] == "> #{query}" }
+ tmux.send_keys 'C-g'
+ tmux.until { |lines| lines[-1].start_with? query }
+ end
end
def retries(times = 3)