summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-05-01 13:09:57 +0200
committerBram Moolenaar <Bram@vim.org>2016-05-01 13:09:57 +0200
commit187147aedd588070d0676664d5076d046644094e (patch)
treeb21c5724db3fa7d1b958ccbe13e3b4cc3b0f2736
parent3266c85a44a637862b0ed6e531680c6ab2897ab5 (diff)
downloadvim-git-187147aedd588070d0676664d5076d046644094e.tar.gz
patch 7.4.1812v7.4.1812
Problem: Failure on startup with Athena and Motif. Solution: Check for INVALCOLOR. (Kazunobu Kuriyama)
-rw-r--r--src/syntax.c4
-rw-r--r--src/version.c2
-rw-r--r--src/vim.h10
3 files changed, 14 insertions, 2 deletions
diff --git a/src/syntax.c b/src/syntax.c
index 4e35a6c59..e68090db6 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -9261,8 +9261,8 @@ set_hl_attr(
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 714a6d92b..75e692d5d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@ static char *(features[]) =
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 5d98a4c12..a5d05a15f 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1561,14 +1561,23 @@ typedef UINT32_TYPEDEF UINT32_T;
#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 @@ typedef UINT32_TYPEDEF UINT32_T;
#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