#include <stdlib.h>
#include <assert.h>
#include <unistd.h>
+#include <gdk/gdk.h>
#include "putty.h"
#include "storage.h"
/*
- * TODO:
- *
- * - Go through all the config options and ensure they can all be
- * configured and reconfigured properly.
- * + icon title appears to be a non-option on Unix.
- * + Why the hell did I faff about disabling two of the vtmode
- * options? The rest aren't used either in pterm! Work out
- * whether they should be, and how they can be.
- * + Refresh in the codepage combo is badly broken.
- * + `Don't translate line drawing chars' ?? What is this crap?
- * It does nothing at all, and where's the option to paste as
- * lqqqk? What was I smoking?
- *
- * - 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.
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);
+ char *title = dupcat(appname, " Configuration", NULL);
+ int ret = do_config_box(title, cfg, 0, 0);
+ sfree(title);
+ return ret;
}
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;
cfg->host[sizeof(cfg->host) - 1] = '\0';
got_host = 1;
}
+ if (got_host)
+ *allow_launch = TRUE;
return 1;
}
char *make_default_wintitle(char *hostname)
{
- return dupcat(hostname, " - PuTTY", NULL);
+ return dupcat(hostname, " - ", appname, NULL);
+}
+
+/*
+ * X11-forwarding-related things suitable for Gtk app.
+ */
+
+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)
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);
}