default_protocol = DEFAULT_PROTOCOL;
default_port = DEFAULT_PORT;
- do_defaults(NULL);
+ do_defaults(NULL, &cfg);
p = cmdline;
while (*p && isspace(*p)) p++;
* An initial @ means to activate a saved session.
*/
if (*p == '@') {
- do_defaults (p+1);
+ do_defaults (p+1, &cfg);
if (!*cfg.host && !do_config()) {
WSACleanup();
return 0;
*/
{
char *error;
- char msg[1024];
+ char msg[1024], *title;
char *realhost;
error = back->init (hwnd, cfg.host, cfg.port, &realhost);
return 0;
}
window_name = icon_name = NULL;
- sprintf(msg, "%s - PuTTY", realhost);
- set_title (msg);
- set_icon (msg);
+ if (*cfg.wintitle) {
+ title = cfg.wintitle;
+ } else {
+ sprintf(msg, "%s - PuTTY", realhost);
+ title = msg;
+ }
+ set_title (title);
+ set_icon (title);
}
session_closed = FALSE;
}
}
-void write_clip (void *data, int len) {
+void write_clip (void *data, int len, int must_deselect) {
HGLOBAL clipdata;
void *lock;
((unsigned char *) lock) [len] = 0;
GlobalUnlock (clipdata);
- SendMessage (hwnd, WM_IGNORE_CLIP, TRUE, 0);
+ if (!must_deselect)
+ SendMessage (hwnd, WM_IGNORE_CLIP, TRUE, 0);
+
if (OpenClipboard (hwnd)) {
EmptyClipboard();
SetClipboardData (CF_TEXT, clipdata);
CloseClipboard();
} else
GlobalFree (clipdata);
- SendMessage (hwnd, WM_IGNORE_CLIP, FALSE, 0);
+
+ if (!must_deselect)
+ SendMessage (hwnd, WM_IGNORE_CLIP, FALSE, 0);
}
void get_clip (void **p, int *len) {