Diff

Differences From Artifact [b01b11c495]:

To Artifact [06d362c650]:


1899
1900
1901
1902
1903
1904
1905
1906


1907
1908
1909
1910
1911
1912
1913
1899
1900
1901
1902
1903
1904
1905

1906
1907
1908
1909
1910
1911
1912
1913
1914







-
+
+







	    }
	    else if (compose_state==1 && wParam != VK_CONTROL)
		compose_state = 0;
	} else
	    compose_state = 0;

	/* Nastyness with NUMLock - Shift-NUMLock is left alone though */
	if ( (cfg.funky_type == 3 || (cfg.funky_type <= 1 && app_keypad_keys))
	if ( (cfg.funky_type == 3 ||
              (cfg.funky_type <= 1 && app_keypad_keys && !cfg.no_applic))
	      && wParam==VK_NUMLOCK && !(keystate[VK_SHIFT]&0x80)) {

	    wParam = VK_EXECUTE;

	    /* UnToggle NUMLock */
            if ((HIWORD(lParam)&(KF_UP|KF_REPEAT))==0)
	        keystate[VK_NUMLOCK] ^= 1;
1944
1945
1946
1947
1948
1949
1950
1951

1952
1953
1954
1955
1956
1957
1958
1945
1946
1947
1948
1949
1950
1951

1952
1953
1954
1955
1956
1957
1958
1959







-
+








    /* Make sure we're not pasting */
    if (key_down) term_nopaste();

    if (compose_state>1 && left_alt) compose_state = 0;

    /* Sanitize the number pad if not using a PC NumPad */
    if( left_alt || (app_keypad_keys && cfg.funky_type != 2)
    if( left_alt || (app_keypad_keys && !cfg.no_applic && cfg.funky_type != 2)
	|| cfg.funky_type == 3 || cfg.nethack_keypad || compose_state )
    {
	if ((HIWORD(lParam)&KF_EXTENDED) == 0)
	{
	    int nParam = 0;
	    switch(wParam)
	    {
2026
2027
2028
2029
2030
2031
2032
2033


2034
2035
2036
2037
2038
2039

2040
2041
2042
2043
2044
2045
2046
2027
2028
2029
2030
2031
2032
2033

2034
2035
2036
2037
2038
2039
2040

2041
2042
2043
2044
2045
2046
2047
2048







-
+
+





-
+







	}

	/* Application Keypad */
	if (!left_alt) {
	   int xkey = 0;

	   if ( cfg.funky_type == 3 ||
	      ( cfg.funky_type <= 1 && app_keypad_keys)) switch(wParam) {
	      ( cfg.funky_type <= 1 &&
               app_keypad_keys && !cfg.no_applic)) switch(wParam) {
	       case VK_EXECUTE: xkey = 'P'; break;
	       case VK_DIVIDE:  xkey = 'Q'; break;
	       case VK_MULTIPLY:xkey = 'R'; break;
	       case VK_SUBTRACT:xkey = 'S'; break;
	   }
	   if(app_keypad_keys) switch(wParam) {
	   if(app_keypad_keys && !cfg.no_applic) switch(wParam) {
	       case VK_NUMPAD0: xkey = 'p'; break;
	       case VK_NUMPAD1: xkey = 'q'; break;
	       case VK_NUMPAD2: xkey = 'r'; break;
	       case VK_NUMPAD3: xkey = 's'; break;
	       case VK_NUMPAD4: xkey = 't'; break;
	       case VK_NUMPAD5: xkey = 'u'; break;
	       case VK_NUMPAD6: xkey = 'v'; break;
2194
2195
2196
2197
2198
2199
2200
2201

2202
2203
2204
2205
2206
2207
2208
2196
2197
2198
2199
2200
2201
2202

2203
2204
2205
2206
2207
2208
2209
2210







-
+







	        case VK_LEFT: 	xkey = 'D'; break;
	        case VK_CLEAR: 	xkey = 'G'; break;
	    }
	    if (xkey)
	    {
		if (vt52_mode)
		    p += sprintf((char *)p, "\x1B%c", xkey);
		else if (app_cursor_keys)
		else if (app_cursor_keys && !cfg.no_applic)
		    p += sprintf((char *)p, "\x1BO%c", xkey);
		else
		    p += sprintf((char *)p, "\x1B[%c", xkey);
		return p - output;
	    }
	}