mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Look for mice and xterm keys before standard function keys as they are less
likely to be partial versions.
This commit is contained in:
		
							
								
								
									
										18
									
								
								tty-keys.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								tty-keys.c
									
									
									
									
									
								
							@@ -453,14 +453,7 @@ tty_keys_next(struct tty *tty)
 | 
			
		||||
		goto handle_key;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Look for matching key string and return if found. */
 | 
			
		||||
	tk = tty_keys_find(tty, buf + 1, len - 1, &size);
 | 
			
		||||
	if (tk != NULL) {
 | 
			
		||||
		key = tk->key;
 | 
			
		||||
		goto found_key;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Not found. Is this a mouse key press? */
 | 
			
		||||
	/* Is this a mouse key press? */
 | 
			
		||||
	switch (tty_keys_mouse(buf, len, &size, &mouse)) {
 | 
			
		||||
	case 0:		/* yes */
 | 
			
		||||
		evbuffer_drain(tty->event->input, size);
 | 
			
		||||
@@ -472,7 +465,7 @@ tty_keys_next(struct tty *tty)
 | 
			
		||||
		goto partial_key;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Not found. Try to parse a key with an xterm-style modifier. */
 | 
			
		||||
	/* Try to parse a key with an xterm-style modifier. */
 | 
			
		||||
	switch (xterm_keys_find(buf, len, &size, &key)) {
 | 
			
		||||
	case 0:		/* found */
 | 
			
		||||
		evbuffer_drain(tty->event->input, size);
 | 
			
		||||
@@ -483,6 +476,13 @@ tty_keys_next(struct tty *tty)
 | 
			
		||||
		goto partial_key;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Look for matching key string and return if found. */
 | 
			
		||||
	tk = tty_keys_find(tty, buf + 1, len - 1, &size);
 | 
			
		||||
	if (tk != NULL) {
 | 
			
		||||
		key = tk->key;
 | 
			
		||||
		goto found_key;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Skip the escape. */
 | 
			
		||||
	buf++;
 | 
			
		||||
	len--;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user