]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.344 v7.4.344
authorBram Moolenaar <Bram@vim.org>
Wed, 25 Jun 2014 16:15:22 +0000 (18:15 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 25 Jun 2014 16:15:22 +0000 (18:15 +0200)
Problem:    Unessecary initializations and other things related to
            matchaddpos().
Solution:   Code cleanup. (Alexey Radkov)

runtime/doc/eval.txt
src/screen.c
src/version.c
src/window.c

index 1421d54be39eea22c023c406667706bd5bba53ea..695ac1f2b82b31d34211f330a43e3999053f1a3f 100644 (file)
@@ -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.
 
index 388a29832ef2152088e9a047c2613ab1b4158940..8e616915bf91cc65aad22f8168e40d93be09c160 100644 (file)
@@ -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++)
index 8282a834b93216e82a01a01dc8eee20a2c20084b..adb9ef47150d5c6e22d96cfafef4a2b20fd82bbc 100644 (file)
@@ -734,6 +734,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    344,
 /**/
     343,
 /**/
index 914f88e0bd026ccec0ff6acd32a9cca845caf16e..96d4771fb44b01304ecd2acbbc9a7250c621cc95 100644 (file)
@@ -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;