diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/mainloop.c | 10 | ||||
-rw-r--r-- | apps/sympathy.c | 11 |
2 files changed, 14 insertions, 7 deletions
diff --git a/apps/mainloop.c b/apps/mainloop.c index 3c7d01d..fd8f982 100644 --- a/apps/mainloop.c +++ b/apps/mainloop.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.7 2008/02/20 20:16:07 james + * *** empty log message *** + * * Revision 1.6 2008/02/20 19:44:37 james * @@ * @@ -419,7 +422,7 @@ mainloop (TTY * tty, Socket * server_socket, Socket * client_socket, if (client_socket) socket_pre_select (client_socket, &rfds, &wfds); - if (ansi) + if (ansi && ansi->terminal) tty_pre_select (ansi->terminal, &rfds, &wfds); select (FD_SETSIZE, &rfds, &wfds, NULL, &tv); @@ -470,15 +473,18 @@ mainloop (TTY * tty, Socket * server_socket, Socket * client_socket, /*any data from the server */ if (client_socket) { + int one_shot; if (socket_post_select (client_socket, &rfds, &wfds)) break; while (client_socket->msg) { if (msg_from_server (ansi,client_socket->msg, &c)) - break; + one_shot++; + socket_consume_msg (client_socket); } + if (one_shot) break; } diff --git a/apps/sympathy.c b/apps/sympathy.c index df351f3..4ea7bf0 100644 --- a/apps/sympathy.c +++ b/apps/sympathy.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.11 2008/02/20 20:16:07 james + * *** empty log message *** + * * Revision 1.10 2008/02/20 19:44:37 james * @@ * @@ -468,15 +471,12 @@ main (int argc, char *argv[]) if (oflags['H']) { - fatal_moan ("fix a bug in HTML dispatcher before this works"); + ansi=ansi_new_html(stdout); } else { - ansi = (ANSI *) malloc (sizeof (ANSI)); - memset (ansi, 0, sizeof (ANSI)); - terminal_register_handlers (); - ansi->terminal = terminal_open (0, 1); + ansi=ansi_new_from_terminal(terminal_open(0,1)); ansi->reset(ansi, NULL); } } @@ -499,6 +499,7 @@ main (int argc, char *argv[]) if (client_socket) socket_free (client_socket); + if (!oflags['H']) printf ("you have now exited sympathy\n"); return 0; } |