/*
* $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 ***
*
#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
{
struct termios raw = { 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);
- }
+ ansi_reset (&a);
- tcgetattr (0, &old);
- tcgetattr (0, &raw);
- cfmakeraw (&raw);
- tcsetattr (0, TCSANOW, &raw);
+ c.t = tty_new_test ();
+ c.v = vt102_new ();
- a.fd = 0;
- ansi_reset (&a);
+ a.terminal=terminal_open(0,1);
- t=tty_new_test();
- v=vt102_new(t);
-
FD_ZERO (&rfd);
for (;;)
{
{
}
#endif
- if (ansi_dispatch(&a,v))
- break;
- if (FD_ISSET (t->fd, &rfd)) {
- if (vt102_dispatch (v)) break;
- }
+ 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 (t->fd, &rfd))
+ {
+ if (vt102_dispatch_one (v, t, h))
+ break;
+ }
if (had_winch)
{
ansi_reset (&a);
ansi_draw (&a, &v->crt);
}
- ansi_draw (&a, &v->crt);
+ ansi_draw (&a, &v->crt);
}
tcsetattr (0, TCSANOW, &old);
printf ("QUAT\n");