chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / libsympathy.c
index 5c24ef284c67dee8761bb48c3be212bbbb0eabcb..7e6d78beedae5d6f8f84f50dc24354500653487c 100644 (file)
@@ -11,6 +11,33 @@ static char rcsid[] =
 
 /*
  * $Log$
+ * Revision 1.15  2008/02/13 01:08:18  james
+ * *** empty log message ***
+ *
+ * Revision 1.14  2008/02/12 22:36:46  james
+ * *** empty log message ***
+ *
+ * Revision 1.13  2008/02/08 15:06:42  james
+ * *** empty log message ***
+ *
+ * Revision 1.12  2008/02/07 13:26:35  james
+ * *** empty log message ***
+ *
+ * Revision 1.11  2008/02/07 13:22:51  james
+ * *** empty log message ***
+ *
+ * Revision 1.10  2008/02/07 11:32:41  james
+ * *** empty log message ***
+ *
+ * Revision 1.9  2008/02/07 11:11:14  staffcvs
+ * *** empty log message ***
+ *
+ * Revision 1.8  2008/02/07 00:43:27  james
+ * *** empty log message ***
+ *
+ * Revision 1.7  2008/02/07 00:39:13  james
+ * *** empty log message ***
+ *
  * Revision 1.6  2008/02/06 20:26:58  james
  * *** empty log message ***
  *
@@ -34,21 +61,6 @@ static char rcsid[] =
 
 #include "project.h"
 
-struct termios old = { 0 };
-static int had_winch = 0;
-
-static void
-quit (int not)
-{
-  tcsetattr (0, TCSANOW, &old);
-  exit (1);
-}
-
-static void
-winch (int not)
-{
-  had_winch++;
-}
 
 
 void
@@ -56,34 +68,29 @@ testy (void)
 {
   struct termios raw = { 0 };
   ANSI a = { 0 };
+  Context c;
+
+#if 0
   fd_set rfd;
   int fd;
   char c;
-  TTY *y;
-  VT102 *v;
 
+  TTY *t;
+  VT102 *v;
+  History *h;
+  int i;
+#endif
 
-  signal (SIGINT, quit);
-  {
-    struct sigaction sa = { 0 };
-
-    sa.sa_handler = winch;
-    sa.sa_flags = SA_RESTART;
-    sigaction (SIGWINCH, &sa, NULL);
-  }
+  
 
+  ansi_reset (&a);
 
-  tcgetattr (0, &old);
-  tcgetattr (0, &raw);
-  cfmakeraw (&raw);
-  tcsetattr (0, TCSANOW, &raw);
 
-  a.fd = 0;
-  ansi_reset (&a);
+  c.t = tty_new_test ();
+  c.v = vt102_new ();
 
+  a.terminal=terminal_open(0,1);
 
-  t=tty_new_test();  
-  v=vt102_new(t);
 
   FD_ZERO (&rfd);
   for (;;)
@@ -92,25 +99,39 @@ testy (void)
 
       FD_SET (t->fd, &rfd);
       FD_SET (a.fd, &rfd);
-      if (select (t->fd + 1, &rfd, NULL, NULL, &tv) < 0)
-        continue;
+      select (t->fd + 1, &rfd, NULL, NULL, &tv);
 
+#if 0
       if (FD_ISSET (a.fd, &rfd))
         {
-       if (ansi_dispatch(&a,v)) break;
         }
+#endif
 
-      if (FD_ISSET (t->fd, &rfd)) {
-          if (vt102_dispatch (v)) break;
-      }
+      switch (ansi_dispatch (&a, v, t))
+        {
+        case -1:
+          break;
+        case 1:
+          ansi_getsize (&a);
+          ansi_reset (&a);
+          ansi_draw (&a, &v->crt);
+          break;
+        }
+
+      if (FD_ISSET (t->fd, &rfd))
+        {
+          if (vt102_dispatch_one (v, t, h))
+            break;
+        }
 
       if (had_winch)
         {
           had_winch = 0;
           ansi_getsize (&a);
           ansi_reset (&a);
-          ansi_draw (&a, &v.crt);
+          ansi_draw (&a, &v->crt);
         }
+      ansi_draw (&a, &v->crt);
     }
   tcsetattr (0, TCSANOW, &old);
   printf ("QUAT\n");