]> granicus.if.org Git - vim/commitdiff
updated for version 7.1-152 v7.1.152
authorBram Moolenaar <Bram@vim.org>
Thu, 8 Nov 2007 13:51:42 +0000 (13:51 +0000)
committerBram Moolenaar <Bram@vim.org>
Thu, 8 Nov 2007 13:51:42 +0000 (13:51 +0000)
src/screen.c
src/version.c

index ed3a1c1d523ca0ffc2d7476182629fbd649ec20d..5b361e9bcc02557d8581968048e09dafd26bbee1 100644 (file)
@@ -2599,6 +2599,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
     int                syntax_attr = 0;        /* attributes desired by syntax */
     int                has_syntax = FALSE;     /* this buffer has syntax highl. */
     int                save_did_emsg;
+    int                eol_hl_off = 0;         /* 1 if highlighted char after EOL */
 #endif
 #ifdef FEAT_SPELL
     int                has_spell = FALSE;      /* this buffer has spell checking */
@@ -4312,6 +4313,10 @@ win_line(wp, lnum, startrow, endrow, nochange)
        {
 #ifdef FEAT_SEARCH_EXTRA
            long prevcol = (long)(ptr - line) - (c == NUL);
+
+           /* we're not really at that column when skipping some text */
+           if ((wp->w_p_wrap ? wp->w_skipcol : wp->w_leftcol) > prevcol)
+               ++prevcol;
 #endif
 
            /* invert at least one char, used for Visual and empty line or
@@ -4408,11 +4413,20 @@ win_line(wp, lnum, startrow, endrow, nochange)
                ScreenAttrs[off] = char_attr;
 #ifdef FEAT_RIGHTLEFT
                if (wp->w_p_rl)
+               {
                    --col;
+                   --off;
+               }
                else
 #endif
+               {
                    ++col;
+                   ++off;
+               }
                ++vcol;
+#ifdef FEAT_SYN_HL
+               eol_hl_off = 1;
+#endif
            }
        }
 
@@ -4422,6 +4436,14 @@ win_line(wp, lnum, startrow, endrow, nochange)
        if (c == NUL)
        {
 #ifdef FEAT_SYN_HL
+           if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol)
+           {
+               /* highlight last char after line */
+               --col;
+               --off;
+               --vcol;
+           }
+
            /* Highlight 'cursorcolumn' past end of the line. */
            if (wp->w_p_wrap)
                v = wp->w_skipcol;
@@ -4432,7 +4454,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
 
                vcol = v + col - win_col_off(wp);
            if (wp->w_p_cuc
-                   && (int)wp->w_virtcol >= vcol
+                   && (int)wp->w_virtcol >= vcol - eol_hl_off
                    && (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1)
                                                                           + v
                    && lnum != wp->w_cursor.lnum
index be8df81dabd98f929b6e77e3532d3a7c36c030f1..904e42f78b8103f932e24d3a470e4a9fe5034f58 100644 (file)
@@ -666,6 +666,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    152,
 /**/
     151,
 /**/