/* * libsympathy.c: * * Copyright (c) 2008 James McKenzie , * All rights reserved. * */ static char rcsid[] = "$Id$"; /* * $Log$ * Revision 1.3 2008/02/04 05:45:55 james * :: * * Revision 1.2 2008/02/04 02:05:06 james * *** empty log message *** * * Revision 1.1 2008/02/03 16:20:24 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)) { 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); } } }