aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-12-30 16:24:21 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-12-30 16:26:43 -0500
commit6e6544d645f9a9c151a2e027e23d8f79ecd8f7c9 (patch)
tree0bdbfd3481841a9c22ed6128e7ed5215c62e0003
parent22a92a59a68e2b0928a6243c0888b56608a8f8d8 (diff)
downloadrneovim-6e6544d645f9a9c151a2e027e23d8f79ecd8f7c9.tar.gz
rneovim-6e6544d645f9a9c151a2e027e23d8f79ecd8f7c9.tar.bz2
rneovim-6e6544d645f9a9c151a2e027e23d8f79ecd8f7c9.zip
vim-patch:8.1.1739: deleted match highlighting not updated in other window
Problem: Deleted match highlighting not updated in other window. Solution: Mark the window for refresh. (closes vim/vim#4720) Also fix that ambi-width check clears with wrong attributes. https://github.com/vim/vim/commit/06029a857a3d4d90b3162090506c1e00dc84c60b
-rw-r--r--src/nvim/testdir/test_match.vim24
-rw-r--r--src/nvim/window.c2
2 files changed, 25 insertions, 1 deletions
diff --git a/src/nvim/testdir/test_match.vim b/src/nvim/testdir/test_match.vim
index 90dfcf952d..921c3e3c55 100644
--- a/src/nvim/testdir/test_match.vim
+++ b/src/nvim/testdir/test_match.vim
@@ -1,6 +1,8 @@
" Test for :match, :2match, :3match, clearmatches(), getmatches(), matchadd(),
" matchaddpos(), matcharg(), matchdelete(), and setmatches().
+source screendump.vim
+
function Test_match()
highlight MyGroup1 term=bold ctermbg=red guibg=red
highlight MyGroup2 term=italic ctermbg=green guibg=green
@@ -248,4 +250,26 @@ func Test_matchaddpos_using_negative_priority()
set hlsearch&
endfunc
+func Test_matchdelete_other_window()
+ if !CanRunVimInTerminal()
+ throw 'Skipped: cannot make screendumps'
+ endif
+
+ let lines =<< trim END
+ call setline(1, 'Hello Vim world')
+ let mid = matchadd('Error', 'world', 1)
+ let winid = win_getid()
+ new
+ END
+ call writefile(lines, 'XscriptMatchDelete')
+ let buf = RunVimInTerminal('-S XscriptMatchDelete', #{rows: 12})
+ call term_wait(buf)
+ call term_sendkeys(buf, ":call matchdelete(mid, winid)\<CR>")
+ call VerifyScreenDump(buf, 'Test_matchdelete_1', {})
+
+ call StopVimInTerminal(buf)
+ call delete('XscriptMatchDelete')
+endfunc
+
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/nvim/window.c b/src/nvim/window.c
index af78c89618..5d4332c75a 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -6680,7 +6680,7 @@ int match_delete(win_T *wp, int id, int perr)
rtype = VALID;
}
xfree(cur);
- redraw_later(rtype);
+ redraw_win_later(wp, rtype);
return 0;
}