changeset 7467:765110dd332c v7.4.1036

commit https://github.com/vim/vim/commit/fa03fd6c4a9fe05274d62ddefd645cb5801d2023 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 2 22:03:00 2016 +0100 patch 7.4.1036 Problem: Only terminals with up to 256 colors work properly. Solution: Use the 256 color behavior for all terminals with 256 or more colors. (Robert de Bath, closes https://github.com/vim/vim/issues/504)
author Christian Brabandt <cb@256bit.org>
date Sat, 02 Jan 2016 22:15:04 +0100
parents dcda98eb7ff1
children 58a20453ab00
files src/syntax.c src/version.c
diffstat 2 files changed, 13 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -7700,7 +7700,7 @@ do_highlight(line, forceit, init)
 			color &= 7;	/* truncate to 8 colors */
 		    }
 		    else if (t_colors == 16 || t_colors == 88
-							   || t_colors == 256)
+							   || t_colors >= 256)
 		    {
 			/*
 			 * Guess: if the termcap entry ends in 'm', it is
@@ -7711,19 +7711,16 @@ do_highlight(line, forceit, init)
 			    p = T_CAF;
 			else
 			    p = T_CSF;
-			if (*p != NUL && *(p + STRLEN(p) - 1) == 'm')
-			    switch (t_colors)
-			    {
-				case 16:
-				    color = color_numbers_8[i];
-				    break;
-				case 88:
-				    color = color_numbers_88[i];
-				    break;
-				case 256:
-				    color = color_numbers_256[i];
-				    break;
-			    }
+			if (*p != NUL && (t_colors > 256
+					      || *(p + STRLEN(p) - 1) == 'm'))
+			{
+			    if (t_colors == 88)
+				color = color_numbers_88[i];
+			    else if (t_colors >= 256)
+				color = color_numbers_256[i];
+			    else
+				color = color_numbers_8[i];
+			}
 		    }
 		}
 	    }
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1036,
+/**/
     1035,
 /**/
     1034,