diff options
| author | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2014-04-29 09:58:55 +0200 | 
|---|---|---|
| committer | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2014-04-30 08:35:53 +0200 | 
| commit | 870f961c49d3f9dfea8d78666e73fcdd0f90cc57 (patch) | |
| tree | 8ea64d88d93d1fc6d8e13fc7834ee319b7007164 | |
| parent | 1629363f2d009a0c0d61209e4126ff09fa0e11a4 (diff) | |
| download | st-870f961c49d3f9dfea8d78666e73fcdd0f90cc57.tar.gz st-870f961c49d3f9dfea8d78666e73fcdd0f90cc57.tar.bz2 | |
Fix displaying control code
Control code are never displayed. It is not important if graphic
charset is displayed or not.
| -rw-r--r-- | st.c | 22 | 
1 files changed, 9 insertions, 13 deletions
| @@ -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); | 
