Browse Source

Fix displaying control code

Control code are never displayed. It is not important if graphic
charset is displayed or not.
master
Roberto E. Vargas Caballero 10 years ago
parent
commit
870f961c49
1 changed files with 9 additions and 13 deletions
  1. +9
    -13
      st.c

+ 9
- 13
st.c View File

@ -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…
Cancel
Save