|
@@ -250,8 +250,8 @@ SDL_EVDEV_kbd_init(void)
|
|
|
{
|
|
|
SDL_free(kbd->accents);
|
|
|
kbd->accents = &accentmap_default_us_acc;
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
if (ioctl(kbd->console_fd, KDGKBMODE, &kbd->old_kbd_mode) == 0) {
|
|
|
/* Set the keyboard in XLATE mode and load the keymaps */
|
|
|
ioctl(kbd->console_fd, KDSKBMODE, (unsigned long)(K_XLATE));
|
|
@@ -285,7 +285,7 @@ SDL_EVDEV_kbd_init(void)
|
|
|
}
|
|
|
else kbd->keyboard_fd = kbd->console_fd;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return kbd;
|
|
|
}
|
|
|
|
|
@@ -301,7 +301,7 @@ SDL_EVDEV_kbd_quit(SDL_EVDEV_keyboard_state *kbd)
|
|
|
if (kbd->keyboard_fd >= 0) {
|
|
|
/* Restore the original keyboard mode */
|
|
|
ioctl(kbd->keyboard_fd, KDSKBMODE, kbd->old_kbd_mode);
|
|
|
-
|
|
|
+
|
|
|
close(kbd->keyboard_fd);
|
|
|
if (kbd->console_fd != kbd->keyboard_fd && kbd->console_fd >= 0)
|
|
|
{
|
|
@@ -362,14 +362,14 @@ static void put_utf8(SDL_EVDEV_keyboard_state *kbd, uint c)
|
|
|
static unsigned int handle_diacr(SDL_EVDEV_keyboard_state *kbd, unsigned int ch)
|
|
|
{
|
|
|
unsigned int d = kbd->diacr;
|
|
|
- unsigned int i;
|
|
|
+ unsigned int i, j;
|
|
|
|
|
|
kbd->diacr = 0;
|
|
|
|
|
|
for (i = 0; i < kbd->accents->n_accs; i++) {
|
|
|
if (kbd->accents->acc[i].accchar == d)
|
|
|
{
|
|
|
- for (int j = 0; j < NUM_ACCENTCHARS; ++j) {
|
|
|
+ for (j = 0; j < NUM_ACCENTCHARS; ++j) {
|
|
|
if (kbd->accents->acc[i].map[j][0] == 0) /* end of table */
|
|
|
break;
|
|
|
if (kbd->accents->acc[i].map[j][0] == ch)
|
|
@@ -462,9 +462,9 @@ SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, unsigned int keycode, int d
|
|
|
struct keyent_t keysym;
|
|
|
unsigned int final_key_state;
|
|
|
unsigned int map_from_key_sym;
|
|
|
-
|
|
|
+
|
|
|
key_map = *kbd->key_map;
|
|
|
-
|
|
|
+
|
|
|
if (!kbd) {
|
|
|
return;
|
|
|
}
|
|
@@ -476,7 +476,7 @@ SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, unsigned int keycode, int d
|
|
|
/* These constitute unprintable language-related keys, so ignore them. */
|
|
|
return;
|
|
|
}
|
|
|
- if (keycode > 95)
|
|
|
+ if (keycode > 95)
|
|
|
keycode -= 7;
|
|
|
if (vc_kbd_led(kbd, ALKED) || (kbd->shift_state & 0x8))
|
|
|
{
|
|
@@ -486,13 +486,13 @@ SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, unsigned int keycode, int d
|
|
|
} else {
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
final_key_state = kbd->shift_state & 0x7;
|
|
|
if ((keysym.flgs & FLAG_LOCK_C) && vc_kbd_led(kbd, LED_CAP))
|
|
|
final_key_state ^= 0x1;
|
|
|
if ((keysym.flgs & FLAG_LOCK_N) && vc_kbd_led(kbd, LED_NUM))
|
|
|
final_key_state ^= 0x1;
|
|
|
-
|
|
|
+
|
|
|
map_from_key_sym = keysym.map[final_key_state];
|
|
|
if ((keysym.spcl & (0x80 >> final_key_state)) || (map_from_key_sym & SPCLKEY)) {
|
|
|
/* Special function.*/
|
|
@@ -506,7 +506,7 @@ SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, unsigned int keycode, int d
|
|
|
if (kbd->accents->acc[accent_index].accchar != 0) {
|
|
|
k_deadunicode(kbd, kbd->accents->acc[accent_index].accchar, !down);
|
|
|
}
|
|
|
- } else {
|
|
|
+ } else {
|
|
|
switch(map_from_key_sym) {
|
|
|
case ASH: /* alt/meta shift */
|
|
|
k_shift(kbd, 3, down == 0);
|
|
@@ -549,12 +549,12 @@ SDL_EVDEV_kbd_keycode(SDL_EVDEV_keyboard_state *kbd, unsigned int keycode, int d
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- if (map_from_key_sym == '\n' || map_from_key_sym == '\r') {
|
|
|
- if (kbd->diacr) {
|
|
|
- kbd->diacr = 0;
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
+ if (map_from_key_sym == '\n' || map_from_key_sym == '\r') {
|
|
|
+ if (kbd->diacr) {
|
|
|
+ kbd->diacr = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
if (map_from_key_sym >= ' ' && map_from_key_sym != 127) {
|
|
|
k_self(kbd, map_from_key_sym, !down);
|
|
|
}
|