aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/search.c5
-rw-r--r--src/nvim/testdir/test_textobjects.vim3
2 files changed, 6 insertions, 2 deletions
diff --git a/src/nvim/search.c b/src/nvim/search.c
index d396e7551b..a298f7333e 100644
--- a/src/nvim/search.c
+++ b/src/nvim/search.c
@@ -3808,8 +3808,9 @@ current_quote(
}
vis_bef_curs = lt(VIsual, curwin->w_cursor);
+ vis_empty = equalpos(VIsual, curwin->w_cursor);
if (*p_sel == 'e') {
- if (!vis_bef_curs) {
+ if (!vis_bef_curs && !vis_empty) {
// VIsual needs to be start of Visual selection.
pos_T t = curwin->w_cursor;
@@ -3819,8 +3820,8 @@ current_quote(
restore_vis_bef = true;
}
dec_cursor();
+ vis_empty = equalpos(VIsual, curwin->w_cursor);
}
- vis_empty = equalpos(VIsual, curwin->w_cursor);
}
if (!vis_empty) {
diff --git a/src/nvim/testdir/test_textobjects.vim b/src/nvim/testdir/test_textobjects.vim
index 9194e0014d..448b2dc51c 100644
--- a/src/nvim/testdir/test_textobjects.vim
+++ b/src/nvim/testdir/test_textobjects.vim
@@ -48,6 +48,9 @@ func Test_quote_selection_selection_exclusive()
set selection=exclusive
exe "norm! fdvhi'y"
call assert_equal('bcde', @")
+ let @"='dummy'
+ exe "norm! $gevi'y"
+ call assert_equal('bcde', @")
set selection&vim
bw!
endfunc