aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vt102.c36
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;
}