gsize bytes_read;
GError *error = NULL;
+ if(condition == G_IO_HUP)
+ exit(0);
+
g_io_channel_read_chars(source, buffer, sizeof buffer,
&bytes_read, &error);
terminal->master = master;
terminal->channel = g_io_channel_unix_new(master);
fcntl(master, F_SETFL, O_NONBLOCK);
- g_io_add_watch(terminal->channel, G_IO_IN,
- io_handler, terminal);
+ g_io_add_watch(terminal->channel, G_IO_IN, io_handler, terminal);
+ g_io_add_watch(terminal->channel, G_IO_HUP, io_handler, terminal);
return 0;
}