aboutsummaryrefslogtreecommitdiffstats
path: root/src/libsympathy.c
diff options
context:
space:
mode:
authorjames <>2008-02-04 05:45:55 +0000
committerjames <>2008-02-04 05:45:55 +0000
commit8865ddf602b32113af2899c5ef1046c51aeb972c (patch)
tree3b90eae60b7fa863499d8a3ec7befd94e246ffcb /src/libsympathy.c
parentc4b7eff58a98590defd94bdbd39a7798521b55a1 (diff)
downloadsympathy-8865ddf602b32113af2899c5ef1046c51aeb972c.tar.gz
sympathy-8865ddf602b32113af2899c5ef1046c51aeb972c.tar.bz2
sympathy-8865ddf602b32113af2899c5ef1046c51aeb972c.zip
::
Diffstat (limited to 'src/libsympathy.c')
-rw-r--r--src/libsympathy.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/libsympathy.c b/src/libsympathy.c
index d43bbc5..013afc7 100644
--- a/src/libsympathy.c
+++ b/src/libsympathy.c
@@ -11,6 +11,9 @@ static char rcsid[] =
/*
* $Log$
+ * Revision 1.3 2008/02/04 05:45:55 james
+ * ::
+ *
* Revision 1.2 2008/02/04 02:05:06 james
* *** empty log message ***
*
@@ -21,3 +24,67 @@ static char rcsid[] =
*/
#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))
+ {
+ read (0, &c, 1);
+ if (c==3) {
+ tcsetattr(0,TCSANOW,&old);
+ exit(1);
+ }
+
+ write (fd, &c, 1);
+ }
+ if (FD_ISSET (fd, &rfd))
+ {
+ read (fd, &c, 1);
+ //write (1, &c, 1);
+ vt102_parse_char (&v, c);
+ ansi_draw (&a, &v.crt);
+ }
+ }
+}