* Trim a colon suffix off the hostname if it's there.
*/
cfg.host[strcspn(cfg.host, ":")] = '\0';
+
+ /*
+ * Remove any remaining whitespace from the hostname.
+ */
+ {
+ int p1 = 0, p2 = 0;
+ while (cfg.host[p2] != '\0') {
+ if (cfg.host[p2] != ' ' && cfg.host[p2] != '\t') {
+ cfg.host[p1] = cfg.host[p2];
+ p1++;
+ }
+ p2++;
+ }
+ cfg.host[p1] = '\0';
+ }
}
/*
colours[(ATTR_DEFBG>>ATTR_BGSHIFT)*2]);
oldpen = SelectObject(hdc, edge);
+ /*
+ * Jordan Russell reports that this apparently
+ * ineffectual IntersectClipRect() call masks a
+ * Windows NT/2K bug causing strange display
+ * problems when the PuTTY window is taller than
+ * the primary monitor. It seems harmless enough...
+ */
+ IntersectClipRect(hdc,
+ p.rcPaint.left, p.rcPaint.top,
+ p.rcPaint.right, p.rcPaint.bottom);
+
ExcludeClipRect(hdc,
offset_width, offset_height,
offset_width+font_width*cols,
*p++ = 0;
return -2;
}
+ if (wParam == VK_BACK && shift_state == 1) { /* Shift Backspace */
+ /* We do the opposite of what is configured */
+ *p++ = (cfg.bksp_is_delete ? 0x08 : 0x7F);
+ *p++ = 0;
+ return -2;
+ }
if (wParam == VK_TAB && shift_state == 1) { /* Shift tab */
*p++ = 0x1B;
*p++ = '[';
return -1;
}
+void request_paste(void)
+{
+ /*
+ * In Windows, pasting is synchronous: we can read the
+ * clipboard with no difficulty, so request_paste() can just go
+ * ahead and paste.
+ */
+ term_do_paste();
+}
+
void set_title(char *title)
{
sfree(window_name);
}
/*
+ * Print a modal (Really Bad) message box and perform a fatal exit.
+ */
+void modalfatalbox(char *fmt, ...)
+{
+ va_list ap;
+ char stuff[200];
+
+ va_start(ap, fmt);
+ vsprintf(stuff, fmt, ap);
+ va_end(ap);
+ MessageBox(hwnd, stuff, "PuTTY Fatal Error",
+ MB_SYSTEMMODAL | MB_ICONERROR | MB_OK);
+ cleanup_exit(1);
+}
+
+/*
* Manage window caption / taskbar flashing, if enabled.
* 0 = stop, 1 = maintain, 2 = start
*/