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
					
				
							
								
								
									
										22
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								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,8 +2476,11 @@ tputc(char *c, int len) { | ||||
| 	 * they must not cause conflicts with sequences. | ||||
| 	 */ | ||||
| 	if(control) { | ||||
| 		if (tcontrolcode(ascii)) | ||||
| 			return; | ||||
| 		tcontrolcode(ascii); | ||||
| 		/*
 | ||||
| 		 * control codes are not shown ever | ||||
| 		 */ | ||||
| 		return; | ||||
| 	} else if(term.esc & ESC_START) { | ||||
| 		if(term.esc & ESC_CSI) { | ||||
| 			csiescseq.buf[csiescseq.len++] = ascii; | ||||
| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Roberto E. Vargas Caballero
						Roberto E. Vargas Caballero