patch 7.4.1770
Problem: Cannot use true color in the terminal.
Solution: Add the 'guicolors' option. (Nikolai Pavlov)
diff --git a/src/vim.h b/src/vim.h
index 9e2ab21..f503ebf 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1558,6 +1558,31 @@
#define MSG_PUTS_LONG(s) msg_puts_long_attr((char_u *)(s), 0)
#define MSG_PUTS_LONG_ATTR(s, a) msg_puts_long_attr((char_u *)(s), (a))
+#ifdef FEAT_GUI
+# ifdef FEAT_TERMTRUECOLOR
+# define GUI_FUNCTION(f) (gui.in_use ? gui_##f : termtrue_##f)
+# define USE_24BIT (gui.in_use || p_guicolors)
+# else
+# define GUI_FUNCTION(f) gui_##f
+# define USE_24BIT gui.in_use
+# endif
+#else
+# ifdef FEAT_TERMTRUECOLOR
+# define GUI_FUNCTION(f) termtrue_##f
+# define USE_24BIT p_guicolors
+# endif
+#endif
+#ifdef FEAT_TERMTRUECOLOR
+# define IS_CTERM (t_colors > 1 || p_guicolors)
+#else
+# define IS_CTERM (t_colors > 1)
+#endif
+#ifdef GUI_FUNCTION
+# define GUI_MCH_GET_RGB GUI_FUNCTION(mch_get_rgb)
+# define GUI_MCH_GET_COLOR GUI_FUNCTION(mch_get_color)
+# define GUI_GET_COLOR GUI_FUNCTION(get_color)
+#endif
+
/* Prefer using emsg3(), because perror() may send the output to the wrong
* destination and mess up the screen. */
#ifdef HAVE_STRERROR