Diff

Differences From Artifact [8997b3f647]:

To Artifact [a1def97297]:


177
178
179
180
181
182
183
184




185
186
187
188
189
190
191
177
178
179
180
181
182
183

184
185
186
187
188
189
190
191
192
193
194







-
+
+
+
+







		WSACleanup();
		return 0;
	    }
	}
    }

    back = (cfg.protocol == PROT_SSH ? &ssh_backend : 
			cfg.protocol == PROT_TELNET ? &telnet_backend : &raw_backend );
	    cfg.protocol == PROT_TELNET ? &telnet_backend :
	    &raw_backend);

    ldisc = (cfg.ldisc_term ? &ldisc_term : &ldisc_simple);

    if (!prev) {
	wndclass.style         = 0;
	wndclass.lpfnWndProc   = WndProc;
	wndclass.cbClsExtra    = 0;
	wndclass.cbWndExtra    = 0;
	wndclass.hInstance     = inst;
1012
1013
1014
1015
1016
1017
1018
1019

1020
1021
1022
1023
1024
1025
1026
1015
1016
1017
1018
1019
1020
1021

1022
1023
1024
1025
1026
1027
1028
1029







-
+







	{
	    unsigned char buf[20];
	    int len;

	    len = TranslateKey (wParam, lParam, buf);
	    if (len == -1)
		return DefWindowProc (hwnd, message, wParam, lParam);
	    back->send (buf, len);
	    ldisc->send (buf, len);
	}
	return 0;
      case WM_KEYUP:
      case WM_SYSKEYUP:
	/*
	 * We handle KEYUP ourselves in order to distinghish left
	 * and right Alt or Control keys, which Windows won't do
1052
1053
1054
1055
1056
1057
1058
1059

1060
1061
1062
1063
1064
1065
1066
1055
1056
1057
1058
1059
1060
1061

1062
1063
1064
1065
1066
1067
1068
1069







-
+







	 * Nevertheless, we are prepared to deal with WM_CHAR
	 * messages, should they crop up. So if someone wants to
	 * post the things to us as part of a macro manoeuvre,
	 * we're ready to cope.
	 */
	{
	    char c = xlat_kbd2tty((unsigned char)wParam);
	    back->send (&c, 1);
	    ldisc->send (&c, 1);
	}
	return 0;
    }

    return DefWindowProc (hwnd, message, wParam, lParam);
}