summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvimboss <devnull@localhost>2007-11-08 13:51:42 +0000
committervimboss <devnull@localhost>2007-11-08 13:51:42 +0000
commit9f069b705a81135a3340c34d2ef999e8f3c5bee0 (patch)
tree76d41e16bb6a429647d5ea6eb130caf3476bb22f
parentbae148facbe436077e19991661686044235934c9 (diff)
downloadvim-9f069b705a81135a3340c34d2ef999e8f3c5bee0.tar.gz
updated for version 7.1-152v7.1.152v7-1-152
-rw-r--r--src/screen.c24
-rw-r--r--src/version.c2
2 files changed, 25 insertions, 1 deletions
diff --git a/src/screen.c b/src/screen.c
index ed3a1c1d..5b361e9b 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -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
diff --git a/src/version.c b/src/version.c
index be8df81d..904e42f7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 152,
+/**/
151,
/**/
150,