chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / vt102.c
index 2cae51d43cd3d5c70d9106dfe6a47935bc84efe0..f3101bb6ec7a48e666cfbf10e4af1bc74e02b0a2 100644 (file)
@@ -10,6 +10,12 @@ static char rcsid[] = "$Id$";
 
 /*
  * $Log$
+ * Revision 1.23  2008/02/07 13:26:35  james
+ * *** empty log message ***
+ *
+ * Revision 1.22  2008/02/07 13:22:51  james
+ * *** empty log message ***
+ *
  * Revision 1.21  2008/02/07 12:21:16  james
  * *** empty log message ***
  *
@@ -504,7 +510,7 @@ vt102_change_mode (VT102 * v, int private, char *ns, int set)
             v->private_modes[m] = 0;
 #if 0
           fprintf (stderr, "APPLICATION CURSOR MODE %d wanted %d\n",
-                   v->private_modes[m],set);
+                   v->private_modes[m], set);
 #endif
           break;
         case VT102_PRIVATE_MODE_ORIGIN_MODE:
@@ -589,7 +595,7 @@ vt102_change_attr (VT102 * v, char *na)
     {
     case 0:
       v->attr = CRT_ATTR_NORMAL;
-      v->color= CRT_COLOR_NORMAL;
+      v->color = CRT_COLOR_NORMAL;
       break;
     case 1:
       v->attr |= CRT_ATTR_BOLD;
@@ -624,9 +630,9 @@ vt102_change_attr (VT102 * v, char *na)
     case 35:
     case 36:
     case 37:
-       v->color &= ~CRT_COLOR_FG_MASK;
-       v->color |= ((a-30) << CRT_COLOR_FG_SHIFT) & CRT_COLOR_FG_MASK;
-       break;
+      v->color &= ~CRT_COLOR_FG_MASK;
+      v->color |= ((a - 30) << CRT_COLOR_FG_SHIFT) & CRT_COLOR_FG_MASK;
+      break;
     case 90:
     case 91:
     case 92:
@@ -635,14 +641,18 @@ vt102_change_attr (VT102 * v, char *na)
     case 95:
     case 96:
     case 97:
-       v->color &= ~CRT_COLOR_FG_MASK;
-       v->color |= (((a-90)|CRT_COLOR_INTENSITY) << CRT_COLOR_FG_SHIFT) & CRT_COLOR_FG_MASK;
-       break;
+      v->color &= ~CRT_COLOR_FG_MASK;
+      v->color |=
+        (((a -
+           90) | CRT_COLOR_INTENSITY) << CRT_COLOR_FG_SHIFT) &
+        CRT_COLOR_FG_MASK;
+      break;
     case 39:
     case 99:
-       v->color &= ~CRT_COLOR_FG_MASK;
-       v->color |= (CRT_FGCOLOR_NORMAL << CRT_COLOR_FG_SHIFT) & CRT_COLOR_FG_MASK;
-       break;
+      v->color &= ~CRT_COLOR_FG_MASK;
+      v->color |=
+        (CRT_FGCOLOR_NORMAL << CRT_COLOR_FG_SHIFT) & CRT_COLOR_FG_MASK;
+      break;
     case 40:
     case 41:
     case 42:
@@ -651,9 +661,9 @@ vt102_change_attr (VT102 * v, char *na)
     case 45:
     case 46:
     case 47:
-       v->color &= ~CRT_COLOR_BG_MASK;
-       v->color |= ((a-40) << CRT_COLOR_BG_SHIFT) & CRT_COLOR_BG_MASK;
-       break;
+      v->color &= ~CRT_COLOR_BG_MASK;
+      v->color |= ((a - 40) << CRT_COLOR_BG_SHIFT) & CRT_COLOR_BG_MASK;
+      break;
     case 100:
     case 101:
     case 102:
@@ -662,15 +672,19 @@ vt102_change_attr (VT102 * v, char *na)
     case 105:
     case 106:
     case 107:
-       v->color &= ~CRT_COLOR_BG_MASK;
-       v->color |= (((a-100)|CRT_COLOR_INTENSITY) << CRT_COLOR_BG_SHIFT) & CRT_COLOR_BG_MASK;
-       break;
+      v->color &= ~CRT_COLOR_BG_MASK;
+      v->color |=
+        (((a -
+           100) | CRT_COLOR_INTENSITY) << CRT_COLOR_BG_SHIFT) &
+        CRT_COLOR_BG_MASK;
+      break;
     case 49:
     case 109:
-       v->color &= ~CRT_COLOR_BG_MASK;
-       v->color |= (CRT_BGCOLOR_NORMAL << CRT_COLOR_BG_SHIFT) & CRT_COLOR_BG_MASK;
-       break;
+      v->color &= ~CRT_COLOR_BG_MASK;
+      v->color |=
+        (CRT_BGCOLOR_NORMAL << CRT_COLOR_BG_SHIFT) & CRT_COLOR_BG_MASK;
+      break;
+
     default:
       ;
 #if 0
@@ -725,7 +739,7 @@ vt102_save_state (VT102 * v)
 {
   v->saved.pos = v->pos;
   v->saved.attr = v->attr;
-  v->saved.color= v->color;
+  v->saved.color = v->color;
   v->saved.origin_mode = v->private_modes[VT102_PRIVATE_MODE_ORIGIN_MODE];
 }
 
@@ -734,13 +748,14 @@ vt102_restore_state (VT102 * v)
 {
   v->pos = v->saved.pos;
   v->attr = v->saved.attr;
-  v->color= v->saved.color;
+  v->color = v->saved.color;
   v->private_modes[VT102_PRIVATE_MODE_ORIGIN_MODE] = v->saved.origin_mode;
   vt102_cursor_normalize (v);
   v->pending_wrap = 0;
 }
 
-void vt102_scs(VT102 *c,int g,int s)
+void
+vt102_scs (VT102 * c, int g, int s)
 {
 /*Ignoring charsets*/
 }
@@ -998,7 +1013,7 @@ vt102_status_line (VT102 * v, char *str)
   while (i--)
     {
       ca->attr = CRT_ATTR_REVERSE;
-      ca->color=CRT_COLOR_NORMAL;
+      ca->color = CRT_COLOR_NORMAL;
       ca->chr = *str;
       if (*str)
         str++;
@@ -1009,7 +1024,7 @@ vt102_status_line (VT102 * v, char *str)
 
 
 void
-vt102_parse_char (VT102 * v, int c,TTY *tty)
+vt102_parse_char (VT102 * v, int c, TTY * tty)
 {
   VT102_parser *p = &v->parser;
 
@@ -1036,20 +1051,22 @@ vt102_parse_char (VT102 * v, int c,TTY *tty)
           p->in_csi++;
           p->in_escape = 0;
         }
-      else if (scs_starter(c)) {
-       p->in_scs=c;
-        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 if (p->in_scs)
+    {
+      vt102_scs (v, p->in_scs, c);
+      p->in_scs = 0;
+    }
   else
     {
 
@@ -1083,13 +1100,13 @@ vt102_parse_char (VT102 * v, int c,TTY *tty)
           vt102_cursor_carriage_return (v);
           break;
          /*SO*/ case 14:
-               /*select G1*/
-               /*Ignoring charsets*/
-               break;
+          /*select G1 */
+          /*Ignoring charsets */
+          break;
          /*SI*/ case 15:
-               /*select G0*/
-               /*Ignoring charsets*/
-               break;
+          /*select G0 */
+          /*Ignoring charsets */
+          break;
          /*DLE*/ case 16:
         /*DC1 */ case 17:
         /*DC2 */ case 18:
@@ -1137,10 +1154,10 @@ vt102_parse_char (VT102 * v, int c,TTY *tty)
   vt102_status_line (v, "VT102 foo bar baz I'm the urban spaceman baby");
 }
 
-vt102_parse (VT102 * v, char *buf, int len,TTY *t)
+vt102_parse (VT102 * v, char *buf, int len, TTY * t)
 {
   while (len--)
-    vt102_parse_char (v, *(buf++),t);
+    vt102_parse_char (v, *(buf++), t);
 }
 
 
@@ -1150,12 +1167,12 @@ vt102_parser_reset (VT102_parser * p)
   p->in_csi = 0;
   p->in_escape = 0;
   p->csi_ptr = 0;
p->in_scs=0;
 p->in_scs = 0;
 }
 
 
 void
-vt102_send (VT102 * v, uint8_t key,TTY *tty)
+vt102_send (VT102 * v, uint8_t key, TTY * tty)
 {
   uint8_t c;
 #if 0
@@ -1326,8 +1343,8 @@ vt102_reset (VT102 * v)
   vt102_parser_reset (p);
   crt_cls (&v->crt);
 
-  v->attr=CRT_ATTR_NORMAL;
-  v->color=CRT_COLOR_NORMAL;
+  v->attr = CRT_ATTR_NORMAL;
+  v->color = CRT_COLOR_NORMAL;
 
   v->application_keypad_mode = 0;
 
@@ -1361,7 +1378,7 @@ vt102_reset (VT102 * v)
 }
 
 int
-vt102_dispatch (VT102 * v,TTY *tty)
+vt102_dispatch (VT102 * v, TTY * tty)
 {
   char buf[1024];
   int red;
@@ -1374,7 +1391,26 @@ vt102_dispatch (VT102 * v,TTY *tty)
     return 0;
 
 
-  vt102_parse (v, buf, red,tty);
+  vt102_parse (v, buf, red, tty);
+
+  return 0;
+}
+
+
+int
+vt102_dispatch_one (VT102 * v, TTY * tty)
+{
+  char buf;
+  int red;
+
+  red = tty_read (tty, &buf, sizeof (buf));
+
+  if (red < 0)
+    return -1;
+  if (!red)
+    return 0;
+
+  vt102_parse_char (v, buf, tty);
 
   return 0;
 }