chiark / gitweb /
@@
[sympathy.git] / test / test.c
1 /*
2  * test.c:
3  *
4  * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
5  * All rights reserved.
6  *
7  */
8
9 static char rcsid[] =
10   "$Id$";
11
12 /*
13  * $Log$
14  * Revision 1.6  2008/02/15 23:52:12  james
15  * *** empty log message ***
16  *
17  * Revision 1.5  2008/02/14 10:34:30  james
18  * *** empty log message ***
19  *
20  * Revision 1.7  2008/02/14 02:46:44  james
21  * *** empty log message ***
22  *
23  * Revision 1.6  2008/02/14 00:57:58  james
24  * *** empty log message ***
25  *
26  * Revision 1.5  2008/02/13 18:05:06  james
27  * *** empty log message ***
28  *
29  * Revision 1.4  2008/02/13 17:21:55  james
30  * *** empty log message ***
31  *
32  * Revision 1.3  2008/02/08 15:06:52  james
33  * *** empty log message ***
34  *
35  * Revision 1.2  2008/02/07 15:42:49  james
36  * *** empty log message ***
37  *
38  * Revision 1.1  2008/02/05 14:25:49  james
39  * *** empty log message ***
40  *
41  */
42
43 #include <sympathy.h>
44
45
46 int
47 main (int argc, char *argv[])
48 {
49   fd_set rfds, wfds;
50   ANSI a = { 0 };
51   Context c;
52
53
54   c.t = ptty_open (NULL, NULL);
55   c.v = vt102_new ();
56   c.h = history_new (200);
57   c.l = file_log_new ("log");
58   c.k = keydis_vt102_new ();
59
60   terminal_register_handlers ();
61   a.terminal = terminal_open (0, 1);
62
63   ansi_reset (&a, NULL);
64
65   for (;;)
66     {
67       struct timeval tv = { 10, 0 };
68
69       FD_ZERO (&rfds);
70       FD_ZERO (&wfds);
71
72       tty_pre_select (c.t, &rfds, &wfds);
73       tty_pre_select (a.terminal, &rfds, &wfds);
74
75
76       select (FD_SETSIZE, &rfds, &wfds, NULL, &tv);
77
78       if (FD_ISSET (c.t->rfd, &rfds))
79         {
80           if (vt102_dispatch(&c)) break;
81         }
82
83       ansi_dispatch (&a, &c);
84       ansi_update (&a, &c);
85
86
87     }
88
89   ansi_terminal_reset (&a);
90   terminal_atexit ();
91   printf ("QUAT\n");
92 }