From 8865ddf602b32113af2899c5ef1046c51aeb972c Mon Sep 17 00:00:00 2001 From: james <> Date: Mon, 4 Feb 2008 05:45:55 +0000 Subject: :: --- src/libsympathy.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'src/libsympathy.c') 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); + } + } +} -- cgit v1.2.3