/*
* $Log$
+ * Revision 1.4 2008/02/04 20:23:55 james
+ * *** empty log message ***
+ *
+ * Revision 1.3 2008/02/04 05:45:55 james
+ * ::
+ *
* Revision 1.2 2008/02/04 02:05:06 james
* *** empty log message ***
*
*/
#include "project.h"
+
+struct termios old = { 0 };
+
+static void
+foo (int not)
+{
+ tcsetattr (0, TCSANOW, &old);
+ exit (1);
+}
+
+
+void
+testy (void)
+{
+ struct termios raw = { 0 };
+ VT102 v = { 0 };
+ ANSI a = { 0 };
+ fd_set rfd;
+ int fd;
+ char c;
+
+
+ signal (SIGINT, foo);
+
+ tcgetattr (0, &old);
+ tcgetattr (0, &raw);
+ cfmakeraw (&raw);
+ tcsetattr (0, TCSANOW, &raw);
+
+ a.fd = 1;
+
+ vt102_reset (&v);
+ ansi_reset (&a);
+
+
+ fd = open_fd_to_bash ();
+
+ FD_ZERO (&rfd);
+
+
+ for (;;)
+ {
+ FD_SET (fd, &rfd);
+ FD_SET (0, &rfd);
+ if (select (fd + 1, &rfd, NULL, NULL, NULL) <= 0)
+ continue;
+ if (FD_ISSET (0, &rfd))
+ {
+ if ((read (0, &c, 1) <= 0) || (c == 3))
+ break;
+
+ write (fd, &c, 1);
+ }
+ if (FD_ISSET (fd, &rfd))
+ {
+ if ((read (fd, &c, 1) <= 0))
+ break;
+ //write (1, &c, 1);
+ vt102_parse_char (&v, c);
+ ansi_draw (&a, &v.crt);
+ }
+ }
+ tcsetattr (0, TCSANOW, &old);
+ printf ("QUAT\n");
+}