On Fr, 11 Jul 2014, Benjamin Fritz wrote:
> I'm not sure if this ever worked, but I noticed today that with
> 'cursorline' set, there is no highlight on lines that have DiffChange
> highlighting.
>
> Moving the cursor to a line without DiffChange highlighting makes the
> cursor visible again.
>
> I think this is a bug; it makes cursorline much less useful in diff mode.
I think, the attached patch fixes it.
Mit freundlichen Grüßen
Christian
--
Wie wir von manchen Menschen verkannt werden, beweisen uns nicht
selten ihre Geschenke.
-- Sigmund Graff
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.
diff --git a/src/screen.c b/src/screen.c
--- a/src/screen.c
+++ b/src/screen.c
@@ -3702,7 +3702,12 @@ win_line(wp, lnum, startrow, endrow, noc
char_attr = 0; /* was: hl_attr(HLF_AT); */
#ifdef FEAT_DIFF
if (diff_hlf != (hlf_T)0)
- char_attr = hl_attr(diff_hlf);
+ {
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+ char_attr = hl_combine_attr(diff_hlf, hl_attr(HLF_CUC));
+ else
+ char_attr = hl_attr(diff_hlf);
+ }
#endif
p_extra = NULL;
c_extra = ' ';
@@ -3930,7 +3935,10 @@ win_line(wp, lnum, startrow, endrow, noc
if (diff_hlf == HLF_TXD && ptr - line > change_end
&& n_extra == 0)
diff_hlf = HLF_CHD; /* changed line */
- line_attr = hl_attr(diff_hlf);
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+ line_attr = hl_combine_attr(diff_hlf, hl_attr(HLF_CUC));
+ else
+ line_attr = hl_attr(diff_hlf);
}
#endif
@@ -4727,7 +4735,12 @@ win_line(wp, lnum, startrow, endrow, noc
{
diff_hlf = HLF_CHD;
if (attr == 0 || char_attr != attr)
- char_attr = hl_attr(diff_hlf);
+ {
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+ char_attr = hl_combine_attr(diff_hlf, hl_attr(HLF_CUC));
+ else
+ char_attr = hl_attr(diff_hlf);
+ }
}
# endif
}