diff options
-rw-r--r-- | src/vt102.c | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/src/vt102.c b/src/vt102.c index 301e224..882574a 100644 --- a/src/vt102.c +++ b/src/vt102.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.16 2008/02/07 01:57:46 james + * *** empty log message *** + * * Revision 1.15 2008/02/07 00:43:27 james * *** empty log message *** * @@ -150,11 +153,6 @@ ESC)0 CTRL-O -ESC7 -ESC8 -ESCH -ESCM -ESC> */ @@ -178,8 +176,6 @@ csi_starter (int c) switch (c) { case '[': - case '(': - case ')': return 1; } return 0; @@ -478,9 +474,9 @@ vt102_change_mode (VT102 * v, int private, char *ns, int set) case VT102_PRIVATE_MODE_CURSOR_MODE: if (v->application_keypad_mode) v->private_modes[m] = 0; -#if 0 - fprintf (stderr, "APPLICATION CURSOR MODE %d\n", - v->private_modes[m]); +#if 1 + fprintf (stderr, "APPLICATION CURSOR MODE %d wanted %d\n", + v->private_modes[m],set); #endif break; case VT102_PRIVATE_MODE_ORIGIN_MODE: @@ -658,6 +654,11 @@ vt102_restore_state (VT102 * v) v->pending_wrap = 0; } +void vt102_scs(VT102 *c,int g,int s) +{ +/*Ignoring charsets*/ +} + void vt102_parse_esc (VT102 * v, int c) { @@ -948,12 +949,20 @@ vt102_parse_char (VT102 * v, int c) p->in_csi++; p->in_escape = 0; } + else if (scs_starter(c)) { + p->in_scs=c; + p->in_escape = 0; + } else { p->in_escape = 0; vt102_parse_esc (v, c); } } + else if (p->in_scs) { + vt102_scs(v,p->in_scs,c); + p->in_scs=0; + } else { @@ -987,7 +996,13 @@ vt102_parse_char (VT102 * v, int c) vt102_cursor_carriage_return (v); break; /*SO*/ case 14: + /*select G1*/ + /*Ignoring charsets*/ + break; /*SI*/ case 15: + /*select G0*/ + /*Ignoring charsets*/ + break; /*DLE*/ case 16: /*DC1 */ case 17: /*DC2 */ case 18: @@ -1047,6 +1062,7 @@ vt102_parser_reset (VT102_parser * p) p->in_csi = 0; p->in_escape = 0; p->csi_ptr = 0; + p->in_scs=0; } |