From 4ef18dcc2e3a6a9aea2dc90bbdb742c3c9231394 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 24 Jul 2019 15:28:18 +0200 Subject: patch 8.1.1741: cleared/added match highlighting not updated in other window Problem: Cleared/added match highlighting not updated in other window. (Andi Massimino) Solution: Mark the right window for refresh. --- src/highlight.c | 4 +-- src/testdir/dumps/Test_matchadd_1.dump | 12 +++++++++ src/testdir/dumps/Test_matchclear_1.dump | 12 +++++++++ src/testdir/test_match.vim | 45 ++++++++++++++++++++++++++------ src/version.c | 2 ++ 5 files changed, 65 insertions(+), 10 deletions(-) create mode 100644 src/testdir/dumps/Test_matchadd_1.dump create mode 100644 src/testdir/dumps/Test_matchclear_1.dump diff --git a/src/highlight.c b/src/highlight.c index d6417038fc..42fab45e35 100644 --- a/src/highlight.c +++ b/src/highlight.c @@ -3850,7 +3850,7 @@ match_add( prev->next = m; m->next = cur; - redraw_later(rtype); + redraw_win_later(wp, rtype); return id; fail: @@ -3932,7 +3932,7 @@ clear_matches(win_T *wp) vim_free(wp->w_match_head); wp->w_match_head = m; } - redraw_later(SOME_VALID); + redraw_win_later(wp, SOME_VALID); } /* diff --git a/src/testdir/dumps/Test_matchadd_1.dump b/src/testdir/dumps/Test_matchadd_1.dump new file mode 100644 index 0000000000..d07507bc99 --- /dev/null +++ b/src/testdir/dumps/Test_matchadd_1.dump @@ -0,0 +1,12 @@ +> +0&#ffffff0@74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1 +|H+0&#ffff4012|e|l@1|o| +0&#ffffff0|V|i|m| |w+0#ffffff16#ff404010|o|r|l|d| +0#0000000#ffffff0@59 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|1|,|1| @11|A|l@1 +|:+0&&| @73 diff --git a/src/testdir/dumps/Test_matchclear_1.dump b/src/testdir/dumps/Test_matchclear_1.dump new file mode 100644 index 0000000000..164bfd4c3b --- /dev/null +++ b/src/testdir/dumps/Test_matchclear_1.dump @@ -0,0 +1,12 @@ +> +0&#ffffff0@74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1 +|H+0&&|e|l@1|o| |V|i|m| |w|o|r|l|d| @59 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|1|,|1| @11|A|l@1 +|:+0&&|c|a|l@1| |c|l|e|a|r|m|a|t|c|h|e|s|(|w|i|n|i|d|)| @49 diff --git a/src/testdir/test_match.vim b/src/testdir/test_match.vim index 07005b52fd..8eada3fea5 100644 --- a/src/testdir/test_match.vim +++ b/src/testdir/test_match.vim @@ -253,25 +253,54 @@ func Test_matchaddpos_using_negative_priority() set hlsearch& endfunc -func Test_matchdelete_other_window() - if !CanRunVimInTerminal() - throw 'Skipped: cannot make screendumps' - endif - +func OtherWindowCommon() 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 writefile(lines, 'XscriptMatchCommon') + let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 12}) call term_wait(buf) + return buf +endfunc + +func Test_matchdelete_other_window() + if !CanRunVimInTerminal() + throw 'Skipped: cannot make screendumps' + endif + let buf = OtherWindowCommon() call term_sendkeys(buf, ":call matchdelete(mid, winid)\") call VerifyScreenDump(buf, 'Test_matchdelete_1', {}) call StopVimInTerminal(buf) - call delete('XscriptMatchDelete') + call delete('XscriptMatchCommon') +endfunc + +func Test_matchclear_other_window() + if !CanRunVimInTerminal() + throw 'Skipped: cannot make screendumps' + endif + let buf = OtherWindowCommon() + call term_sendkeys(buf, ":call clearmatches(winid)\") + call VerifyScreenDump(buf, 'Test_matchclear_1', {}) + + call StopVimInTerminal(buf) + call delete('XscriptMatchCommon') +endfunc + +func Test_matchadd_other_window() + if !CanRunVimInTerminal() + throw 'Skipped: cannot make screendumps' + endif + let buf = OtherWindowCommon() + call term_sendkeys(buf, ":call matchadd('Search', 'Hello', 1, -1, #{window: winid})\") + call term_sendkeys(buf, ":\") + call VerifyScreenDump(buf, 'Test_matchadd_1', {}) + + call StopVimInTerminal(buf) + call delete('XscriptMatchCommon') endfunc diff --git a/src/version.c b/src/version.c index e25be558ec..f8f9bb5936 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 */ +/**/ + 1741, /**/ 1740, /**/ -- cgit v1.2.3