# HG changeset patch # User Bram Moolenaar # Date 1587823204 -7200 # Node ID 2dd1ac2c48f43c00df16a71bf3a1b5e93775fd57 # Parent d7e064056b24ff4b0751ae8b082322be39e72c11 patch 8.2.0637: incsearch highlighting does not work for ":sort!" Commit: https://github.com/vim/vim/commit/333015a46e916f566763ec44ae8669c0378767d9 Author: Bram Moolenaar Date: Sat Apr 25 15:54:16 2020 +0200 patch 8.2.0637: incsearch highlighting does not work for ":sort!" Problem: Incsearch highlighting does not work for ":sort!". Solution: Skip over the exclamation point. (closes https://github.com/vim/vim/issues/5983) diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -249,7 +249,9 @@ do_incsearch_highlighting(int firstc, in } else if (STRNCMP(cmd, "sort", MAX(p - cmd, 3)) == 0) { - // skip over flags + // skip over ! and flags + if (*p == '!') + p = skipwhite(p + 1); while (ASCII_ISALPHA(*(p = skipwhite(p)))) ++p; if (*p == NUL) diff --git a/src/testdir/dumps/Test_incsearch_sort_02.dump b/src/testdir/dumps/Test_incsearch_sort_02.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_incsearch_sort_02.dump @@ -0,0 +1,9 @@ +|a+0&#ffffff0|n|o|t|h|e|r| |o+1&&|n|e+0&&| |2| @56 +|t|h|a|t| |o+0&#ffff4012|n|e+0&#ffffff0| |3| @59 +|t|h|e| |o+0&#ffff4012|n|e+0&#ffffff0| |1| @60 +|~+0#4040ff13&| @68 +|~| @68 +|~| @68 +|~| @68 +|~| @68 +|:+0#0000000&|s|o|r|t|!| |/|o|n> @59 diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim --- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -1136,11 +1136,14 @@ func Test_incsearch_sort_dump() " the 'ambiwidth' check. sleep 100m - " Need to send one key at a time to force a redraw. call term_sendkeys(buf, ':sort ni u /on') call VerifyScreenDump(buf, 'Test_incsearch_sort_01', {}) call term_sendkeys(buf, "\") + call term_sendkeys(buf, ':sort! /on') + call VerifyScreenDump(buf, 'Test_incsearch_sort_02', {}) + call term_sendkeys(buf, "\") + call StopVimInTerminal(buf) call delete('Xis_sort_script') endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 637, +/**/ 636, /**/ 635,