diff options
author | nicm <nicm> | 2020-05-25 18:57:24 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-05-25 18:57:24 +0000 |
commit | 6f03e49e68dfe0d9c0c7d49079c4383b26aca916 (patch) | |
tree | 86a94f09a878fe2d32cd3ef29a69db242208897f /key-string.c | |
parent | 35779d655d7eec4b904eeb3a670bbef02aba016d (diff) | |
download | rtmux-6f03e49e68dfe0d9c0c7d49079c4383b26aca916.tar.gz rtmux-6f03e49e68dfe0d9c0c7d49079c4383b26aca916.tar.bz2 rtmux-6f03e49e68dfe0d9c0c7d49079c4383b26aca916.zip |
Use the internal representation for UTF-8 keys instead of wchar_t and
drop some code only needed for that.
Diffstat (limited to 'key-string.c')
-rw-r--r-- | key-string.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/key-string.c b/key-string.c index 1efb6e0b..4ee12145 100644 --- a/key-string.c +++ b/key-string.c @@ -169,7 +169,7 @@ key_string_lookup_string(const char *string) struct utf8_data ud; u_int i; enum utf8_state more; - wchar_t wc; + utf8_char uc; /* Is this no key or any key? */ if (strcasecmp(string, "None") == 0) @@ -210,9 +210,9 @@ key_string_lookup_string(const char *string) more = utf8_append(&ud, (u_char)string[i]); if (more != UTF8_DONE) return (KEYC_UNKNOWN); - if (utf8_combine(&ud, &wc) != UTF8_DONE) + if (utf8_from_data(&ud, &uc) != UTF8_DONE) return (KEYC_UNKNOWN); - return (wc|modifiers); + return (uc|modifiers); } /* Otherwise look the key up in the table. */ @@ -349,12 +349,11 @@ key_string_lookup_key(key_code key, int with_flags) /* Is this a UTF-8 key? */ if (key > 127 && key < KEYC_BASE) { - if (utf8_split(key, &ud) == UTF8_DONE) { - off = strlen(out); - memcpy(out + off, ud.data, ud.size); - out[off + ud.size] = '\0'; - goto out; - } + utf8_to_data(key, &ud); + off = strlen(out); + memcpy(out + off, ud.data, ud.size); + out[off + ud.size] = '\0'; + goto out; } /* Invalid keys are errors. */ |