diff src/testdir/test_normal.vim @ 32108:cbf0ed5c83d0 v9.0.1385

patch 9.0.1385: g'Esc is considered an error Commit: https://github.com/vim/vim/commit/f86dea8119f3141e3d2c680219036d1511101f9b Author: zeertzjq <zeertzjq@outlook.com> Date: Sun Mar 5 21:15:06 2023 +0000 patch 9.0.1385: g'Esc is considered an error Problem: g'Esc is considered an error. Solution: Make g'Esc silently abandon the command. (closes https://github.com/vim/vim/issues/12110)
author Bram Moolenaar <Bram@vim.org>
date Sun, 05 Mar 2023 22:30:03 +0100
parents 717a1a8dc751
children 66961c678d8a
line wrap: on
line diff
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -2526,6 +2526,8 @@ func Test_normal33_g_cmd2()
   norm! g'a
   call assert_equal('>', a[-1:])
   call assert_equal(1, line('.'))
+  call assert_nobeep("normal! g`\<Esc>")
+  call assert_nobeep("normal! g'\<Esc>")
 
   " Test for g; and g,
   norm! g;
@@ -3305,7 +3307,8 @@ func Test_gr_command()
   set modifiable&
 
   call assert_nobeep("normal! gr\<Esc>")
-  call assert_beeps("normal! cgr\<Esc>")
+  call assert_nobeep("normal! cgr\<Esc>")
+  call assert_beeps("normal! cgrx")
 
   call assert_equal('zxxxx line    l', getline(1))
   exe "normal! 2|gr\<C-V>\<Esc>"
@@ -3921,4 +3924,36 @@ func Test_mouse_shape_after_failed_chang
   call delete('Xmouseshapes')
 endfunc
 
+" Test that mouse shape is restored to Normal mode after cancelling "gr".
+func Test_mouse_shape_after_cancelling_gr()
+  CheckFeature mouseshape
+  CheckCanRunGui
+
+  let lines =<< trim END
+    vim9script
+    var mouse_shapes = []
+
+    feedkeys('gr')
+    timer_start(50, (_) => {
+      mouse_shapes += [getmouseshape()]
+      timer_start(50, (_) => {
+        feedkeys("\<Esc>")
+        timer_start(50, (_) => {
+          mouse_shapes += [getmouseshape()]
+          timer_start(50, (_) => {
+            writefile(mouse_shapes, 'Xmouseshapes')
+            quit
+          })
+        })
+      })
+    })
+  END
+  call writefile(lines, 'Xmouseshape.vim', 'D')
+  call RunVim([], [], "-g -S Xmouseshape.vim")
+  sleep 300m
+  call assert_equal(['beam', 'arrow'], readfile('Xmouseshapes'))
+
+  call delete('Xmouseshapes')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab