]> granicus.if.org Git - vim/commitdiff
patch 8.1.1741: cleared/added match highlighting not updated in other window v8.1.1741
authorBram Moolenaar <Bram@vim.org>
Wed, 24 Jul 2019 13:28:18 +0000 (15:28 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 24 Jul 2019 13:28:18 +0000 (15:28 +0200)
Problem:    Cleared/added match highlighting not updated in other window.
            (Andi Massimino)
Solution:   Mark the right window for refresh.

src/highlight.c
src/testdir/dumps/Test_matchadd_1.dump [new file with mode: 0644]
src/testdir/dumps/Test_matchclear_1.dump [new file with mode: 0644]
src/testdir/test_match.vim
src/version.c

index d6417038fc9983094ffb2be620055f1bed538af8..42fab45e3549df96c33fcf1b685cfb1cab49f246 100644 (file)
@@ -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 (file)
index 0000000..d07507b
--- /dev/null
@@ -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 (file)
index 0000000..164bfd4
--- /dev/null
@@ -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
index 07005b52fdb2fc09864fd42c240e4adf7f395fa3..8eada3fea5b21ec546c09f93225d4e268ad95d46 100644 (file)
@@ -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
 
 
index e25be558ec2e0d5aa3a554ca9d2abf1eee105a10..f8f9bb59362c737883ab437a7676481e3316a280 100644 (file)
@@ -777,6 +777,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1741,
 /**/
     1740,
 /**/