diff --git a/src/api/system.c b/src/api/system.c index 85143020..4ea405c8 100644 --- a/src/api/system.c +++ b/src/api/system.c @@ -101,6 +101,8 @@ static const char *numpad[] = { "end", "down", "pagedown", "left", "", "right", static const char *get_key_name(const SDL_Event *e, char *buf) { SDL_Scancode scancode = e->key.keysym.scancode; + + #if !defined(__amigaos4__) && !defined(__MORPHOS__) /* Is the scancode from the keypad and the number-lock off? ** We assume that SDL_SCANCODE_KP_1 up to SDL_SCANCODE_KP_9 and SDL_SCANCODE_KP_0 ** and SDL_SCANCODE_KP_PERIOD are declared in SDL2 in that order. */ @@ -108,6 +110,8 @@ static const char *get_key_name(const SDL_Event *e, char *buf) { !(e->key.keysym.mod & KMOD_NUM)) { return numpad[scancode - SDL_SCANCODE_KP_1]; } else { + #endif + /* We need to correctly handle non-standard layouts such as dvorak. Therefore, if a Latin letter(code<128) is pressed in the current layout, then we transmit it as it is. But we also need to support shortcuts in @@ -119,7 +123,10 @@ static const char *get_key_name(const SDL_Event *e, char *buf) { strcpy(buf, SDL_GetScancodeName(scancode)); str_tolower(buf); return buf; + + #if !defined(__amigaos4__) && !defined(__MORPHOS__) } + #endif } static int f_poll_event(lua_State *L) {