summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-07-24 15:28:18 +0200
committerBram Moolenaar <Bram@vim.org>2019-07-24 15:28:18 +0200
commit4ef18dcc2e3a6a9aea2dc90bbdb742c3c9231394 (patch)
treeede90dc723e568ac928e7323084aef70217ac515
parentd08b8c4c04db9433340df38d21f0e26878f28421 (diff)
downloadvim-git-4ef18dcc2e3a6a9aea2dc90bbdb742c3c9231394.tar.gz
patch 8.1.1741: cleared/added match highlighting not updated in other windowv8.1.1741
Problem: Cleared/added match highlighting not updated in other window. (Andi Massimino) Solution: Mark the right window for refresh.
-rw-r--r--src/highlight.c4
-rw-r--r--src/testdir/dumps/Test_matchadd_1.dump12
-rw-r--r--src/testdir/dumps/Test_matchclear_1.dump12
-rw-r--r--src/testdir/test_match.vim45
-rw-r--r--src/version.c2
5 files changed, 65 insertions, 10 deletions
diff --git a/src/highlight.c b/src/highlight.c
index d6417038f..42fab45e3 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 000000000..d07507bc9
--- /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 000000000..164bfd4c3
--- /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 07005b52f..8eada3fea 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)\<CR>")
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)\<CR>")
+ 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})\<CR>")
+ call term_sendkeys(buf, ":\<CR>")
+ call VerifyScreenDump(buf, 'Test_matchadd_1', {})
+
+ call StopVimInTerminal(buf)
+ call delete('XscriptMatchCommon')
endfunc
diff --git a/src/version.c b/src/version.c
index e25be558e..f8f9bb593 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1741,
+/**/
1740,
/**/
1739,