mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	If the terminal has colors=256, only try to use setaf/setab if they
exist, reported by Filipe Brandenburger.
This commit is contained in:
		
							
								
								
									
										23
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								tty.c
									
									
									
									
									
								
							| @@ -1648,14 +1648,19 @@ tty_try_256(struct tty *tty, u_char colour, const char *type) | |||||||
| 	char	s[32]; | 	char	s[32]; | ||||||
|  |  | ||||||
| 	/* | 	/* | ||||||
| 	 * If the terminfo entry has 256 colours, assume that setaf and setab | 	 * If the terminfo entry has 256 colours and setaf and setab exist, | ||||||
| 	 * work correctly. | 	 * assume that they work correctly. | ||||||
| 	 */ | 	 */ | ||||||
| 	if (tty->term->flags & TERM_256COLOURS) { | 	if (tty->term->flags & TERM_256COLOURS) { | ||||||
| 		if (*type == '3') | 		if (*type == '3') { | ||||||
|  | 			if (!tty_term_has(tty->term, TTYC_SETAF)) | ||||||
|  | 				goto fallback; | ||||||
| 			tty_putcode1(tty, TTYC_SETAF, colour); | 			tty_putcode1(tty, TTYC_SETAF, colour); | ||||||
| 		else | 		} else { | ||||||
|  | 			if (!tty_term_has(tty->term, TTYC_SETAB)) | ||||||
|  | 				goto fallback; | ||||||
| 			tty_putcode1(tty, TTYC_SETAB, colour); | 			tty_putcode1(tty, TTYC_SETAB, colour); | ||||||
|  | 		} | ||||||
| 		return (0); | 		return (0); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -1663,13 +1668,15 @@ tty_try_256(struct tty *tty, u_char colour, const char *type) | |||||||
| 	 * If the user has specified -2 to the client, setaf and setab may not | 	 * If the user has specified -2 to the client, setaf and setab may not | ||||||
| 	 * work, so send the usual sequence. | 	 * work, so send the usual sequence. | ||||||
| 	 */ | 	 */ | ||||||
| 	if (tty->term_flags & TERM_256COLOURS) { | 	if (tty->term_flags & TERM_256COLOURS) | ||||||
|  | 		goto fallback; | ||||||
|  |  | ||||||
|  | 	return (-1); | ||||||
|  |  | ||||||
|  | fallback: | ||||||
| 	xsnprintf(s, sizeof s, "\033[%s;5;%hhum", type, colour); | 	xsnprintf(s, sizeof s, "\033[%s;5;%hhum", type, colour); | ||||||
| 	tty_puts(tty, s); | 	tty_puts(tty, s); | ||||||
| 	return (0); | 	return (0); | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return (-1); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| void | void | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nicm
					nicm