Bug `shift-backspace': whichever of ^H and ^? is configured for
[sgt/putty] / window.c
index 9ea6c01..aa6b680 100644 (file)
--- a/window.c
+++ b/window.c
@@ -3404,6 +3404,12 @@ static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam,
            *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++ = '[';
@@ -3817,6 +3823,16 @@ static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam,
     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);
@@ -4202,6 +4218,22 @@ void fatalbox(char *fmt, ...)
 }
 
 /*
+ * 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
  */