vim-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.
4ef18dcc2e
This commit is contained in:
Jan Edmund Lazo 2019-12-30 16:27:26 -05:00
parent 6e6544d645
commit 0e7baed219
No known key found for this signature in database
GPG Key ID: 64915E6E9F735B15
2 changed files with 39 additions and 10 deletions

View File

@ -250,25 +250,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

View File

@ -6622,7 +6622,7 @@ int match_add(win_T *wp, const char *const grp, const char *const pat,
prev->next = m;
m->next = cur;
redraw_later(rtype);
redraw_win_later(wp, rtype);
return id;
fail:
@ -6698,7 +6698,7 @@ void clear_matches(win_T *wp)
xfree(wp->w_match_head);
wp->w_match_head = m;
}
redraw_later(SOME_VALID);
redraw_win_later(wp, SOME_VALID);
}
/*