From: Bram Moolenaar Date: Wed, 24 Jul 2019 20:30:27 +0000 (+0200) Subject: patch 8.1.1746: ":dl" is seen as ":dlist" instead of ":delete" X-Git-Tag: v8.1.1746 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=94f82cbacf76767b5ac32f813e1d670501dbd0e6;p=vim 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 #4721) --- diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 3fa5129c7..f3a4eb7c1 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -3191,7 +3191,7 @@ find_command(exarg_T *eap, int *full UNUSED) 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) { diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak index eb014a95c..a0898dc02 100644 --- 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 \ diff --git a/src/testdir/test_excmd.vim b/src/testdir/test_excmd.vim new file mode 100644 index 000000000..f5ce97920 --- /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 diff --git a/src/version.c b/src/version.c index e155b39d0..4f9bebac0 100644 --- a/src/version.c +++ b/src/version.c @@ -777,6 +777,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1746, /**/ 1745, /**/