diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-06-25 18:15:22 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-06-25 18:15:22 +0200 |
commit | b6da44ae82f93d036ffb2ba37a009119688d9971 (patch) | |
tree | dea583963d0aebcd8cc84075f08787dab3cb22a9 | |
parent | 41d75239863d4b7a4142fc68cfa5d3a74a18d935 (diff) | |
download | vim-git-b6da44ae82f93d036ffb2ba37a009119688d9971.tar.gz |
updated for version 7.4.344v7.4.344
Problem: Unessecary initializations and other things related to
matchaddpos().
Solution: Code cleanup. (Alexey Radkov)
-rw-r--r-- | runtime/doc/eval.txt | 12 | ||||
-rw-r--r-- | src/screen.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/window.c | 13 |
4 files changed, 14 insertions, 15 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 1421d54be..695ac1f2b 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -4391,17 +4391,17 @@ matchaddpos({group}, {pos}[, {priority}[, {id}]]) *matchaddpos()* required, for example to highlight matching parentheses. The list {pos} can contain one of these items: - - A number. This while line will be highlighted. The first + - A number. This whole line will be highlighted. The first line has number 1. - A list with one number, e.g., [23]. The whole line with this number will be highlighted. - A list with two numbers, e.g., [23, 11]. The first number is - the line number, the second one the column number (first - column is 1). The character at this position will be - highlighted. + the line number, the second one is the column number (first + column is 1, the value must correspond to the byte index as + |col()| would return). The character at this position will + be highlighted. - A list with three numbers, e.g., [23, 11, 3]. As above, but - the third number gives the length of the highlight in screen - cells. + the third number gives the length of the highlight in bytes. The maximum number of positions is 8. diff --git a/src/screen.c b/src/screen.c index 388a29832..8e616915b 100644 --- a/src/screen.c +++ b/src/screen.c @@ -7531,7 +7531,7 @@ next_search_hl_pos(shl, lnum, posmatch, mincol) colnr_T mincol; /* minimal column for a match */ { int i; - int bot = -1; + int bot = -1; shl->lnum = 0; for (i = posmatch->cur; i < MAXPOSMATCH; i++) diff --git a/src/version.c b/src/version.c index 8282a834b..adb9ef471 100644 --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 344, +/**/ 343, /**/ 342, diff --git a/src/window.c b/src/window.c index 914f88e0b..96d4771fb 100644 --- a/src/window.c +++ b/src/window.c @@ -6813,7 +6813,6 @@ match_add(wp, grp, pat, prio, id, pos_list) m->id = id; m->priority = prio; m->pattern = pat == NULL ? NULL : vim_strsave(pat); - m->pos.cur = 0; m->hlg_id = hlg_id; m->match.regprog = regprog; m->match.rmm_ic = FALSE; @@ -6827,7 +6826,7 @@ match_add(wp, grp, pat, prio, id, pos_list) listitem_T *li; int i; - for (i = 0, li = pos_list->lv_first; i < MAXPOSMATCH; + for (i = 0, li = pos_list->lv_first; li != NULL && i < MAXPOSMATCH; i++, li = li->li_next) { linenr_T lnum = 0; @@ -6837,11 +6836,6 @@ match_add(wp, grp, pat, prio, id, pos_list) listitem_T *subli; int error = FALSE; - if (li == NULL) - { - m->pos.pos[i].lnum = 0; - break; - } if (li->li_tv.v_type == VAR_LIST) { subl = li->li_tv.vval.v_list; @@ -6853,12 +6847,12 @@ match_add(wp, grp, pat, prio, id, pos_list) lnum = get_tv_number_chk(&subli->li_tv, &error); if (error == TRUE) goto fail; - m->pos.pos[i].lnum = lnum; if (lnum == 0) { --i; continue; } + m->pos.pos[i].lnum = lnum; subli = subli->li_next; if (subli != NULL) { @@ -6879,7 +6873,10 @@ match_add(wp, grp, pat, prio, id, pos_list) else if (li->li_tv.v_type == VAR_NUMBER) { if (li->li_tv.vval.v_number == 0) + { + --i; continue; + } m->pos.pos[i].lnum = li->li_tv.vval.v_number; m->pos.pos[i].col = 0; m->pos.pos[i].len = 0; |