# HG changeset patch # User Bram Moolenaar # Date 1574009103 -3600 # Node ID 7bfe68b637beecd2cfb80ef17fc6fba23b725fcc # Parent 31ba6c8467894cca2065b287172ebee25890455e patch 8.1.2314: vi' sometimes does not select anything Commit: https://github.com/vim/vim/commit/7170b295b06e3168424985530d8477ed2e058b67 Author: Bram Moolenaar Date: Sun Nov 17 17:32:28 2019 +0100 patch 8.1.2314: vi' sometimes does not select anything Problem: vi' sometimes does not select anything. Solution: Recognize an empty selection. (Christian Brabandt, closes https://github.com/vim/vim/issues/5183) diff --git a/src/search.c b/src/search.c --- 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 --- a/src/testdir/test_textobjects.vim +++ b/src/testdir/test_textobjects.vim @@ -47,6 +47,9 @@ func Test_quote_selection_selection_excl 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 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2314, +/**/ 2313, /**/ 2312,