End a sequence only on CAN, SUB, \a and C1s.
This commit is contained in:
		
				
					committed by
					
						
						Roberto E. Vargas Caballero
					
				
			
			
				
	
			
			
			
						parent
						
							5e917ab287
						
					
				
				
					commit
					e31829f659
				
			
							
								
								
									
										14
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								st.c
									
									
									
									
									
								
							@ -2335,19 +2335,19 @@ tcontrolcode(uchar ascii) {
 | 
				
			|||||||
	switch(ascii) {
 | 
						switch(ascii) {
 | 
				
			||||||
	case '\t':   /* HT */
 | 
						case '\t':   /* HT */
 | 
				
			||||||
		tputtab(1);
 | 
							tputtab(1);
 | 
				
			||||||
		break;
 | 
							return;
 | 
				
			||||||
	case '\b':   /* BS */
 | 
						case '\b':   /* BS */
 | 
				
			||||||
		tmoveto(term.c.x-1, term.c.y);
 | 
							tmoveto(term.c.x-1, term.c.y);
 | 
				
			||||||
		break;
 | 
							return;
 | 
				
			||||||
	case '\r':   /* CR */
 | 
						case '\r':   /* CR */
 | 
				
			||||||
		tmoveto(0, term.c.y);
 | 
							tmoveto(0, term.c.y);
 | 
				
			||||||
		break;
 | 
							return;
 | 
				
			||||||
	case '\f':   /* LF */
 | 
						case '\f':   /* LF */
 | 
				
			||||||
	case '\v':   /* VT */
 | 
						case '\v':   /* VT */
 | 
				
			||||||
	case '\n':   /* LF */
 | 
						case '\n':   /* LF */
 | 
				
			||||||
		/* go to first col if the mode is set */
 | 
							/* go to first col if the mode is set */
 | 
				
			||||||
		tnewline(IS_SET(MODE_CRLF));
 | 
							tnewline(IS_SET(MODE_CRLF));
 | 
				
			||||||
		break;
 | 
							return;
 | 
				
			||||||
	case '\a':   /* BEL */
 | 
						case '\a':   /* BEL */
 | 
				
			||||||
		if(term.esc & ESC_STR_END) {
 | 
							if(term.esc & ESC_STR_END) {
 | 
				
			||||||
			/* backwards compatibility to xterm */
 | 
								/* backwards compatibility to xterm */
 | 
				
			||||||
@ -2366,10 +2366,10 @@ tcontrolcode(uchar ascii) {
 | 
				
			|||||||
		return;
 | 
							return;
 | 
				
			||||||
	case '\016': /* SO */
 | 
						case '\016': /* SO */
 | 
				
			||||||
		term.charset = 0;
 | 
							term.charset = 0;
 | 
				
			||||||
		break;
 | 
							return;
 | 
				
			||||||
	case '\017': /* SI */
 | 
						case '\017': /* SI */
 | 
				
			||||||
		term.charset = 1;
 | 
							term.charset = 1;
 | 
				
			||||||
		break;
 | 
							return;
 | 
				
			||||||
	case '\032': /* SUB */
 | 
						case '\032': /* SUB */
 | 
				
			||||||
		tsetchar(question, &term.c.attr, term.c.x, term.c.y);
 | 
							tsetchar(question, &term.c.attr, term.c.x, term.c.y);
 | 
				
			||||||
	case '\030': /* CAN */
 | 
						case '\030': /* CAN */
 | 
				
			||||||
@ -2380,6 +2380,7 @@ tcontrolcode(uchar ascii) {
 | 
				
			|||||||
	case '\021': /* XON (IGNORED) */
 | 
						case '\021': /* XON (IGNORED) */
 | 
				
			||||||
	case '\023': /* XOFF (IGNORED) */
 | 
						case '\023': /* XOFF (IGNORED) */
 | 
				
			||||||
	case 0177:   /* DEL (IGNORED) */
 | 
						case 0177:   /* DEL (IGNORED) */
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
	case 0x84:   /* TODO: IND */
 | 
						case 0x84:   /* TODO: IND */
 | 
				
			||||||
	case 0x85:   /* TODO: NEL */
 | 
						case 0x85:   /* TODO: NEL */
 | 
				
			||||||
	case 0x88:   /* TODO: HTS */
 | 
						case 0x88:   /* TODO: HTS */
 | 
				
			||||||
@ -2396,6 +2397,7 @@ tcontrolcode(uchar ascii) {
 | 
				
			|||||||
	case 0x9f:   /* TODO: APC */
 | 
						case 0x9f:   /* TODO: APC */
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						/* only CAN, SUB, \a and C1 chars interrupt a sequence */
 | 
				
			||||||
	term.esc &= ~(ESC_STR_END|ESC_STR);
 | 
						term.esc &= ~(ESC_STR_END|ESC_STR);
 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user