X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/3900c2d642c2960fdac52a9afea854a375441fcc..d947d2b023654d201c1239adc3aee1411523d63b:/unix/uxputty.c diff --git a/unix/uxputty.c b/unix/uxputty.c index a205f276..f42c428d 100644 --- a/unix/uxputty.c +++ b/unix/uxputty.c @@ -7,20 +7,16 @@ #include #include #include +#include #include "putty.h" #include "storage.h" /* - * TODO: - * - * - Better control of the individual config box features. - * + SSH packet logging shouldn't be mentioned in pterm, and in - * fact not PuTTYtel either. - * + Keepalives, and the Connection panel in general, shouldn't - * crop up in pterm. (And perhaps also not mid-session in - * rlogin and raw?) + * Stubs to avoid uxpty.c needing to be linked in. */ +const int use_pty_argv = FALSE; +char **pty_argv; /* never used */ /* * Clean up and exit. @@ -37,27 +33,21 @@ void cleanup_exit(int code) Backend *select_backend(Config *cfg) { - int i; - Backend *back = NULL; - for (i = 0; backends[i].backend != NULL; i++) - if (backends[i].protocol == cfg->protocol) { - back = backends[i].backend; - break; - } + Backend *back = backend_from_proto(cfg->protocol); assert(back != NULL); return back; } int cfgbox(Config *cfg) { - return do_config_box("PuTTY Configuration", cfg, 0); + return do_config_box("PuTTY Configuration", cfg, 0, 0); } static int got_host = 0; const int use_event_log = 1, new_session = 1, saved_sessions = 1; -int process_nonoption_arg(char *arg, Config *cfg) +int process_nonoption_arg(char *arg, Config *cfg, int *allow_launch) { char *p, *q = arg; @@ -108,6 +98,8 @@ int process_nonoption_arg(char *arg, Config *cfg) cfg->host[sizeof(cfg->host) - 1] = '\0'; got_host = 1; } + if (got_host) + *allow_launch = TRUE; return 1; } @@ -116,6 +108,21 @@ char *make_default_wintitle(char *hostname) return dupcat(hostname, " - PuTTY", NULL); } +/* + * X11-forwarding-related things suitable for Gtk app. + */ + +const char platform_x11_best_transport[] = "unix"; + +char *platform_get_x_display(void) { + const char *display; + /* Try to take account of --display and what have you. */ + if (!(display = gdk_get_display())) + /* fall back to traditional method */ + display = getenv("DISPLAY"); + return dupstr(display); +} + int main(int argc, char **argv) { extern int pt_main(int argc, char **argv); @@ -124,13 +131,10 @@ int main(int argc, char **argv) default_protocol = be_default_protocol; /* Find the appropriate default port. */ { - int i; + Backend *b = backend_from_proto(default_protocol); default_port = 0; /* illegal */ - for (i = 0; backends[i].backend != NULL; i++) - if (backends[i].protocol == default_protocol) { - default_port = backends[i].backend->default_port; - break; - } + if (b) + default_port = b->default_port; } return pt_main(argc, argv); }