Fix displaying control code
Control code are never displayed. It is not important if graphic charset is displayed or not.
This commit is contained in:
		
							parent
							
								
									1629363f2d
								
							
						
					
					
						commit
						870f961c49
					
				
							
								
								
									
										20
									
								
								st.c
								
								
								
								
							
							
						
						
									
										20
									
								
								st.c
								
								
								
								
							| 
						 | 
				
			
			@ -392,7 +392,7 @@ static void tsetdirtattr(int);
 | 
			
		|||
static void tsetmode(bool, bool, int *, int);
 | 
			
		||||
static void tfulldirt(void);
 | 
			
		||||
static void techo(char *, int);
 | 
			
		||||
static bool tcontrolcode(uchar );
 | 
			
		||||
static void tcontrolcode(uchar );
 | 
			
		||||
static void tdectest(char );
 | 
			
		||||
static int32_t tdefcolor(int *, int *, int);
 | 
			
		||||
static void tdeftran(char);
 | 
			
		||||
| 
						 | 
				
			
			@ -2328,7 +2328,7 @@ tdeftran(char ascii) {
 | 
			
		|||
		term.trantbl[term.icharset] = (*bp)[1];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool
 | 
			
		||||
void
 | 
			
		||||
tcontrolcode(uchar ascii) {
 | 
			
		||||
	static char question[UTF_SIZ] = "?";
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2363,7 +2363,7 @@ tcontrolcode(uchar ascii) {
 | 
			
		|||
		csireset();
 | 
			
		||||
		term.esc &= ~(ESC_CSI|ESC_ALTCHARSET|ESC_TEST);
 | 
			
		||||
		term.esc |= ESC_START;
 | 
			
		||||
		return 1;
 | 
			
		||||
		return;
 | 
			
		||||
	case '\016': /* SO */
 | 
			
		||||
		term.charset = 0;
 | 
			
		||||
		break;
 | 
			
		||||
| 
						 | 
				
			
			@ -2395,11 +2395,9 @@ tcontrolcode(uchar ascii) {
 | 
			
		|||
	case 0x9e:   /* TODO: PM */
 | 
			
		||||
	case 0x9f:   /* TODO: APC */
 | 
			
		||||
		break;
 | 
			
		||||
	default:
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
	term.esc &= ~(ESC_STR_END|ESC_STR);
 | 
			
		||||
	return 1;
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
| 
						 | 
				
			
			@ -2478,7 +2476,10 @@ tputc(char *c, int len) {
 | 
			
		|||
	 * they must not cause conflicts with sequences.
 | 
			
		||||
	 */
 | 
			
		||||
	if(control) {
 | 
			
		||||
		if (tcontrolcode(ascii))
 | 
			
		||||
		tcontrolcode(ascii);
 | 
			
		||||
		/*
 | 
			
		||||
		 * control codes are not shown ever
 | 
			
		||||
		 */
 | 
			
		||||
		return;
 | 
			
		||||
	} else if(term.esc & ESC_START) {
 | 
			
		||||
		if(term.esc & ESC_CSI) {
 | 
			
		||||
| 
						 | 
				
			
			@ -2576,11 +2577,6 @@ tputc(char *c, int len) {
 | 
			
		|||
		 */
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	/*
 | 
			
		||||
	 * Display control codes only if we are in graphic mode
 | 
			
		||||
	 */
 | 
			
		||||
	if(control && term.trantbl[term.charset] != CS_GRAPHIC0)
 | 
			
		||||
		return;
 | 
			
		||||
	if(sel.ob.x != -1 && BETWEEN(term.c.y, sel.ob.y, sel.oe.y))
 | 
			
		||||
		selclear(NULL);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue