[PATCH] Accept any kind of symbolic SDL key names |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- Subject: [PATCH] Accept any kind of symbolic SDL key names
- From: Eero Tamminen <oak@xxxxxxxxxxxxxx>
- Date: Sun, 21 Nov 2021 21:05:58 +0200
Besides adding some [1] support for special characters, this is needed
also for non-ASCII alphabetic characters. Hatari could be run in a
locale where those are not recognized as alphabetic characters, or it
could be built with a C-library missing proper locale support.
[1] Following still need to be specified using SDL scancodes:
* Numbers and other characters ("#;, ") used in keymap syntax
* Keys for which SDL does not have scancode with *host* keyboard
mapping, such as dead keys and virtual ones:
https://wiki.libsdl.org/SDL_Keycode
---
src/keymap.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/keymap.c b/src/keymap.c
index 7ce7bc7d..3daff690 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -794,8 +794,8 @@ static bool HostSpecToKeymap(const char *spec, KeyMapping* mapping)
token = strtok_r(NULL, "|", &saveptr))
{
token = Str_Trim(token);
- /* text description? */
- if (isalpha(token[0]))
+ /* not a number? */
+ if (!isdigit(token[0]))
{
SDL_Scancode code;
SDL_Keymod mod;
@@ -902,7 +902,8 @@ static bool GuestSpecToKeymap(const char *spec, KeyMapping* mapping)
token = strtok_r(NULL, "|", &saveptr))
{
token = Str_Trim(token);
- if (isalpha(token[0]))
+ /* not a number? */
+ if (!isdigit(token[0]))
{
mods = AddSTModifier(mods, token);
if (!mods)
--
2.30.2
--------------6D59CF2683B8E6D297AA7665
Content-Type: text/plain; charset=UTF-8;
name="keymap.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="keymap.txt"
IyBzcGVjaWFsIHNjYW5jb2RlIG5hbWUgZXhhbXBsZToKIyAgICdmMScgLT4gJ2InCkYxLDQ4
CgojIHNwZWNpYWwga2V5cyBtYXBwZWQgZGlmZmVyZW50bHkgb24gVVMgJiBGSSBrZXlib2Fy
ZHMKIyAoYW5kIHVzaW5nIGhleCBkZWNpbWFscykKIyAgICcgLT4gJ2EnCiMgICDDtiAtPiAn
YicKJywgMHgxZQrDtiwgMHgzMAoKIyB3aXRoIG1vZGlmaWVyIG5hbWVzIGJlZm9yZSBrZXk6
CiMgICBsLXNoaWZ0ICsgJ2EnIC0+ICdCJwpMU0hJRlR8QSwgTFNISUZUfDQ4CgojIHdpdGgg
bW9kaWZpZXIgbmFtZXMgYWZ0ZXIga2V5OgojICAgci1zaGlmdCArICdhJyAtPiAnQycKQXxS
U0hJRlQsIDQ2fFJTSElGVAoKIyB0aGlzIG1hdGNoZXMgb25seSB3aGVuIG1vdmVkIGJlZm9y
ZSBlaXRoZXIgb3IgYm90aAojIG9mIHRoZSBMU0hJRlQvUlNISUZUIHNwZWNzIGFib3ZlLCB0
aGVuIGl0IG92ZXJyaWRlcwojIGZvbGxvd2luZyBzaGlmdCBzcGVjcyBmb3IgdGhlIHNhbWUg
c2NhbmNvZGUKIyAgIChhbnkpIHNoaWZ0ICsgJ2EnIC0+ICdEJwpBfFNISUZULCAzMnxMU0hJ
RlQKCiMgQWx0R3Igd2l0aCBrZXkgbm90IHVzZWQgYXMgSGF0YXJpIHNob3J0Y3V0OgojIGh0
dHBzOi8vaGF0YXJpLnR1eGZhbWlseS5vcmcvZG9jL21hbnVhbC5odG1sI0tleWJvYXJkX3No
b3J0Y3V0c19mb3JfdGhlX1NETF9HVUkKIyBBbHRHciArICdlJyAtPiAnwrUnCkV8UkFMVCwg
QUxUX1hYWCB8IDIzMAoKIyB3aXRoIG51bWVyaWMgU0RMIHNjYW5jb2RlICsgbnVtbG9jaywg
ZXh0cmEgc3BhY2luZyBhbmQgQWx0LXh4eDoKIyAgICdhJyAtPiAnwrUnCjQgfCBOVU0gLCBB
TFRfWFhYIHwgMjMwCgojIGJlY2F1c2UgdGhpcyBoYXMgbm8gbW9kaWZpZXIsIGl0IG5lZWRz
IHRvIGJlCiMgc3BlY2lmaWVkIGFmdGVyIG1vZGlmaWVyIHNwZWNzIGZvciBzYW1lIHNjYW5j
b2RlOgojICAgJ2EnIC0+ICdlJwpBLCAxOAo=
--------------6D59CF2683B8E6D297AA7665--