#endif /* VIRTUAL_TERMINAL_SEQUENCES */
};
-static DWORD ccount, acount;
-#ifndef CLR_MAX
-#define CLR_MAX 16
-#endif
-
-int ttycolors[CLR_MAX];
-int ttycolors_inv[CLR_MAX];
+static const char default_name[] = "default";
+const char *const legal_key_handling[] = {
+ "none",
+ "default",
+ "ray",
+ "340",
+};
-#define MAX_OVERRIDES 256
-unsigned char key_overrides[MAX_OVERRIDES];
-static char nullstr[] = "";
-char erase_char, kill_char;
-#define DEFTEXTCOLOR ttycolors[7]
+enum windows_key_handling keyh[] = { no_keyhandling, default_keyhandling, ray_keyhandling,
+ nh340_keyhandling };
int default_processkeystroke(HANDLE, INPUT_RECORD *, boolean *, boolean, int);
int default_kbhit(HANDLE, INPUT_RECORD *);
int, int *, coord *);
struct keyboard_handling_t {
- char *pKeyHandlingName;
+ enum windows_key_handling khid;
int (*pProcessKeystroke)(HANDLE, INPUT_RECORD *, boolean *,
boolean, int);
int (*pNHkbhit)(HANDLE, INPUT_RECORD *);
int (*pCheckInput)(HANDLE, INPUT_RECORD *, DWORD *, boolean,
int, int *, coord *);
} keyboard_handling = {
- "none",
+ no_keyhandling,
default_processkeystroke,
default_kbhit,
default_checkinput
};
+static DWORD ccount, acount;
+#ifndef CLR_MAX
+#define CLR_MAX 16
+#endif
+
+int ttycolors[CLR_MAX];
+int ttycolors_inv[CLR_MAX];
+
+#define MAX_OVERRIDES 256
+unsigned char key_overrides[MAX_OVERRIDES];
+static char nullstr[] = "";
+char erase_char, kill_char;
+#define DEFTEXTCOLOR ttycolors[7]
static INPUT_RECORD bogus_key;
#ifdef VIRTUAL_TERMINAL_SEQUENCES
static struct pad keypad[PADKEYS], numpad[PADKEYS];
static BYTE KeyState[256];
-static const char default_name[] = "default";
-const char *const legal_key_handling[] = {
- "none",
- "default",
- "ray",
- "340",
-};
-enum windows_key_handling keyh[] = { no_keyhandling, default_keyhandling, ray_keyhandling,
- nh340_keyhandling };
void set_altkeyhandling(const char *inName)
{
/*backward compatibility - so people's existing config files
may work as is */
if (!strcmpi(inName, "nhraykey.dll"))
- inName = legal_key_handling[ray_keyhandling];
+ inName = legal_key_handling[ray_keyhandling];
else if (!strcmpi(inName, "nh340key.dll"))
- inName = legal_key_handling[nh340_keyhandling];
+ inName = legal_key_handling[nh340_keyhandling];
else if (!strcmpi(inName, "nhdefkey.dll"))
- inName = legal_key_handling[default_keyhandling];
+ inName = legal_key_handling[default_keyhandling];
for (i = default_keyhandling; i < SIZE(legal_key_handling); i++) {
if (!strcmpi(inName, legal_key_handling[i])) {
iflags.key_handling = keyh[i];
- if (keyboard_handling.pKeyHandlingName) {
- free((genericptr_t) keyboard_handling.pKeyHandlingName);
- keyboard_handling.pKeyHandlingName = (char *) 0;
- }
switch(iflags.key_handling) {
case ray_keyhandling:
- keyboard_handling.pKeyHandlingName = strdup("ray");
+ keyboard_handling.khid = ray_keyhandling;
keyboard_handling.pProcessKeystroke = ray_processkeystroke;
keyboard_handling.pNHkbhit = ray_kbhit;
keyboard_handling.pCheckInput = ray_checkinput;
}
break;
case nh340_keyhandling:
- keyboard_handling.pKeyHandlingName = strdup("340");
+ keyboard_handling.khid = nh340_keyhandling;
keyboard_handling.pProcessKeystroke = nh340_processkeystroke;
keyboard_handling.pNHkbhit = nh340_kbhit;
keyboard_handling.pCheckInput = nh340_checkinput;
break;
case default_keyhandling:
default:
- keyboard_handling.pKeyHandlingName = strdup("default");
+ keyboard_handling.khid = default_keyhandling;
keyboard_handling.pProcessKeystroke
= default_processkeystroke;
keyboard_handling.pNHkbhit = default_kbhit;