updated for version 7.2-148
diff --git a/src/screen.c b/src/screen.c
index 0c60bc0..6455f11 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2889,8 +2889,9 @@
}
else
tocol = MAXCOL;
- if (fromcol == tocol) /* do at least one character */
- tocol = fromcol + 1; /* happens when past end of line */
+ /* do at least one character; happens when past end of line */
+ if (fromcol == tocol)
+ tocol = fromcol + 1;
area_highlighting = TRUE;
attr = hl_attr(HLF_I);
}
@@ -4118,6 +4119,7 @@
# endif
(col < W_WIDTH(wp)))
&& !(noinvcur
+ && lnum == wp->w_cursor.lnum
&& (colnr_T)vcol == wp->w_virtcol)))
&& lcs_eol_one >= 0)
{
@@ -4259,7 +4261,7 @@
* preedit_changed and commit. Thus Vim can't set "im_is_active", use
* im_is_preediting() here. */
if (xic != NULL
- && lnum == curwin->w_cursor.lnum
+ && lnum == wp->w_cursor.lnum
&& (State & INSERT)
&& !p_imdisable
&& im_is_preediting()
@@ -4268,7 +4270,7 @@
colnr_T tcol;
if (preedit_end_col == MAXCOL)
- getvcol(curwin, &(curwin->w_cursor), &tcol, NULL, NULL);
+ getvcol(curwin, &(wp->w_cursor), &tcol, NULL, NULL);
else
tcol = preedit_end_col;
if ((long)preedit_start_col <= vcol && vcol < (long)tcol)
@@ -4365,7 +4367,13 @@
}
#endif
if (lcs_eol == lcs_eol_one
- && ((area_attr != 0 && vcol == fromcol && c == NUL)
+ && ((area_attr != 0 && vcol == fromcol
+#ifdef FEAT_VISUAL
+ && (VIsual_mode != Ctrl_V
+ || lnum == VIsual.lnum
+ || lnum == curwin->w_cursor.lnum)
+#endif
+ && c == NUL)
#ifdef FEAT_SEARCH_EXTRA
/* highlight 'hlsearch' match at end of line */
|| (prevcol_hl_flag == TRUE
@@ -4459,7 +4467,8 @@
if (c == NUL)
{
#ifdef FEAT_SYN_HL
- if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol)
+ if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol
+ && lnum == wp->w_cursor.lnum)
{
/* highlight last char after line */
--col;
diff --git a/src/version.c b/src/version.c
index e376822..756ed26 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 148,
+/**/
147,
/**/
146,