mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Okay, so I screwed up when testing this, doh. Unbreak so that CAN/SUB actually
do cancel the sequence, and tweak to make the code more clear.
This commit is contained in:
		
							
								
								
									
										22
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								input.c
									
									
									
									
									
								
							@@ -399,13 +399,16 @@ input_state_sequence_first(u_char ch, struct input_ctx *ictx)
 | 
			
		||||
		if (ch == 0x1b) {			/* ESC */
 | 
			
		||||
			/* Abort sequence and begin with new. */
 | 
			
		||||
			input_state(ictx, input_state_escape);
 | 
			
		||||
		} else if (ch != 0x18 && ch != 0x1a) {	/* CAN and SUB */
 | 
			
		||||
			return;
 | 
			
		||||
		} else if (ch == 0x18 || ch == 0x1a) {	/* CAN and SUB */
 | 
			
		||||
			/* Abort sequence. */
 | 
			
		||||
			input_state(ictx, input_state_first);
 | 
			
		||||
		} else {
 | 
			
		||||
			/* Handle C0 immediately. */
 | 
			
		||||
			input_handle_c0_control(ch, ictx);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/* Handle C0 immediately. */
 | 
			
		||||
		input_handle_c0_control(ch, ictx);
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Just come back to this state, in case the next character
 | 
			
		||||
		 * is the start of a private sequence.
 | 
			
		||||
@@ -467,13 +470,16 @@ input_state_sequence_next(u_char ch, struct input_ctx *ictx)
 | 
			
		||||
		if (ch == 0x1b) {			/* ESC */
 | 
			
		||||
			/* Abort sequence and begin with new. */
 | 
			
		||||
			input_state(ictx, input_state_escape);
 | 
			
		||||
		} else if (ch != 0x18 && ch != 0x1a) {	/* CAN and SUB */
 | 
			
		||||
			return;
 | 
			
		||||
		} else if (ch == 0x18 || ch == 0x1a) {	/* CAN and SUB */
 | 
			
		||||
			/* Abort sequence. */
 | 
			
		||||
			input_state(ictx, input_state_first);
 | 
			
		||||
		} else  {
 | 
			
		||||
			/* Handle C0 immediately. */
 | 
			
		||||
			input_handle_c0_control(ch, ictx);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/* Handle C0 immediately. */
 | 
			
		||||
		input_handle_c0_control(ch, ictx);
 | 
			
		||||
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user