From: phanium <91544758+phanen@users.noreply.github.com> Date: Mon, 16 Jun 2025 18:19:15 +0000 (+0200) Subject: patch 9.1.1464: gv does not work in operator-pending mode X-Git-Tag: v9.1.1464^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cb27992cdadd3a17a9094096f0972fa806f0240d;p=thirdparty%2Fvim.git patch 9.1.1464: gv does not work in operator-pending mode Problem: gv does not work in operator-pending mode (liushapku) Solution: remove the check for checkclearop in nv_gv_cmd() (phanium) fixes: #3666 closes: #17551 Signed-off-by: phanium <91544758+phanen@users.noreply.github.com> Signed-off-by: Christian Brabandt --- diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index ec963aea77..cd72d73310 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -1,4 +1,4 @@ -*version9.txt* For Vim version 9.1. Last change: 2025 May 28 +*version9.txt* For Vim version 9.1. Last change: 2025 Jun 16 VIM REFERENCE MANUAL by Bram Moolenaar @@ -41686,6 +41686,7 @@ Others: ~ - |CTRL-C| always closes the active |popup-window|. - the configure script will favor using GTK3 over GTK2 when auto-detecting the gui toolkit +- |gv| works in operator pending mode and does not abort *added-9.2* Added ~ diff --git a/src/normal.c b/src/normal.c index c631651a03..8758d4b75d 100644 --- a/src/normal.c +++ b/src/normal.c @@ -5676,9 +5676,6 @@ nv_gv_cmd(cmdarg_T *cap) pos_T tpos; int i; - if (checkclearop(cap->oap)) - return; - if (curbuf->b_visual.vi_start.lnum == 0 || curbuf->b_visual.vi_start.lnum > curbuf->b_ml.ml_line_count || curbuf->b_visual.vi_end.lnum == 0) diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim index 069651f6bc..cbd90ec4e7 100644 --- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -2604,8 +2604,14 @@ func Test_normal33_g_cmd2() exe "norm! G0\4k4ly" exe "norm! gvood" call assert_equal(['', 'abfgh', 'abfgh', 'abfgh', 'fgh', 'fgh', 'fgh', 'fgh', 'fgh'], getline(1,'$')) - " gv cannot be used in operator pending mode - call assert_beeps('normal! cgv') + " gv works in operator pending mode + call assert_nobeep('normal! cgvxyza') + call assert_equal(['', 'abfgh', 'abfgh', 'abfgh', 'xyza', 'xyza', 'xyza', 'xyza', 'xyza'], getline(1,'$')) + exe "norm! ^\Gydgv..cgvbc" + call assert_equal(['', 'abfgh', 'abfgh', 'abfgh', 'bc', 'bc', 'bc', 'bc', 'bc'], getline(1,'$')) + exe "norm! v^GragggUgv" + call assert_equal(['', 'abfgh', 'abfgh', 'abfgh', 'bA', 'AA', 'AA', 'AA', 'Ac'], getline(1,'$')) + " gv should beep without a previously selected visual area new call assert_beeps('normal! gv') diff --git a/src/version.c b/src/version.c index 8d4cbf2553..65199ad6d4 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1464, /**/ 1463, /**/