aboutsummaryrefslogtreecommitdiffstats
path: root/src/custom.c
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@calcurse.org>2017-08-30 16:27:29 +0200
committerLukas Fleischer <lfleischer@calcurse.org>2017-08-30 16:39:23 +0200
commit578091f051541ffcd68fb755641fd7c45e28977c (patch)
tree8a02c2ec5c1ac9109076d5bee6c80d553d9c7f8b /src/custom.c
parent8544e4a57016e370a25bb7038cc3ef11c81eb9c3 (diff)
downloadcalcurse-578091f051541ffcd68fb755641fd7c45e28977c.tar.gz
calcurse-578091f051541ffcd68fb755641fd7c45e28977c.zip
Add support for UTF-8 key bindings
A new function keys_wgetch() reads full UTF-8 characters instead of single ASCII characters only. Key bindings for regular ASCII characters are stored in a hash map while the actions of keys with higher code points are stored in a linked list for space efficiency. The key serialization methods are updated to handle UTF-8 characters as well; extended UTF-8 characters (characters not in the ASCII range) are serialized by using the hexadecimal representation of the corresponding code points (e.g. "U+00E4"). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
Diffstat (limited to 'src/custom.c')
-rw-r--r--src/custom.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/custom.c b/src/custom.c
index ce219c1..f83a87a 100644
--- a/src/custom.c
+++ b/src/custom.c
@@ -972,10 +972,10 @@ void custom_keys_config(void)
(col - WINCOL) / 2,
_("Press the key you want to assign to:"),
keys_get_label(selrow), 0);
- ch = wgetch(grabwin);
+ ch = keys_wgetch(grabwin);
/* First check if this key would be recognized by calcurse. */
- if (keys_str2int(keys_int2str(ch)) == -1) {
+ if (ch < 0) {
not_recognized = 1;
WARN_MSG(_("This key is not yet recognized by calcurse, "
"please choose another one."));