changeset 17496:c8152af9fa33 v8.1.1746

patch 8.1.1746: ":dl" is seen as ":dlist" instead of ":delete" commit https://github.com/vim/vim/commit/94f82cbacf76767b5ac32f813e1d670501dbd0e6 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jul 24 22:30:27 2019 +0200 patch 8.1.1746: ":dl" is seen as ":dlist" instead of ":delete" Problem: ":dl" is seen as ":dlist" instead of ":delete". Solution: Do not use cmdidxs2[] if the length is 1. (closes https://github.com/vim/vim/issues/4721)
author Bram Moolenaar <Bram@vim.org>
date Wed, 24 Jul 2019 22:45:05 +0200
parents dafdaaa10d63
children 28747b2876ee
files src/ex_docmd.c src/testdir/Make_all.mak src/testdir/test_excmd.vim src/version.c
diffstat 4 files changed, 15 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3191,7 +3191,7 @@ find_command(exarg_T *eap, int *full UNU
 	if (ASCII_ISLOWER(eap->cmd[0]))
 	{
 	    int c1 = eap->cmd[0];
-	    int c2 = eap->cmd[1];
+	    int c2 = len == 1 ? NUL : eap->cmd[1];
 
 	    if (command_count != (int)CMD_SIZE)
 	    {
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -106,6 +106,7 @@ NEW_TESTS = \
 	test_ex_equal \
 	test_ex_undo \
 	test_ex_z \
+	test_excmd \
 	test_exec_while_if \
 	test_execute_func \
 	test_exists \
@@ -328,6 +329,7 @@ NEW_TESTS_RES = \
 	test_erasebackword.res \
 	test_escaped_glob.res \
 	test_eval_stuff.res \
+	test_excmd.res \
 	test_exec_while_if.res \
 	test_exists.res \
 	test_exists_autocmd.res \
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_excmd.vim
@@ -0,0 +1,10 @@
+" Tests for various Ex commands.
+
+func Test_ex_delete()
+  new
+  call setline(1, ['a', 'b', 'c'])
+  2
+  " :dl is :delete with the "l" flag, not :dlist
+  .dl
+  call assert_equal(['a', 'c'], getline(1, 2))
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1746,
+/**/
     1745,
 /**/
     1744,