diff --git a/src/search.c b/src/search.c index cff289cf5..f7c7eca38 100644 --- a/src/search.c +++ b/src/search.c @@ -4434,9 +4434,10 @@ current_quote( return FALSE; vis_bef_curs = LT_POS(VIsual, curwin->w_cursor); + vis_empty = EQUAL_POS(VIsual, curwin->w_cursor); if (*p_sel == 'e') { - if (!vis_bef_curs) + if (!vis_bef_curs && !vis_empty) { // VIsual needs to be the start of Visual selection. pos_T t = curwin->w_cursor; @@ -4447,8 +4448,8 @@ current_quote( restore_vis_bef = TRUE; } dec_cursor(); + vis_empty = EQUAL_POS(VIsual, curwin->w_cursor); } - vis_empty = EQUAL_POS(VIsual, curwin->w_cursor); } if (!vis_empty) diff --git a/src/testdir/test_textobjects.vim b/src/testdir/test_textobjects.vim index a3e3851f4..5702a6ad8 100644 --- a/src/testdir/test_textobjects.vim +++ b/src/testdir/test_textobjects.vim @@ -47,6 +47,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 diff --git a/src/version.c b/src/version.c index cfd58460a..8422b71e3 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2314, /**/ 2313, /**/