patch 8.0.0610: the screen is redrawn when default 'background' is detected
Problem: The screen is redrawn when t_BG is set and used to detect the
value for 'background'.
Solution: Don't redraw when the value of 'background' didn't change.
diff --git a/src/term.c b/src/term.c
index d23d8cb..fb6b59e 100644
--- a/src/term.c
+++ b/src/term.c
@@ -4385,14 +4385,20 @@
if (i - j >= 21 && STRNCMP(tp + j + 3, "rgb:", 4) == 0
&& tp[j + 11] == '/' && tp[j + 16] == '/'
&& !option_was_set((char_u *)"bg"))
- {/* TODO: don't set option when already the right value */
+ {
+ char *newval = (3 * '6' < tp[j+7] + tp[j+12]
+ + tp[j+17]) ? "light" : "dark";
+
LOG_TR("Received RBG");
rbg_status = RBG_GOT;
- set_option_value((char_u *)"bg", 0L, (char_u *)(
- (3 * '6' < tp[j+7] + tp[j+12] + tp[j+17])
- ? "light" : "dark"), 0);
- reset_option_was_set((char_u *)"bg");
- redraw_asap(CLEAR);
+ if (STRCMP(p_bg, newval) != 0)
+ {
+ /* value differs, apply it */
+ set_option_value((char_u *)"bg", 0L,
+ (char_u *)newval, 0);
+ reset_option_was_set((char_u *)"bg");
+ redraw_asap(CLEAR);
+ }
}
/* got finished code: consume it */
diff --git a/src/version.c b/src/version.c
index 8c5679e..bb3581c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 610,
+/**/
609,
/**/
608,