X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsympathy.c;h=7e6d78beedae5d6f8f84f50dc24354500653487c;hb=89fa7c69158bf37823875c61345024308b156772;hp=d8eb76fc39962c5f741b5d0d4ffd82e1792a6171;hpb=47c08dfed55445da7ef0e2c15133822e3cad76af;p=sympathy.git diff --git a/src/libsympathy.c b/src/libsympathy.c index d8eb76f..7e6d78b 100644 --- a/src/libsympathy.c +++ b/src/libsympathy.c @@ -11,6 +11,36 @@ 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 *** + * * Revision 1.5 2008/02/06 17:53:28 james * *** empty log message *** * @@ -31,87 +61,77 @@ 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 testy (void) { struct termios raw = { 0 }; - VT102 v = { 0 }; ANSI a = { 0 }; + Context c; + +#if 0 fd_set rfd; int fd; char c; + 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); -} - 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 (); + c.t = tty_new_test (); + c.v = vt102_new (); - FD_ZERO (&rfd); + a.terminal=terminal_open(0,1); + FD_ZERO (&rfd); for (;;) { - struct timeval tv={0,100000}; + struct timeval tv = { 0, 100000 }; - FD_SET (fd, &rfd); - FD_SET (0, &rfd); - if (select (fd + 1, &rfd, NULL, NULL, &tv)<0) continue; + FD_SET (t->fd, &rfd); + FD_SET (a.fd, &rfd); + select (t->fd + 1, &rfd, NULL, NULL, &tv); - if (FD_ISSET (0, &rfd)) +#if 0 + if (FD_ISSET (a.fd, &rfd)) { - if ((read (0, &c, 1) <= 0) || (c == 3)) - break; + } +#endif - write (fd, &c, 1); + 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 (fd, &rfd)) + + if (FD_ISSET (t->fd, &rfd)) { - if ((read (fd, &c, 1) <= 0)) + if (vt102_dispatch_one (v, t, h)) break; - //write (1, &c, 1); - vt102_parse_char (&v, c); - ansi_draw (&a, &v.crt); } - if (had_winch) { - had_winch=0; - ansi_getsize(&a); - ansi_reset(&a); - ansi_draw (&a, &v.crt); - } + + if (had_winch) + { + had_winch = 0; + ansi_getsize (&a); + ansi_reset (&a); + ansi_draw (&a, &v->crt); + } + ansi_draw (&a, &v->crt); } tcsetattr (0, TCSANOW, &old); printf ("QUAT\n");