patch 7.4.1812
Problem: Failure on startup with Athena and Motif.
Solution: Check for INVALCOLOR. (Kazunobu Kuriyama)
diff --git a/src/syntax.c b/src/syntax.c
index 4e35a6c..e68090d 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -9261,8 +9261,8 @@
at_en.ae_u.cterm.fg_color = sgp->sg_cterm_fg;
at_en.ae_u.cterm.bg_color = sgp->sg_cterm_bg;
# ifdef FEAT_TERMGUICOLORS
- at_en.ae_u.cterm.fg_rgb = GUI_MCH_GET_RGB(sgp->sg_gui_fg);
- at_en.ae_u.cterm.bg_rgb = GUI_MCH_GET_RGB(sgp->sg_gui_bg);
+ at_en.ae_u.cterm.fg_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_fg);
+ at_en.ae_u.cterm.bg_rgb = GUI_MCH_GET_RGB2(sgp->sg_gui_bg);
# endif
sgp->sg_cterm_attr = get_attr_entry(&cterm_attr_table, &at_en);
}
diff --git a/src/version.c b/src/version.c
index 714a6d9..75e692d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1812,
+/**/
1811,
/**/
1810,
diff --git a/src/vim.h b/src/vim.h
index 5d98a4c..a5d05a1 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1561,14 +1561,23 @@
#ifdef FEAT_GUI
# ifdef FEAT_TERMGUICOLORS
# define GUI_FUNCTION(f) (gui.in_use ? gui_##f : termgui_##f)
+# define GUI_FUNCTION2(f, pixel) (gui.in_use \
+ ? ((pixel) != INVALCOLOR \
+ ? gui_##f((pixel)) \
+ : (long_u)INVALCOLOR) \
+ : termgui_##f((pixel)))
# define USE_24BIT (gui.in_use || p_tgc)
# else
# define GUI_FUNCTION(f) gui_##f
+# define GUI_FUNCTION2(f,pixel) ((pixel) != INVALCOLOR \
+ ? gui_##f((pixel)) \
+ : (long_u)INVALCOLOR)
# define USE_24BIT gui.in_use
# endif
#else
# ifdef FEAT_TERMGUICOLORS
# define GUI_FUNCTION(f) termgui_##f
+# define GUI_FUNCTION2(f, pixel) termgui_##f((pixel))
# define USE_24BIT p_tgc
# endif
#endif
@@ -1579,6 +1588,7 @@
#endif
#ifdef GUI_FUNCTION
# define GUI_MCH_GET_RGB GUI_FUNCTION(mch_get_rgb)
+# define GUI_MCH_GET_RGB2(pixel) GUI_FUNCTION2(mch_get_rgb, (pixel))
# define GUI_MCH_GET_COLOR GUI_FUNCTION(mch_get_color)
# define GUI_GET_COLOR GUI_FUNCTION(get_color)
#endif