patch 8.2.2074: Vim9: using :normal from Vim9 script can't handle range
Problem: Vim9: using :normal from Vim9 script can't handle range.
Solution: Execute a :normal command in legacy script context. (closes #7401)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index b58e566..a18e3f2 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2958,6 +2958,19 @@
bwipe!
enddef
+def InvokeNormal()
+ exe "norm! :m+1\r"
+enddef
+
+def Test_invoke_normal_in_visual_mode()
+ xnoremap <F3> <Cmd>call <SID>InvokeNormal()<CR>
+ new
+ setline(1, ['aaa', 'bbb'])
+ feedkeys("V\<F3>", 'xt')
+ assert_equal(['bbb', 'aaa'], getline(1, 2))
+ xunmap <F3>
+enddef
+
" Keep this last, it messes up highlighting.
def Test_substitute_cmd()
new