mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Add support for overline (SGR 53), from Ricardo Banffy.
This commit is contained in:
		| @@ -31,7 +31,7 @@ attributes_tostring(int attr) | |||||||
| 	if (attr == 0) | 	if (attr == 0) | ||||||
| 		return ("none"); | 		return ("none"); | ||||||
|  |  | ||||||
| 	len = xsnprintf(buf, sizeof buf, "%s%s%s%s%s%s%s%s%s%s%s%s", | 	len = xsnprintf(buf, sizeof buf, "%s%s%s%s%s%s%s%s%s%s%s%s%s", | ||||||
| 	    (attr & GRID_ATTR_BRIGHT) ? "bright," : "", | 	    (attr & GRID_ATTR_BRIGHT) ? "bright," : "", | ||||||
| 	    (attr & GRID_ATTR_DIM) ? "dim," : "", | 	    (attr & GRID_ATTR_DIM) ? "dim," : "", | ||||||
| 	    (attr & GRID_ATTR_UNDERSCORE) ? "underscore," : "", | 	    (attr & GRID_ATTR_UNDERSCORE) ? "underscore," : "", | ||||||
| @@ -43,7 +43,8 @@ attributes_tostring(int attr) | |||||||
| 	    (attr & GRID_ATTR_UNDERSCORE_2) ? "double-underscore," : "", | 	    (attr & GRID_ATTR_UNDERSCORE_2) ? "double-underscore," : "", | ||||||
| 	    (attr & GRID_ATTR_UNDERSCORE_3) ? "curly-underscore," : "", | 	    (attr & GRID_ATTR_UNDERSCORE_3) ? "curly-underscore," : "", | ||||||
| 	    (attr & GRID_ATTR_UNDERSCORE_4) ? "dotted-underscore," : "", | 	    (attr & GRID_ATTR_UNDERSCORE_4) ? "dotted-underscore," : "", | ||||||
| 	    (attr & GRID_ATTR_UNDERSCORE_5) ? "dashed-underscore," : ""); | 	    (attr & GRID_ATTR_UNDERSCORE_5) ? "dashed-underscore," : "", | ||||||
|  | 	    (attr & GRID_ATTR_OVERLINE) ? "overline," : ""); | ||||||
| 	if (len > 0) | 	if (len > 0) | ||||||
| 		buf[len - 1] = '\0'; | 		buf[len - 1] = '\0'; | ||||||
|  |  | ||||||
| @@ -73,7 +74,8 @@ attributes_fromstring(const char *str) | |||||||
| 		{ "double-underscore", GRID_ATTR_UNDERSCORE_2 }, | 		{ "double-underscore", GRID_ATTR_UNDERSCORE_2 }, | ||||||
| 		{ "curly-underscore", GRID_ATTR_UNDERSCORE_3 }, | 		{ "curly-underscore", GRID_ATTR_UNDERSCORE_3 }, | ||||||
| 		{ "dotted-underscore", GRID_ATTR_UNDERSCORE_4 }, | 		{ "dotted-underscore", GRID_ATTR_UNDERSCORE_4 }, | ||||||
| 		{ "dashed-underscore", GRID_ATTR_UNDERSCORE_5 } | 		{ "dashed-underscore", GRID_ATTR_UNDERSCORE_5 }, | ||||||
|  | 		{ "overline", GRID_ATTR_OVERLINE } | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	if (*str == '\0' || strcspn(str, delimiters) == 0) | 	if (*str == '\0' || strcspn(str, delimiters) == 0) | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								grid.c
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								grid.c
									
									
									
									
									
								
							| @@ -790,6 +790,7 @@ grid_string_cells_code(const struct grid_cell *lastgc, | |||||||
| 		{ GRID_ATTR_UNDERSCORE_3, 43 }, | 		{ GRID_ATTR_UNDERSCORE_3, 43 }, | ||||||
| 		{ GRID_ATTR_UNDERSCORE_4, 44 }, | 		{ GRID_ATTR_UNDERSCORE_4, 44 }, | ||||||
| 		{ GRID_ATTR_UNDERSCORE_5, 45 }, | 		{ GRID_ATTR_UNDERSCORE_5, 45 }, | ||||||
|  | 		{ GRID_ATTR_OVERLINE, 53 }, | ||||||
| 	}; | 	}; | ||||||
| 	n = 0; | 	n = 0; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								input.c
									
									
									
									
									
								
							| @@ -2070,6 +2070,12 @@ input_csi_dispatch_sgr(struct input_ctx *ictx) | |||||||
| 		case 49: | 		case 49: | ||||||
| 			gc->bg = 8; | 			gc->bg = 8; | ||||||
| 			break; | 			break; | ||||||
|  | 		case 53: | ||||||
|  | 			gc->attr |= GRID_ATTR_OVERLINE; | ||||||
|  | 			break; | ||||||
|  | 		case 55: | ||||||
|  | 			gc->attr &= ~GRID_ATTR_OVERLINE; | ||||||
|  | 			break; | ||||||
| 		case 90: | 		case 90: | ||||||
| 		case 91: | 		case 91: | ||||||
| 		case 92: | 		case 92: | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								tmux.1
									
									
									
									
									
								
							| @@ -4091,6 +4091,7 @@ Set no attributes (turn off any active attributes). | |||||||
| .Ic reverse , | .Ic reverse , | ||||||
| .Ic hidden , | .Ic hidden , | ||||||
| .Ic italics , | .Ic italics , | ||||||
|  | .Ic overline , | ||||||
| .Ic strikethrough , | .Ic strikethrough , | ||||||
| .Ic double-underscore , | .Ic double-underscore , | ||||||
| .Ic curly-underscore , | .Ic curly-underscore , | ||||||
| @@ -4820,6 +4821,8 @@ to change the cursor colour from inside | |||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||
| $ printf '\e033]12;red\e033\e\e' | $ printf '\e033]12;red\e033\e\e' | ||||||
| .Ed | .Ed | ||||||
|  | .It Em \&Smol | ||||||
|  | Enable the overline attribute. | ||||||
| .It Em \&Smulx | .It Em \&Smulx | ||||||
| Set a styled underline. | Set a styled underline. | ||||||
| The single parameter is one of: 0 for no underline, 1 for normal | The single parameter is one of: 0 for no underline, 1 for normal | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								tmux.h
									
									
									
									
									
								
							| @@ -431,6 +431,7 @@ enum tty_code_code { | |||||||
| 	TTYC_SITM, | 	TTYC_SITM, | ||||||
| 	TTYC_SMACS, | 	TTYC_SMACS, | ||||||
| 	TTYC_SMCUP, | 	TTYC_SMCUP, | ||||||
|  | 	TTYC_SMOL, | ||||||
| 	TTYC_SMKX, | 	TTYC_SMKX, | ||||||
| 	TTYC_SMSO, | 	TTYC_SMSO, | ||||||
| 	TTYC_SMULX, | 	TTYC_SMULX, | ||||||
| @@ -568,6 +569,7 @@ enum utf8_state { | |||||||
| #define GRID_ATTR_UNDERSCORE_3 0x400 | #define GRID_ATTR_UNDERSCORE_3 0x400 | ||||||
| #define GRID_ATTR_UNDERSCORE_4 0x800 | #define GRID_ATTR_UNDERSCORE_4 0x800 | ||||||
| #define GRID_ATTR_UNDERSCORE_5 0x1000 | #define GRID_ATTR_UNDERSCORE_5 0x1000 | ||||||
|  | #define GRID_ATTR_OVERLINE 0x2000 | ||||||
|  |  | ||||||
| /* All underscore attributes. */ | /* All underscore attributes. */ | ||||||
| #define GRID_ATTR_ALL_UNDERSCORE \ | #define GRID_ATTR_ALL_UNDERSCORE \ | ||||||
|   | |||||||
| @@ -252,6 +252,7 @@ static const struct tty_term_code_entry tty_term_codes[] = { | |||||||
| 	[TTYC_SMACS] = { TTYCODE_STRING, "smacs" }, | 	[TTYC_SMACS] = { TTYCODE_STRING, "smacs" }, | ||||||
| 	[TTYC_SMCUP] = { TTYCODE_STRING, "smcup" }, | 	[TTYC_SMCUP] = { TTYCODE_STRING, "smcup" }, | ||||||
| 	[TTYC_SMKX] = { TTYCODE_STRING, "smkx" }, | 	[TTYC_SMKX] = { TTYCODE_STRING, "smkx" }, | ||||||
|  | 	[TTYC_SMOL] = { TTYCODE_STRING, "Smol" }, | ||||||
| 	[TTYC_SMSO] = { TTYCODE_STRING, "smso" }, | 	[TTYC_SMSO] = { TTYCODE_STRING, "smso" }, | ||||||
| 	[TTYC_SMULX] = { TTYCODE_STRING, "Smulx" }, | 	[TTYC_SMULX] = { TTYCODE_STRING, "Smulx" }, | ||||||
| 	[TTYC_SMUL] = { TTYCODE_STRING, "smul" }, | 	[TTYC_SMUL] = { TTYCODE_STRING, "smul" }, | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								tty.c
									
									
									
									
									
								
							| @@ -2199,6 +2199,8 @@ tty_attributes(struct tty *tty, const struct grid_cell *gc, | |||||||
| 		tty_putcode(tty, TTYC_INVIS); | 		tty_putcode(tty, TTYC_INVIS); | ||||||
| 	if (changed & GRID_ATTR_STRIKETHROUGH) | 	if (changed & GRID_ATTR_STRIKETHROUGH) | ||||||
| 		tty_putcode(tty, TTYC_SMXX); | 		tty_putcode(tty, TTYC_SMXX); | ||||||
|  | 	if (changed & GRID_ATTR_OVERLINE) | ||||||
|  | 		tty_putcode(tty, TTYC_SMOL); | ||||||
| 	if ((changed & GRID_ATTR_CHARSET) && tty_acs_needed(tty)) | 	if ((changed & GRID_ATTR_CHARSET) && tty_acs_needed(tty)) | ||||||
| 		tty_putcode(tty, TTYC_SMACS); | 		tty_putcode(tty, TTYC_SMACS); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nicm
					nicm