aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-09-14 01:30:49 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-09-14 18:19:45 -0400
commitcc484928d5b3402e0d93318df5b7b9b3385f2ee5 (patch)
treeb44b8db75104b88506262f6a4728614a27d4feec /src
parentea03032018c39b9976b664071ebcd1a75463348c (diff)
downloadrneovim-cc484928d5b3402e0d93318df5b7b9b3385f2ee5.tar.gz
rneovim-cc484928d5b3402e0d93318df5b7b9b3385f2ee5.tar.bz2
rneovim-cc484928d5b3402e0d93318df5b7b9b3385f2ee5.zip
vim-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 vim/vim#5983) https://github.com/vim/vim/commit/333015a46e916f566763ec44ae8669c0378767d9
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_getln.c5
-rw-r--r--src/nvim/testdir/test_search.vim5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index d57239e570..996ccc8e60 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -339,7 +339,10 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s,
p_magic = false;
}
} 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++;
}
diff --git a/src/nvim/testdir/test_search.vim b/src/nvim/testdir/test_search.vim
index aaa60e39c9..211fc73562 100644
--- a/src/nvim/testdir/test_search.vim
+++ b/src/nvim/testdir/test_search.vim
@@ -743,11 +743,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, "\<Esc>")
+ call term_sendkeys(buf, ':sort! /on')
+ call VerifyScreenDump(buf, 'Test_incsearch_sort_02', {})
+ call term_sendkeys(buf, "\<Esc>")
+
call StopVimInTerminal(buf)
call delete('Xis_sort_script')
endfunc