vim-patch:7.4.405

Problem:  Screen updating is slow when using matches.
Solution: Do not use the ">=" as in patch 7.4.362, check the lnum.

https://code.google.com/p/vim/source/detail?r=v7-4-405
This commit is contained in:
Marco Hinz
2014-09-23 16:46:36 +02:00
parent 21f1802b8a
commit 366f358a62
4 changed files with 26 additions and 3 deletions

View File

@@ -2948,7 +2948,7 @@ win_line (
&& v >= (long)shl->startcol && v >= (long)shl->startcol
&& v < (long)shl->endcol) { && v < (long)shl->endcol) {
shl->attr_cur = shl->attr; shl->attr_cur = shl->attr;
} else if (v >= (long)shl->endcol) { } else if (v >= (long)shl->endcol && shl->lnum == lnum) {
shl->attr_cur = 0; shl->attr_cur = 0;
next_search_hl(wp, shl, lnum, (colnr_T)v, cur); next_search_hl(wp, shl, lnum, (colnr_T)v, cur);

View File

@@ -3,6 +3,7 @@ Test for ":match", ":2match", ":3match", "clearmatches()", "getmatches()",
STARTTEST STARTTEST
:so small.vim :so small.vim
:set encoding=utf8
:" --- Check that "matcharg()" returns the correct group and pattern if a match :" --- Check that "matcharg()" returns the correct group and pattern if a match
:" --- is defined. :" --- is defined.
:let @r = "*** Test 1: " :let @r = "*** Test 1: "
@@ -164,7 +165,27 @@ STARTTEST
:if v1 != v5 && v6 == v1 && v8 == v5 && v10 == v5 && v11 == v1 :if v1 != v5 && v6 == v1 && v8 == v5 && v10 == v5 && v11 == v1
: let @r .= "OK\n" : let @r .= "OK\n"
:else :else
: let @r .= "FAILED\n" : let @r .= "FAILED: " . v5 . "/" . v6 . "/" . v8 . "/" . v10 . "/" . v11 . "\n"
:endif
:call clearmatches()
:"
:call setline(1, 'abcdΣabcdef')
:call matchaddpos("MyGroup1", [[1, 4, 2], [1, 9, 2]])
:1
:redraw!
:let v1 = screenattr(1, 1)
:let v4 = screenattr(1, 4)
:let v5 = screenattr(1, 5)
:let v6 = screenattr(1, 6)
:let v7 = screenattr(1, 7)
:let v8 = screenattr(1, 8)
:let v9 = screenattr(1, 9)
:let v10 = screenattr(1, 10)
:let @r .= string(getmatches())."\n"
:if v1 != v4 && v5 == v4 && v6 == v1 && v7 == v1 && v8 == v4 && v9 == v4 && v10 == v1
: let @r .= "OK\n"
:else
: let @r .= "FAILED: " . v4 . "/" . v5 . "/" . v6 . "/" . v7 . "/" . v8 . "/" . v9 . "/" . v10 . "\n"
:endif :endif
:call clearmatches() :call clearmatches()
G"rp G"rp

View File

@@ -12,3 +12,5 @@ Results of test63:
*** Test 11: *** Test 11:
[{'group': 'MyGroup1', 'id': 3, 'priority': 10, 'pos1': [1, 5, 1], 'pos2': [1, 8, 3]}] [{'group': 'MyGroup1', 'id': 3, 'priority': 10, 'pos1': [1, 5, 1], 'pos2': [1, 8, 3]}]
OK OK
[{'group': 'MyGroup1', 'id': 11, 'priority': 10, 'pos1': [1, 4, 2], 'pos2': [1, 9, 2]}]
OK

View File

@@ -223,7 +223,7 @@ static int included_patches[] = {
//408, //408,
407, 407,
//406, //406,
//405, 405,
//404 NA //404 NA
//403 NA //403 NA
//402, //402,