void connection_fatal(void *frontend, char *p, ...)
{
- Terminal *term = (Terminal *)frontend;
- struct gui_data *inst = (struct gui_data *)term->frontend;
+ struct gui_data *inst = (struct gui_data *)frontend;
va_list ap;
char *msg;
*/
}
-int askappend(void *frontend, Filename filename)
+int from_backend(void *frontend, int is_stderr, const char *data, int len)
{
- /*
- * Logging in an xterm-alike is liable to be something you only
- * do at serious diagnostic need. Hence, I'm going to take the
- * easy option for now and assume we always want to overwrite
- * log files. I can always make it properly configurable later.
- */
- return 2;
+ struct gui_data *inst = (struct gui_data *)frontend;
+ return term_data(inst->term, is_stderr, data, len);
}
void logevent(void *frontend, char *string)
{
- Terminal *term = (Terminal *)frontend;
- struct gui_data *inst = (struct gui_data *)term->frontend;
+ struct gui_data *inst = (struct gui_data *)frontend;
log_eventlog(inst->logctx, string);
*/
void *get_window(void *frontend)
{
- Terminal *term = (Terminal *)frontend;
- struct gui_data *inst = (struct gui_data *)term->frontend;
+ struct gui_data *inst = (struct gui_data *)frontend;
return inst->window;
}
gint delete_window(GtkWidget *widget, GdkEvent *event, gpointer data)
{
- /*
- * We could implement warn-on-close here if we really wanted
- * to.
- */
+ struct gui_data *inst = (struct gui_data *)data;
+ if (!inst->exited && inst->cfg.warn_on_close) {
+ if (!reallyclose(inst))
+ return TRUE;
+ }
return FALSE;
}
long get_windowid(void *frontend)
{
- Terminal *term = (Terminal *)frontend;
- struct gui_data *inst = (struct gui_data *)(term->frontend);
+ struct gui_data *inst = (struct gui_data *)frontend;
return (long)GDK_WINDOW_XWINDOW(inst->area->window);
}
oldcfg.window_border != cfg2.window_border || need_size) {
set_geom_hints(inst);
request_resize(inst, cfg2.width, cfg2.height);
- //term_size(inst->term, cfg2.height, cfg2.width, cfg2.savelines);
- // where TF is our configure event going?!
}
term_invalidate(inst->term);
void update_specials_menu(void *frontend)
{
- Terminal *term = (Terminal *)frontend;
- struct gui_data *inst = (struct gui_data *)term->frontend;
+ struct gui_data *inst = (struct gui_data *)frontend;
const struct telnet_special *specials;
{
char *realhost, *error;
- error = inst->back->init((void *)inst->term, &inst->backhandle,
+ error = inst->back->init((void *)inst, &inst->backhandle,
&inst->cfg, inst->cfg.host, inst->cfg.port,
&realhost, inst->cfg.tcp_nodelay);
}
}
inst->back->provide_logctx(inst->backhandle, inst->logctx);
- update_specials_menu(inst->term);
+ update_specials_menu(inst);
term_provide_resize_fn(inst->term, inst->back->size, inst->backhandle);