From c945112e89222e697c3733c69eab685f606a5be5 Mon Sep 17 00:00:00 2001 From: james <> Date: Fri, 22 Jun 2012 10:22:25 +0000 Subject: *** empty log message *** --- src/ansi.c | 713 ++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 403 insertions(+), 310 deletions(-) (limited to 'src/ansi.c') diff --git a/src/ansi.c b/src/ansi.c index 593b367..3cb75f1 100644 --- a/src/ansi.c +++ b/src/ansi.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.51 2012/06/22 10:22:24 james + * *** empty log message *** + * * Revision 1.50 2008/03/07 13:16:02 james * *** empty log message *** * @@ -175,65 +178,94 @@ ansi_move (ANSI * a, CRT_Pos p) // a->pos.x = ANSI_INVAL; - if (a->pos.x != ANSI_INVAL) { - - if ((!dx) && (!dy)) - return 0; - - if (!dy) { - if (dx == 1) { - if (a->terminal->xmit (a->terminal, "\033[C", 3) != 3) - err++; - } else if (dx == -1) { - if (a->terminal->xmit (a->terminal, "\033[D", 3) != 3) - err++; - } else { - n = snprintf (buf, sizeof (buf), "\033[%dG", p.x + 1); - if (a->terminal->xmit (a->terminal, buf, n) != n) - err++; - } - } else if (!dx) { - if (dy == -1) { - if (a->terminal->xmit (a->terminal, "\033[A", 3) != 3) - err++; - } else if (dy == 1) { - if (a->terminal->xmit (a->terminal, "\033[B", 3) != 3) - err++; - } else if (dy < 0) { - n = snprintf (buf, sizeof (buf), "\033[%dA", -dy); - if (a->terminal->xmit (a->terminal, buf, n) != n) - err++; - } else { - n = snprintf (buf, sizeof (buf), "\033[%dB", dy); - if (a->terminal->xmit (a->terminal, buf, n) != n) - err++; - } - } else if (!p.x) { - if (dy == 1) { - if (a->terminal->xmit (a->terminal, "\033[E", 3) != 3) - err++; - } else if (dy == -1) { - if (a->terminal->xmit (a->terminal, "\033[F", 3) != 3) - err++; - } else if (dy > 0) { - n = snprintf (buf, sizeof (buf), "\033[%dE", dy); - if (a->terminal->xmit (a->terminal, buf, n) != n) - err++; - } else { - n = snprintf (buf, sizeof (buf), "\033[%dF", -dy); - if (a->terminal->xmit (a->terminal, buf, n) != n) - err++; - } - } else { + if (a->pos.x != ANSI_INVAL) + { + + if ((!dx) && (!dy)) + return 0; + + if (!dy) + { + if (dx == 1) + { + if (a->terminal->xmit (a->terminal, "\033[C", 3) != 3) + err++; + } + else if (dx == -1) + { + if (a->terminal->xmit (a->terminal, "\033[D", 3) != 3) + err++; + } + else + { + n = snprintf (buf, sizeof (buf), "\033[%dG", p.x + 1); + if (a->terminal->xmit (a->terminal, buf, n) != n) + err++; + } + } + else if (!dx) + { + if (dy == -1) + { + if (a->terminal->xmit (a->terminal, "\033[A", 3) != 3) + err++; + } + else if (dy == 1) + { + if (a->terminal->xmit (a->terminal, "\033[B", 3) != 3) + err++; + } + else if (dy < 0) + { + n = snprintf (buf, sizeof (buf), "\033[%dA", -dy); + if (a->terminal->xmit (a->terminal, buf, n) != n) + err++; + } + else + { + n = snprintf (buf, sizeof (buf), "\033[%dB", dy); + if (a->terminal->xmit (a->terminal, buf, n) != n) + err++; + } + } + else if (!p.x) + { + if (dy == 1) + { + if (a->terminal->xmit (a->terminal, "\033[E", 3) != 3) + err++; + } + else if (dy == -1) + { + if (a->terminal->xmit (a->terminal, "\033[F", 3) != 3) + err++; + } + else if (dy > 0) + { + n = snprintf (buf, sizeof (buf), "\033[%dE", dy); + if (a->terminal->xmit (a->terminal, buf, n) != n) + err++; + } + else + { + n = snprintf (buf, sizeof (buf), "\033[%dF", -dy); + if (a->terminal->xmit (a->terminal, buf, n) != n) + err++; + } + } + else + { + n = snprintf (buf, sizeof (buf), "\033[%d;%dH", p.y + 1, p.x + 1); + if (a->terminal->xmit (a->terminal, buf, n) != n) + err++; + } + } + else + { n = snprintf (buf, sizeof (buf), "\033[%d;%dH", p.y + 1, p.x + 1); if (a->terminal->xmit (a->terminal, buf, n) != n) err++; } - } else { - n = snprintf (buf, sizeof (buf), "\033[%d;%dH", p.y + 1, p.x + 1); - if (a->terminal->xmit (a->terminal, buf, n) != n) - err++; - } a->pos = p; @@ -248,13 +280,16 @@ ansi_showhide_cursor (ANSI * a, int hide) if (a->hide_cursor == hide) return err; - if (hide) { - if (a->terminal->xmit (a->terminal, "\033[?25l", 6) != 6) - err++; - } else { - if (a->terminal->xmit (a->terminal, "\033[?25h", 6) != 6) - err++; - } + if (hide) + { + if (a->terminal->xmit (a->terminal, "\033[?25l", 6) != 6) + err++; + } + else + { + if (a->terminal->xmit (a->terminal, "\033[?25h", 6) != 6) + err++; + } a->hide_cursor = hide; return err; @@ -293,7 +328,6 @@ ansi_set_title (ANSI * a, char *t) static int ansi_set_color (ANSI * a, int color) { - int dif; char buf[16]; int i; int fg, bg; @@ -303,17 +337,23 @@ ansi_set_color (ANSI * a, int color) fg = CRT_COLOR_FG (color); bg = CRT_COLOR_BG (color); - if (fg & CRT_COLOR_INTENSITY) { - fg += 90; - } else { - fg += 30; - } + if (fg & CRT_COLOR_INTENSITY) + { + fg += 90; + } + else + { + fg += 30; + } - if (bg & CRT_COLOR_INTENSITY) { - bg += 100; - } else { - bg += 40; - } + if (bg & CRT_COLOR_INTENSITY) + { + bg += 100; + } + else + { + bg += 40; + } i = sprintf (buf, "\033[%d;%dm", fg, bg); #if 0 @@ -341,41 +381,54 @@ ansi_set_attr (ANSI * a, int attr) a->attr = attr; #if 0 - if (attr == CRT_ATTR_NORMAL) { - ansi_force_attr_normal (a); - return; - } + if (attr == CRT_ATTR_NORMAL) + { + ansi_force_attr_normal (a); + return; + } #endif - if (dif & CRT_ATTR_UNDERLINE) { - if (attr & CRT_ATTR_UNDERLINE) { - if (a->terminal->xmit (a->terminal, "\033[4m", 4) != 4) - err++; - } else { - if (a->terminal->xmit (a->terminal, "\033[24m", 5) != 5) - err++; + if (dif & CRT_ATTR_UNDERLINE) + { + if (attr & CRT_ATTR_UNDERLINE) + { + if (a->terminal->xmit (a->terminal, "\033[4m", 4) != 4) + err++; + } + else + { + if (a->terminal->xmit (a->terminal, "\033[24m", 5) != 5) + err++; + } } - } - if (dif & CRT_ATTR_REVERSE) { - if (attr & CRT_ATTR_REVERSE) { - if (a->terminal->xmit (a->terminal, "\033[7m", 4) != 4) - err++; - } else { - if (a->terminal->xmit (a->terminal, "\033[27m", 5) != 5) - err++; + if (dif & CRT_ATTR_REVERSE) + { + if (attr & CRT_ATTR_REVERSE) + { + if (a->terminal->xmit (a->terminal, "\033[7m", 4) != 4) + err++; + } + else + { + if (a->terminal->xmit (a->terminal, "\033[27m", 5) != 5) + err++; + } } - } - if (dif & CRT_ATTR_BOLD) { - if (attr & CRT_ATTR_BOLD) { - if (a->terminal->xmit (a->terminal, "\033[1m", 4) != 4) - err++; - } else { - if (a->terminal->xmit (a->terminal, "\033[21m", 5) != 5) - err++; - if (a->terminal->xmit (a->terminal, "\033[22m", 5) != 5) - err++; + if (dif & CRT_ATTR_BOLD) + { + if (attr & CRT_ATTR_BOLD) + { + if (a->terminal->xmit (a->terminal, "\033[1m", 4) != 4) + err++; + } + else + { + if (a->terminal->xmit (a->terminal, "\033[21m", 5) != 5) + err++; + if (a->terminal->xmit (a->terminal, "\033[22m", 5) != 5) + err++; + } } - } return err; } @@ -386,31 +439,35 @@ ascii_emit (TTY * t, uint32_t ch) int i; /* Some quick obvious subsititons for quotation marks */ - switch (ch) { - case 0x2018: - ch = '`'; - break; - case 0x2019: - ch = '\''; - break; - case 0x201c: - case 0x201d: - ch = '"'; - break; - } + switch (ch) + { + case 0x2018: + ch = '`'; + break; + case 0x2019: + ch = '\''; + break; + case 0x201c: + case 0x201d: + ch = '"'; + break; + } /* Short cut the easy stuff */ - if (ch < 0x7f) { - uint8_t c = ch; - return (t->xmit (t, &c, 1) == 1) ? 0 : -1; - } + if (ch < 0x7f) + { + uint8_t c = ch; + return (t->xmit (t, &c, 1) == 1) ? 0 : -1; + } - for (i = 0; i < VT102_CHARSET_SIZE; ++i) { - if (vt102_charset_gl[i] == ch) { - uint8_t c[3] = { 016, i, 017 }; - return (t->xmit (t, &c, 3) == 3) ? 0 : -1; + for (i = 0; i < VT102_CHARSET_SIZE; ++i) + { + if (vt102_charset_gl[i] == ch) + { + uint8_t c[3] = { 016, i, 017 }; + return (t->xmit (t, &c, 3) == 3) ? 0 : -1; + } } - } return (t->xmit (t, "?", 1) == 1) ? 0 : -1; @@ -420,7 +477,6 @@ static int ansi_render (ANSI * a, CRT_CA ca) { int err = 0; - int dif; if ((ca.chr < VT102_CHARSET_SIZE) && (vt102_charset_c0[ca.chr])) ca.chr = vt102_charset_c0[ca.chr]; @@ -431,13 +487,16 @@ ansi_render (ANSI * a, CRT_CA ca) ansi_set_attr (a, ca.attr); ansi_set_color (a, ca.color); - if (a->utf8) { - if (utf8_emit (a->terminal, ca.chr)) - err++; - } else { - if (ascii_emit (a->terminal, ca.chr)) - err++; - } + if (a->utf8) + { + if (utf8_emit (a->terminal, ca.chr)) + err++; + } + else + { + if (ascii_emit (a->terminal, ca.chr)) + err++; + } a->pos.x++; @@ -454,7 +513,7 @@ static int ansi_cls (ANSI * a) { CRT_Pos p = { 0 }; - int err; + int err = 0; crt_cls (&a->crt); @@ -478,22 +537,24 @@ ansi_draw_line (ANSI * a, CRT_CA * cap, int y) CRT_Pos p = { 0, y }; CRT_CA *acap = &a->crt.screen[CRT_ADDR_POS (&p)]; - for (p.x = 0; p.x < a->crt.size.x; ++p.x) { - if (p.x >= a->size.x) - continue; + for (p.x = 0; p.x < a->crt.size.x; ++p.x) + { + if (p.x >= a->size.x) + continue; - if (crt_ca_cmp (*acap, *cap)) { - err += ansi_showhide_cursor (a, 1); + if (crt_ca_cmp (*acap, *cap)) + { + err += ansi_showhide_cursor (a, 1); - *acap = *cap; + *acap = *cap; - err += ansi_move (a, p); - err += ansi_render (a, *acap); - } + err += ansi_move (a, p); + err += ansi_render (a, *acap); + } - acap++; - cap++; - } + acap++; + cap++; + } return err; } @@ -504,43 +565,47 @@ ansi_resize_check (ANSI * a, CRT_Pos * size) int err = 0; if ((size && crt_pos_cmp (a->crt.size, *size)) - || crt_pos_cmp (a->terminal->size, a->size)) { + || crt_pos_cmp (a->terminal->size, a->size)) + { - terminal_getsize (a->terminal); + terminal_getsize (a->terminal); - a->size = a->terminal->size; + a->size = a->terminal->size; - a->pos.x = ANSI_INVAL; - a->hide_cursor = ANSI_INVAL; + a->pos.x = ANSI_INVAL; + a->hide_cursor = ANSI_INVAL; - crt_reset (&a->crt); + crt_reset (&a->crt); - if (size) - a->crt.size = *size; + if (size) + a->crt.size = *size; - // a->terminal->xmit (a->terminal, "\033c", 3); - // maybe - issue 132 column command if we're 132? + // a->terminal->xmit (a->terminal, "\033c", 3); + // maybe - issue 132 column command if we're 132? - ansi_cls (a); - if (a->terminal->xmit (a->terminal, "\033=", 2) != 2) - err++; - if (a->terminal->xmit (a->terminal, "\033[?6l", 5) != 5) - err++; - if (a->terminal->xmit (a->terminal, "\033[r", 3) != 3) - err++; - if (a->utf8) { - if (a->terminal->xmit (a->terminal, "\033%G", 3) != 3) + ansi_cls (a); + if (a->terminal->xmit (a->terminal, "\033=", 2) != 2) err++; - } else { - if (a->terminal->xmit (a->terminal, "\033(B", 3) != 3) + if (a->terminal->xmit (a->terminal, "\033[?6l", 5) != 5) err++; - if (a->terminal->xmit (a->terminal, "\033)0", 3) != 3) + if (a->terminal->xmit (a->terminal, "\033[r", 3) != 3) err++; - if (a->terminal->xmit (a->terminal, "\017", 1) != 3) - err++; - } + if (a->utf8) + { + if (a->terminal->xmit (a->terminal, "\033%G", 3) != 3) + err++; + } + else + { + if (a->terminal->xmit (a->terminal, "\033(B", 3) != 3) + err++; + if (a->terminal->xmit (a->terminal, "\033)0", 3) != 3) + err++; + if (a->terminal->xmit (a->terminal, "\017", 1) != 3) + err++; + } - } + } return err; } @@ -573,58 +638,61 @@ ansi_history (ANSI * a, History * h) err++; - while (a->history_ptr != h->wptr) { + while (a->history_ptr != h->wptr) + { + + History_ent *e = &h->lines[a->history_ptr]; - History_ent *e = &h->lines[a->history_ptr]; + HISTORY_INC (h, a->history_ptr); - HISTORY_INC (h, a->history_ptr); + if (!e->valid) + continue; - if (!e->valid) - continue; + /* If so write the line ot the top of the screen */ + err += ansi_draw_line (a, e->line, 0); - /* If so write the line ot the top of the screen */ - err += ansi_draw_line (a, e->line, 0); + /* Roll guess_scroll lines up putting the top line into the xterm's + history */ - /* Roll guess_scroll lines up putting the top line into the xterm's - history */ + /* Make extra lines a predictable colour */ + err += ansi_set_color (a, CRT_COLOR_NORMAL); - /* Make extra lines a predictable colour */ - err += ansi_set_color (a, CRT_COLOR_NORMAL); + err += ansi_showhide_cursor (a, 1); - err += ansi_showhide_cursor (a, 1); + i = sprintf (buf, "\033[%d;%dH", guess_scroll, 1); + if (a->terminal->xmit (a->terminal, buf, i) != i) + err++; - i = sprintf (buf, "\033[%d;%dH", guess_scroll, 1); - if (a->terminal->xmit (a->terminal, buf, i) != i) - err++; + if (a->terminal->xmit (a->terminal, "\033D", 2) != 2) + err++; - if (a->terminal->xmit (a->terminal, "\033D", 2) != 2) - err++; + a->pos.x = ANSI_INVAL; - a->pos.x = ANSI_INVAL; + /* now do the same in our image of the screen */ - /* now do the same in our image of the screen */ + { + CRT_Pos s = { 0 } + , e = + { + 0}; - { - CRT_Pos s = { 0 } - , e = { - 0}; + /* scroll lines up */ + for (s.y++; s.y < guess_scroll; s.y++, e.y++) + { + memcpy (&a->crt.screen[CRT_ADDR_POS (&e)], + &a->crt.screen[CRT_ADDR_POS (&s)], + sizeof (CRT_CA) * a->crt.size.x); + } - /* scroll lines up */ - for (s.y++; s.y < guess_scroll; s.y++, e.y++) { - memcpy (&a->crt.screen[CRT_ADDR_POS (&e)], - &a->crt.screen[CRT_ADDR_POS (&s)], - sizeof (CRT_CA) * a->crt.size.x); + /* erase new line */ + s.y = e.y; + e.x = CRT_COLS - 1; + crt_erase (&a->crt, s, e, 1, CRT_COLOR_NORMAL); } - /* erase new line */ - s.y = e.y; - e.x = CRT_COLS - 1; - crt_erase (&a->crt, s, e, 1, CRT_COLOR_NORMAL); } - - } /* reset margins */ if (a->terminal->xmit (a->terminal, "\033[r", 3) != 3) err++; @@ -641,49 +709,50 @@ static int ansi_draw (ANSI * a, CRT * c) { CRT_Pos p; - int o; - int hidden_cursor = 0; int err = 0; err += ansi_resize_check (a, &c->size); - for (p.y = 0; p.y < a->crt.size.y; ++p.y) { - if (p.y >= a->size.y) - continue; + for (p.y = 0; p.y < a->crt.size.y; ++p.y) + { + if (p.y >= a->size.y) + continue; - err += ansi_draw_line (a, &c->screen[CRT_ADDR (p.y, 0)], p.y); + err += ansi_draw_line (a, &c->screen[CRT_ADDR (p.y, 0)], p.y); - } + } - if ((c->size.x > a->size.x) || (c->size.y > a->size.y)) { - char msg[1024]; // = "Window is too small"; - int i; - p.x = 0; - p.y = 0; + if ((c->size.x > a->size.x) || (c->size.y > a->size.y)) + { + char msg[1024]; // = "Window is too small"; + int i; + p.x = 0; + p.y = 0; - i = - sprintf (msg, "Window too small (%dx%d need %dx%d)", a->size.x, - a->size.y, c->size.x, c->size.y); + i = + sprintf (msg, "Window too small (%dx%d need %dx%d)", a->size.x, + a->size.y, c->size.x, c->size.y); - err += ansi_showhide_cursor (a, 1); - err += ansi_set_attr (a, CRT_ATTR_REVERSE); - err += - ansi_set_color (a, CRT_MAKE_COLOR (CRT_COLOR_WHITE, CRT_COLOR_RED)); - err += ansi_move (a, p); + err += ansi_showhide_cursor (a, 1); + err += ansi_set_attr (a, CRT_ATTR_REVERSE); + err += + ansi_set_color (a, CRT_MAKE_COLOR (CRT_COLOR_WHITE, CRT_COLOR_RED)); + err += ansi_move (a, p); - if (a->terminal->xmit (a->terminal, msg, i) != i) - err++; + if (a->terminal->xmit (a->terminal, msg, i) != i) + err++; - a->pos.x = ANSI_INVAL; - } + a->pos.x = ANSI_INVAL; + } - if ((c->pos.x >= a->size.x) || (c->pos.y >= a->size.y)) { - err += ansi_showhide_cursor (a, 1); - return err; - } + if ((c->pos.x >= a->size.x) || (c->pos.y >= a->size.y)) + { + err += ansi_showhide_cursor (a, 1); + return err; + } a->crt.pos = c->pos; err += ansi_move (a, a->crt.pos); @@ -719,17 +788,25 @@ ansi_key (ANSI * a, Context * c, int key) cmd_show_status (c->d, c); - if (c->d->active) { - if (key == CMD_CANCEL_KEY) { - return cmd_deactivate (c->d, c); - } else if (key == CMD_KEY) { - cmd_deactivate (c->d, c); - } else { - return cmd_key (c->d, c, a, key); + if (c->d->active) + { + if (key == CMD_CANCEL_KEY) + { + return cmd_deactivate (c->d, c); + } + else if (key == CMD_KEY) + { + cmd_deactivate (c->d, c); + } + else + { + return cmd_key (c->d, c, a, key); + } + } + else if (key == CMD_KEY) + { + return cmd_activate (c->d, c); } - } else if (key == CMD_KEY) { - return cmd_activate (c->d, c); - } return c->k->key (c->k, c, key); } @@ -741,9 +818,10 @@ ansi_flush_escape (ANSI * a, Context * c) ANSI_Parser *p = &a->parser; int i; - for (i = 0; i < p->escape_ptr; ++i) { - ansi_key (a, c, p->escape_buf[i]); - } + for (i = 0; i < p->escape_ptr; ++i) + { + ansi_key (a, c, p->escape_buf[i]); + } p->escape_ptr = 0; p->in_escape = 0; @@ -753,19 +831,25 @@ static void ansi_parse_deckey (ANSI * a, Context * c) { ANSI_Parser *p = &a->parser; - if ((p->escape_buf[1] != '[') && (p->escape_buf[1] != 'O')) { - ansi_flush_escape (a, c); - return; - } + if ((p->escape_buf[1] != '[') && (p->escape_buf[1] != 'O')) + { + ansi_flush_escape (a, c); + return; + } - if ((p->escape_buf[2] >= 'A') || (p->escape_buf[2] <= 'Z')) { - ansi_key (a, c, KEY_UP + (p->escape_buf[2] - 'A')); - } else if ((p->escape_buf[2] >= 'a') || (p->escape_buf[2] <= 'z')) { - ansi_key (a, c, KEY_154 + (p->escape_buf[2] - 'a')); - } else { - ansi_flush_escape (a, c); - return; - } + if ((p->escape_buf[2] >= 'A') || (p->escape_buf[2] <= 'Z')) + { + ansi_key (a, c, KEY_UP + (p->escape_buf[2] - 'A')); + } + else if ((p->escape_buf[2] >= 'a') || (p->escape_buf[2] <= 'z')) + { + ansi_key (a, c, KEY_154 + (p->escape_buf[2] - 'a')); + } + else + { + ansi_flush_escape (a, c); + return; + } p->in_escape = 0; p->escape_ptr = 0; } @@ -778,17 +862,19 @@ ansi_parse_ansikey (ANSI * a, Context * c) char *end; int k; - if ((p->escape_buf[1] != '[') || (p->escape_buf[l] != '~')) { - ansi_flush_escape (a, c); - return; - } + if ((p->escape_buf[1] != '[') || (p->escape_buf[l] != '~')) + { + ansi_flush_escape (a, c); + return; + } k = strtol (&p->escape_buf[2], &end, 10); - if (end != &p->escape_buf[l]) { - ansi_flush_escape (a, c); - return; - } + if (end != &p->escape_buf[l]) + { + ansi_flush_escape (a, c); + return; + } ansi_key (a, c, KEY_180 + k); @@ -802,42 +888,45 @@ static void ansi_parse_escape (ANSI * a, Context * c) { ANSI_Parser *p = &a->parser; - switch (p->escape_ptr) { - case 0: - case 1: - return; - case 2: - switch (p->escape_buf[1]) { - case '[': - case 'O': + switch (p->escape_ptr) + { + case 0: + case 1: + return; + case 2: + switch (p->escape_buf[1]) + { + case '[': + case 'O': + break; + default: + ansi_flush_escape (a, c); + } break; - default: - ansi_flush_escape (a, c); - } - break; - case 3: - switch (p->escape_buf[1]) { - case 'O': - ansi_parse_deckey (a, c); + case 3: + switch (p->escape_buf[1]) + { + case 'O': + ansi_parse_deckey (a, c); + break; + case '[': + if ((p->escape_buf[2] >= 'A') && (p->escape_buf[2] <= 'Z')) + ansi_parse_deckey (a, c); + break; + default: + ansi_flush_escape (a, c); + } break; - case '[': - if ((p->escape_buf[2] >= 'A') && (p->escape_buf[2] <= 'Z')) - ansi_parse_deckey (a, c); + case 4: + case 5: + case 6: + case 7: + if (p->escape_buf[p->escape_ptr - 1] == '~') + ansi_parse_ansikey (a, c); break; default: ansi_flush_escape (a, c); } - break; - case 4: - case 5: - case 6: - case 7: - if (p->escape_buf[p->escape_ptr - 1] == '~') - ansi_parse_ansikey (a, c); - break; - default: - ansi_flush_escape (a, c); - } } @@ -874,21 +963,25 @@ ansi_parse_char (ANSI * a, Context * c, int ch) /* See if it's time to flush the escape */ ansi_check_escape (a, c); - if (ch == 033) { - if (p->in_escape) - ansi_flush_escape (a, c); + if (ch == 033) + { + if (p->in_escape) + ansi_flush_escape (a, c); + + p->in_escape++; + p->escape_ptr = 0; + gettimeofday (&p->last_escape, NULL); + } - p->in_escape++; - p->escape_ptr = 0; - gettimeofday (&p->last_escape, NULL); - } - - if (p->in_escape) { - p->escape_buf[p->escape_ptr++] = ch; - ansi_parse_escape (a, c); - } else { - ansi_key (a, c, ch); - } + if (p->in_escape) + { + p->escape_buf[p->escape_ptr++] = ch; + ansi_parse_escape (a, c); + } + else + { + ansi_key (a, c, ch); + } } -- cgit v1.2.3