summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-23 21:46:32 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-23 21:46:32 +0200
commitb3ea36c5bcb88b6a05a66347eedd461e9385103f (patch)
treeee2ade78ab07ba893a19a4617ee5a4bd61cba9f0
parentc2af0afff5c44969ad7611ec2d47d0f52087fa7f (diff)
downloadvim-git-b3ea36c5bcb88b6a05a66347eedd461e9385103f.tar.gz
patch 8.2.1520: Vim9: CTRL-] used in :def function does not workv8.2.1520
Problem: Vim9: CTRL-] used in :def function does not work. Solution: Omit count or prepend colon. (closes #6769)
-rw-r--r--src/normal.c4
-rw-r--r--src/testdir/test_vim9_cmd.vim20
-rw-r--r--src/version.c2
3 files changed, 25 insertions, 1 deletions
diff --git a/src/normal.c b/src/normal.c
index cb8e73636..1ef650924 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -3644,8 +3644,10 @@ nv_ident(cmdarg_T *cap)
{
if (g_cmd)
STRCPY(buf, "tj ");
+ else if (cap->count0 == 0)
+ STRCPY(buf, "ta ");
else
- sprintf((char *)buf, "%ldta ", cap->count0);
+ sprintf((char *)buf, ":%ldta ", cap->count0);
}
}
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 9f4231a9a..9372d9095 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -295,5 +295,25 @@ def Test_map_command()
CheckScriptSuccess(['vim9script'] + lines)
enddef
+def Test_normal_command()
+ new
+ setline(1, 'doesnotexist')
+ let caught = 0
+ try
+ exe "norm! \<C-]>"
+ catch /E433/
+ caught = 2
+ endtry
+ assert_equal(2, caught)
+
+ try
+ exe "norm! 3\<C-]>"
+ catch /E433/
+ caught = 3
+ endtry
+ assert_equal(3, caught)
+ bwipe!
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/version.c b/src/version.c
index 421e4a68c..41e91880c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1520,
+/**/
1519,
/**/
1518,