mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:07:38 +00:00 
			
		
		
		
	Some terminals respond to secondary DA with primary (they ignore the
intermediate character). So ignore the possible responses to primary DA.
This commit is contained in:
		
							
								
								
									
										12
									
								
								tty-keys.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								tty-keys.c
									
									
									
									
									
								
							@@ -686,9 +686,9 @@ tty_keys_device(struct tty *tty, const char *buf, size_t len, size_t *size)
 | 
			
		||||
	char  tmp[64], *endptr;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Secondary device attributes are \033[>a;b;c. We only request
 | 
			
		||||
	 * attributes on xterm, so we only care about the middle values which
 | 
			
		||||
	 * is the xterm version.
 | 
			
		||||
	 * Primary device attributes are \033[?a;b and secondary are
 | 
			
		||||
	 * \033[>a;b;c. We only request attributes on xterm, so we only care
 | 
			
		||||
	 * about the middle values which is the xterm version.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	*size = 0;
 | 
			
		||||
@@ -702,7 +702,7 @@ tty_keys_device(struct tty *tty, const char *buf, size_t len, size_t *size)
 | 
			
		||||
		return (-1);
 | 
			
		||||
	if (len == 2)
 | 
			
		||||
		return (1);
 | 
			
		||||
	if (buf[2] != '>')
 | 
			
		||||
	if (buf[2] != '>' && buf[2] != '?')
 | 
			
		||||
		return (-1);
 | 
			
		||||
	if (len == 3)
 | 
			
		||||
		return (1);
 | 
			
		||||
@@ -718,6 +718,10 @@ tty_keys_device(struct tty *tty, const char *buf, size_t len, size_t *size)
 | 
			
		||||
	tmp[i] = '\0';
 | 
			
		||||
	*size = 4 + i;
 | 
			
		||||
 | 
			
		||||
	/* Only secondary is of interest. */
 | 
			
		||||
	if (buf[2] != '>')
 | 
			
		||||
		return (0);
 | 
			
		||||
 | 
			
		||||
	/* Convert version numbers. */
 | 
			
		||||
	a = strtoul(tmp, &endptr, 10);
 | 
			
		||||
	if (*endptr == ';') {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user