1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-21 01:57:49 +00:00

Replace -1 initializers in unsigned char keyboard map with 255 and correct code that checks > -1 (Ref issue #27)

modified:   src/initkbd.c
	modified:   src/keyevent.c
This commit is contained in:
Nick Briggs 2020-09-04 23:33:41 -07:00
parent 0ad69fc6fe
commit 966adb6004
2 changed files with 120 additions and 157 deletions

View File

@ -165,185 +165,148 @@ u_char *SUNLispKeyMap;
/* keymap for type3 */
u_char SUNLispKeyMap_for3[128] = {
/* 0 */ -1, 61, -1, 91, -1, 97, 99, -1,
/* 8 */ 100, -1, 67, -1, 68, -1, 101, -1,
/* 16*/ 66, 104, 80, 47, -1, 73, 74, 75,
/* 24*/ -1, 92, 63, -1, -1, 33, 32, 17,
/* 32*/ 16, 1, 0, 2, 4, 53, 22, 8,
/* 40*/ 10, 59, 45, 13, -1, 81, 82, 83,
/* 48*/ -1, 14, -1, 62, -1, 34, 19, 18,
/* 56*/ 3, 48, 49, 51, 6, 23, 25, 11,
/* 64*/ 58, 29, 15, -1, 84, 85, 87, -1,
/* 72*/ 111, 89, -1, -1, 36, 21, 20, 5,
/* 80*/ 35, 50, 52, 38, 9, 26, 43, 28,
/* 88*/ 105, 44, -1, 94, 69, 70, -1, 90,
/* 96*/ -1, 46, -1, 41, 40, 24, 37, 7,
/*104*/ 39, 54, 55, 27, 42, 12, 60, 71,
/*112*/ 98, 76, 72, -1, -1, -1, -1, 56,
/*120*/ 31, 57, 93, -1, -1, -1, -1, -1,
/* 0 */ 255, 61, 255, 91, 255, 97, 99, 255,
/* 8 */ 100, 255, 67, 255, 68, 255, 101, 255,
/* 16 */ 66, 104, 80, 47, 255, 73, 74, 75,
/* 24 */ 255, 92, 63, 255, 255, 33, 32, 17,
/* 32 */ 16, 1, 0, 2, 4, 53, 22, 8,
/* 40 */ 10, 59, 45, 13, 255, 81, 82, 83,
/* 48 */ 255, 14, 255, 62, 255, 34, 19, 18,
/* 56 */ 3, 48, 49, 51, 6, 23, 25, 11,
/* 64 */ 58, 29, 15, 255, 84, 85, 87, 255,
/* 72 */ 111, 89, 255, 255, 36, 21, 20, 5,
/* 80 */ 35, 50, 52, 38, 9, 26, 43, 28,
/* 88 */ 105, 44, 255, 94, 69, 70, 255, 90,
/* 96 */ 255, 46, 255, 41, 40, 24, 37, 7,
/* 104 */ 39, 54, 55, 27, 42, 12, 60, 71,
/* 112 */ 98, 76, 72, 255, 255, 255, 255, 56,
/* 120 */ 31, 57, 93, 255, 255, 255, 255, 255
};
/* for type4 */
u_char SUNLispKeyMap_for4[128] = {
/* 0 */ -1, 61, -1, 91, -1, 97, 99, 106,
/* 8 */ 100, 107, 67, 108, 68, 47, 101, 30,
/* 16*/ 66, 104, 80, 31, -1, 75, 110, 74,
/* 24*/ -1, 109, 63, -1, -1, 33, 32, 17,
/* 32*/ 16, 1, 0, 2, 4, 53, 22, 8,
/* 40*/ 10, 59, 45, 15, -1, 64, 65, 95,
/* 48*/ -1, 14, 13, 89, -1, 34, 19, 18,
/* 56*/ 3, 48, 49, 51, 6, 23, 25, 11,
/* 64*/ 58, 29, 13, 93, 81, 82, 83, 96,
/* 72*/ 111, 62, -1, -1, 36, 21, 20, 5,
/* 80*/ 35, 50, 52, 38, 9, 26, 43, 28,
/* 88*/ 105, 44, 76, 84, 85, 87, 98, 90,
/* 96*/ -1, 46, 73, 41, 40, 24, 37, 7,
/*104*/ 39, 54, 55, 27, 42, 12, 60, 71,
/*112*/ 94, 69, 70, -1, -1, -1, 92, 56,
/*120*/ 86, 57, 88, -1, 103, 102, -1, -1,
/* 0 */ 255, 61, 255, 91, 255, 97, 99, 106,
/* 8 */ 100, 107, 67, 108, 68, 47, 101, 30,
/* 16 */ 66, 104, 80, 31, 255, 75, 110, 74,
/* 24 */ 255, 109, 63, 255, 255, 33, 32, 17,
/* 32 */ 16, 1, 0, 2, 4, 53, 22, 8,
/* 40 */ 10, 59, 45, 15, 255, 64, 65, 95,
/* 48 */ 255, 14, 13, 89, 255, 34, 19, 18,
/* 56 */ 3, 48, 49, 51, 6, 23, 25, 11,
/* 64 */ 58, 29, 13, 93, 81, 82, 83, 96,
/* 72 */ 111, 62, 255, 255, 36, 21, 20, 5,
/* 80 */ 35, 50, 52, 38, 9, 26, 43, 28,
/* 88 */ 105, 44, 76, 84, 85, 87, 98, 90,
/* 96 */ 255, 46, 73, 41, 40, 24, 37, 7,
/* 104 */ 39, 54, 55, 27, 42, 12, 60, 71,
/* 112 */ 94, 69, 70, 255, 255, 255, 92, 56,
/* 120 */ 86, 57, 88, 255, 103, 102, 255, 255
};
/* for jle */
u_char SUNLispKeyMap_jle[128] = {
/* 0 */ -1, 61, -1, 91, -1, 97, 99, 106,
/* 8 */ 100, 107, 67, 108, 68, 47, 101, 71,
/* 16*/ 66, 104, 80, 31, -1, 75, 110, 74,
/* 24*/ -1, 109, 63, -1, -1, 33, 32, 17,
/* 32*/ 16, 1, 0, 2, 4, 53, 22, 8,
/* 40*/ 59, 45, 30, 15, -1, 64, 65, 95,
/* 48*/ -1, 14, 13, 89, -1, 34, 19, 18,
/* 56*/ 3, 48, 49, 51, 6, 23, 25, 11,
/* 64*/ 58, 29, 13, 93, 81, 82, 83, 96,
/* 72*/ 111, 62, -1, -1, 36, 21, 20, 5,
/* 80*/ 35, 50, 52, 38, 9, 26, 43, 28,
/* 88*/ 105, 44, 76, 84, 85, 87, 98, 90,
/* 96*/ -1, 46, 73, 41, 40, 24, 37, 7,
/*104*/ 39, 54, 55, 27, 42, 12, 60, 10,
/*112*/ 94, 69, 70, 72, 103, 109, 92, 56,
/*120*/ 86, 57, 88, -1, -1, 102, -1, -1,
/* 0 */ 255, 61, 255, 91, 255, 97, 99, 106,
/* 8 */ 100, 107, 67, 108, 68, 47, 101, 71,
/* 16 */ 66, 104, 80, 31, 255, 75, 110, 74,
/* 24 */ 255, 109, 63, 255, 255, 33, 32, 17,
/* 32 */ 16, 1, 0, 2, 4, 53, 22, 8,
/* 40 */ 59, 45, 30, 15, 255, 64, 65, 95,
/* 48 */ 255, 14, 13, 89, 255, 34, 19, 18,
/* 56 */ 3, 48, 49, 51, 6, 23, 25, 11,
/* 64 */ 58, 29, 13, 93, 81, 82, 83, 96,
/* 72 */ 111, 62, 255, 255, 36, 21, 20, 5,
/* 80 */ 35, 50, 52, 38, 9, 26, 43, 28,
/* 88 */ 105, 44, 76, 84, 85, 87, 98, 90,
/* 96 */ 255, 46, 73, 41, 40, 24, 37, 7,
/* 104 */ 39, 54, 55, 27, 42, 12, 60, 10,
/* 112 */ 94, 69, 70, 72, 103, 109, 92, 56,
/* 120 */ 86, 57, 88, 255, 255, 102, 255, 255
};
/* [40] 10->59 */
/* [41] 59->45 */
/* [42] 45->30 */
/* [111] 71->10 */
/* [115] -1 -> 72 Kakutei */
/* [116] -1 -> 103 Henkan */
/* [117] -1 -> 109 Nihongo On-Off */
/* [40] 10 -> 59 */
/* [41] 59 -> 45 */
/* [42] 45 -> 30 */
/* [111] 71 -> 10 */
/* [115] 255 -> 72 Kakutei */
/* [116] 255 -> 103 Henkan */
/* [117] 255 -> 109 Nihongo On-Off */
/* For IBM Risc System 6000 */
u_char SUNLispKeyMap_RS6000[128] = {
/* 7 */ -1, -1, 45, 32, 17, 16, 1, 0,
/* 15*/ 2, 4, 53, 22, 8, 10, 59, -1,
/* 23*/ 15, 34, 19, 18, 3, 48, 49, 51,
/* 31*/ 6, 23, 25, 11, 58, 29, 105, 56,
/* 39*/ 21, 20, 5, 35, 50, 52, 38, 9,
/* 47*/ 26, 43, 28, -1, 44, 41, -1, 40,
/* 55*/ 24, 37, 7, 39, 54, 55, 27, 42,
/* 63*/ 12, -1, 60, 36, -1, 31, 57, 93,
/* 71*/ -1, 47, -1, -1, -1, -1, -1, -1,
/* 79*/ -1, -1, -1, -1, 89, 46, -1, -1,
/* 87*/ 129, 62, 90, -1, 130, 131, 63, 91,
/* 95*/ -1, -1, 132, 73, 81, 84, 94, -1,
/*103*/ 65, 82, 85, 69, 98, 95, 83, 87,
/*111*/ 70, 13, 96, 102, -1, 128, -1, 33,
/*119*/ -1, 97, 99, 100, 67, 68, 101, 66,
/*127*/ 104, 80, 106, 107, 92, 76, 14, 61,
/*136*/
/* 7 */ 255, 255, 45, 32, 17, 16, 1, 0,
/* 15 */ 2, 4, 53, 22, 8, 10, 59, 255,
/* 23 */ 15, 34, 19, 18, 3, 48, 49, 51,
/* 31 */ 6, 23, 25, 11, 58, 29, 105, 56,
/* 39 */ 21, 20, 5, 35, 50, 52, 38, 9,
/* 47 */ 26, 43, 28, 255, 44, 41, 255, 40,
/* 55 */ 24, 37, 7, 39, 54, 55, 27, 42,
/* 63 */ 12, 255, 60, 36, 255, 31, 57, 93,
/* 71 */ 255, 47, 255, 255, 255, 255, 255, 255,
/* 79 */ 255, 255, 255, 255, 89, 46, 255, 255,
/* 87 */ 129, 62, 90, 255, 130, 131, 63, 91,
/* 95 */ 255, 255, 132, 73, 81, 84, 94, 255,
/* 103 */ 65, 82, 85, 69, 98, 95, 83, 87,
/* 111 */ 70, 13, 96, 102, 255, 128, 255, 33,
/* 119 */ 255, 97, 99, 100, 67, 68, 101, 66,
/* 127 */ 104, 80, 106, 107, 92, 76, 14, 61
};
/* For DECStation 3100 */
u_char SUNLispKeyMap_DEC3100[256] = {
/* 7*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 15*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 23*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 31*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 39*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 47*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 55*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 63*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 71*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/* 79*/ -1, -1, -1, -1, -1,
-1, -1, 97,
/* 87*/ 99, 100, 67, 68, -1,
-1, -1, -1,
/* 95*/ -1, -1, -1, -1, -1,
101, 66, 104,
/*103*/ 80, 106, -1, -1, -1,
-1, -1, -1,
/*111*/ -1, -1, 107, 108, -1,
-1, -1, -1,
/*119*/ -1, -1, -1, -1, -1,
92, 76, -1,
/*127*/ -1, -1, -1, -1, -1,
-1, -1, -1,
/*135*/ -1, -1, -1, 90, 91,
46, 93, 89,
/*143*/ 47, -1, -1, 98, -1,
13, 76, 94,
/*151*/ 69, 70, 84, 85, 87,
102, 81, 82,
/*159*/ 83, -1, -1, -1, -1,
-1, -1, -1,
/*167*/ 129, 132, 131, 130, -1,
-1, -1, 41,
/*175*/ 36, 56, 31, -1, -1,
-1, -1, -1,
/*183*/ -1, -1, -1, -1, -1,
15, 44, 34,
/*191*/ 33, 32, 19, 21, 40,
-1, 17, 18,
/*199*/ 20, 24, 45, -1, 16,
3, 5, 37,
/*207*/ -1, 1, 48, 35, 7,
57, -1, 0,
/*215*/ 49, 50, 39, -1, 2,
51, 52, 54,
/*223*/ -1, 4, 6, 38, 55,
-1, 53, 23,
/*231*/ 9, 27, -1, 22, 25,
26, 42, -1,
/*239*/ 8, 11, -1, 43, 12,
-1, 59, 29,
/*247*/ 105, -1, 10, 58, 28,
-1, -1, -1
/* 7 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 15 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 23 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 31 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 39 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 47 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 55 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 63 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 71 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 79 */ 255, 255, 255, 255, 255, 255, 255, 97,
/* 87 */ 99, 100, 67, 68, 255, 255, 255, 255,
/* 95 */ 255, 255, 255, 255, 255, 101, 66, 104,
/* 103 */ 80, 106, 255, 255, 255, 255, 255, 255,
/* 111 */ 255, 255, 107, 108, 255, 255, 255, 255,
/* 119 */ 255, 255, 255, 255, 255, 92, 76, 255,
/* 127 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 135 */ 255, 255, 255, 90, 91, 46, 93, 89,
/* 143 */ 47, 255, 255, 98, 255, 13, 76, 94,
/* 151 */ 69, 70, 84, 85, 87, 102, 81, 82,
/* 159 */ 83, 255, 255, 255, 255, 255, 255, 255,
/* 167 */ 129, 132, 131, 130, 255, 255, 255, 41,
/* 175 */ 36, 56, 31, 255, 255, 255, 255, 255,
/* 183 */ 255, 255, 255, 255, 255, 15, 44, 34,
/* 191 */ 33, 32, 19, 21, 40, 255, 17, 18,
/* 199 */ 20, 24, 45, 255, 16, 3, 5, 37,
/* 207 */ 255, 1, 48, 35, 7, 57, 255, 0,
/* 215 */ 49, 50, 39, 255, 2, 51, 52, 54,
/* 223 */ 255, 4, 6, 38, 55, 255, 53, 23,
/* 231 */ 9, 27, 255, 22, 25, 26, 42, 255,
/* 239 */ 8, 11, 255, 43, 12, 255, 59, 29,
/* 247 */ 105, 255, 10, 58, 28, 255, 255, 255,
};
u_char SUNLispKeyMap_HP9000[135] = {
/* 7*/ -1, -1, -1, 93, 31, 60, 41, 36,
/* 15*/ -1, -1, -1, -1, -1, -1, -1, -1,
/* 23*/ -1, -1, -1, -1, -1, -1, -1, -1,
/* 31*/ -1, 39, 7, 37, 24, 40, -1, -1,
/* 39*/ -1, -1, -1, -1, -1, -1, -1, -1,
/* 47*/ -1, 52, 50, 35, 5, 20, 21, -1,
/* 55*/ 56, 6, 51, 49, 48, 3, 18, 19,
/* 63*/ 34, 4, 2, 0, 1, 16, 17, 32,
/* 71*/ 45, -1, -1, -1, -1, -1, -1, -1,
/* 79*/ -1, 68, 67, 100, 99, 97, -1, -1,
/* 87*/ -1, 68, 101, 66, 104, 80, 13, -1,
/* 95*/ -1, 53, 22, 8, 10, 59, 15, -1,
/* 103*/ -1, 23, 25, 11, 58, 29, 105, -1,
/* 111*/ -1, 38, 9, 26, 43, 28, 44, -1,
/* 119*/ -1, 55, 27, 42, 12, -1, -1, -1,
/* 127*/ 47, 54, 57, -1, -1, -1, -1, -1};
/* 7 */ 255, 255, 255, 93, 31, 60, 41, 36,
/* 15 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 23 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 31 */ 255, 39, 7, 37, 24, 40, 255, 255,
/* 39 */ 255, 255, 255, 255, 255, 255, 255, 255,
/* 47 */ 255, 52, 50, 35, 5, 20, 21, 255,
/* 55 */ 56, 6, 51, 49, 48, 3, 18, 19,
/* 63 */ 34, 4, 2, 0, 1, 16, 17, 32,
/* 71 */ 45, 255, 255, 255, 255, 255, 255, 255,
/* 79 */ 255, 68, 67, 100, 99, 97, 255, 255,
/* 87 */ 255, 68, 101, 66, 104, 80, 13, 255,
/* 95 */ 255, 53, 22, 8, 10, 59, 15, 255,
/* 103 */ 255, 23, 25, 11, 58, 29, 105, 255,
/* 111 */ 255, 38, 9, 26, 43, 28, 44, 255,
/* 119 */ 255, 55, 27, 42, 12, 255, 255, 255,
/* 127 */ 47, 54, 57, 255, 255, 255, 255, 255,
};
u_char *XGenericKeyMap; /* filled in with malloc if needed */

View File

@ -465,7 +465,7 @@ int kb_event(struct inputevent *event);
break;
default: /* keystroke */
if ((kn = SUNLispKeyMap[((unsigned short)event->ie_code)]) > -1)
if ((kn = SUNLispKeyMap[((unsigned short)event->ie_code)]) < 255)
kb_trans(kn, upflg);
else
printf("kb_event: unknown key number=%d\n", event->ie_code);