mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Add \033[s and \033[u to save and restore cursor position.
This commit is contained in:
		
							
								
								
									
										13
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								input.c
									
									
									
									
									
								
							@@ -135,8 +135,10 @@ enum input_csi_type {
 | 
			
		||||
	INPUT_CSI_HPA,
 | 
			
		||||
	INPUT_CSI_ICH,
 | 
			
		||||
	INPUT_CSI_IL,
 | 
			
		||||
	INPUT_CSI_RCP,
 | 
			
		||||
	INPUT_CSI_RM,
 | 
			
		||||
	INPUT_CSI_RM_PRIVATE,
 | 
			
		||||
	INPUT_CSI_SCP,
 | 
			
		||||
	INPUT_CSI_SGR,
 | 
			
		||||
	INPUT_CSI_SM,
 | 
			
		||||
	INPUT_CSI_SM_PRIVATE,
 | 
			
		||||
@@ -171,6 +173,8 @@ const struct input_table_entry input_csi_table[] = {
 | 
			
		||||
	{ 'n', "",  INPUT_CSI_DSR },
 | 
			
		||||
	{ 'q', " ", INPUT_CSI_DECSCUSR },
 | 
			
		||||
	{ 'r', "",  INPUT_CSI_DECSTBM },
 | 
			
		||||
	{ 's', "",  INPUT_CSI_SCP },
 | 
			
		||||
	{ 'u', "",  INPUT_CSI_RCP },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Input transition. */
 | 
			
		||||
@@ -1168,6 +1172,10 @@ input_csi_dispatch(struct input_ctx *ictx)
 | 
			
		||||
	case INPUT_CSI_IL:
 | 
			
		||||
		screen_write_insertline(sctx, input_get(ictx, 0, 1, 1));
 | 
			
		||||
		break;
 | 
			
		||||
	case INPUT_CSI_RCP:
 | 
			
		||||
		memcpy(&ictx->cell, &ictx->old_cell, sizeof ictx->cell);
 | 
			
		||||
		screen_write_cursormove(sctx, ictx->old_cx, ictx->old_cy);
 | 
			
		||||
		break;
 | 
			
		||||
	case INPUT_CSI_RM:
 | 
			
		||||
		switch (input_get(ictx, 0, 0, -1)) {
 | 
			
		||||
		case 4:		/* IRM */
 | 
			
		||||
@@ -1207,6 +1215,11 @@ input_csi_dispatch(struct input_ctx *ictx)
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
	case INPUT_CSI_SCP:
 | 
			
		||||
		memcpy(&ictx->old_cell, &ictx->cell, sizeof ictx->old_cell);
 | 
			
		||||
		ictx->old_cx = s->cx;
 | 
			
		||||
		ictx->old_cy = s->cy;
 | 
			
		||||
		break;
 | 
			
		||||
	case INPUT_CSI_SGR:
 | 
			
		||||
		input_csi_dispatch_sgr(ictx);
 | 
			
		||||
		break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user