# HG changeset patch # User Christian Brabandt # Date 1462101305 -7200 # Node ID f129fd3ebd98a1374bf19daf4284a6d47ceb54a7 # Parent 984b355f12178e989ac40708fe893b8428748165 commit https://github.com/vim/vim/commit/187147aedd588070d0676664d5076d046644094e Author: Bram Moolenaar Date: Sun May 1 13:09:57 2016 +0200 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 --- 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 --- 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 --- 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