mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Add support for the iTerm2 DSR 1337 sequence to get the terminal version.
This commit is contained in:
		
							
								
								
									
										9
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								input.c
									
									
									
									
									
								
							@@ -20,6 +20,7 @@
 | 
			
		||||
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#include <resolv.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
@@ -1301,6 +1302,7 @@ input_csi_dispatch(struct input_ctx *ictx)
 | 
			
		||||
	struct input_table_entry       *entry;
 | 
			
		||||
	int				i, n, m;
 | 
			
		||||
	u_int				cx, bg = ictx->cell.cell.bg;
 | 
			
		||||
	char			       *copy, *cp;
 | 
			
		||||
 | 
			
		||||
	if (ictx->flags & INPUT_DISCARD)
 | 
			
		||||
		return (0);
 | 
			
		||||
@@ -1432,6 +1434,13 @@ input_csi_dispatch(struct input_ctx *ictx)
 | 
			
		||||
		case 6:
 | 
			
		||||
			input_reply(ictx, "\033[%u;%uR", s->cy + 1, s->cx + 1);
 | 
			
		||||
			break;
 | 
			
		||||
		case 1337: /* Terminal version, from iTerm2. */
 | 
			
		||||
			copy = xstrdup(getversion());
 | 
			
		||||
			for (cp = copy; *cp != '\0'; cp++)
 | 
			
		||||
				*cp = toupper((u_char)*cp);
 | 
			
		||||
			input_reply(ictx, "\033[TMUX %sn", copy);
 | 
			
		||||
			free(copy);
 | 
			
		||||
			break;
 | 
			
		||||
		default:
 | 
			
		||||
			log_debug("%s: unknown '%c'", __func__, ictx->ch);
 | 
			
		||||
			break;
 | 
			
		||||
 
 | 
			
		||||
@@ -1099,7 +1099,7 @@ tty_keys_device_status_report(struct tty *tty, const char *buf, size_t len,
 | 
			
		||||
		return (-1);
 | 
			
		||||
	if (len == 2)
 | 
			
		||||
		return (1);
 | 
			
		||||
	if (buf[2] != 'I')
 | 
			
		||||
	if (buf[2] != 'I' && buf[2] != 'T')
 | 
			
		||||
		return (-1);
 | 
			
		||||
	if (len == 3)
 | 
			
		||||
		return (1);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user