GUACAMOLE-313: Merge remove handling of Unicode codepoints which cannot actually be represented by an X11 keysym.
This commit is contained in:
commit
3f6acb6378
@ -222,7 +222,7 @@ static guaclog_keydef* guaclog_get_unicode_key(int keysym) {
|
|||||||
int mask, bytes;
|
int mask, bytes;
|
||||||
|
|
||||||
/* Translate only if keysym maps to Unicode */
|
/* Translate only if keysym maps to Unicode */
|
||||||
if (keysym < 0x00 || (keysym > 0xFF && (keysym & 0xFFFF0000) != 0x01000000))
|
if (keysym < 0x00 || (keysym > 0xFF && (keysym | 0xFFFF) != 0x0100FFFF))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
int codepoint = keysym & 0xFFFF;
|
int codepoint = keysym & 0xFFFF;
|
||||||
@ -236,18 +236,11 @@ static guaclog_keydef* guaclog_get_unicode_key(int keysym) {
|
|||||||
mask = 0xC0;
|
mask = 0xC0;
|
||||||
bytes = 2;
|
bytes = 2;
|
||||||
}
|
}
|
||||||
else if (codepoint <= 0xFFFF) {
|
else {
|
||||||
|
assert(codepoint <= 0xFFFF);
|
||||||
mask = 0xE0;
|
mask = 0xE0;
|
||||||
bytes = 3;
|
bytes = 3;
|
||||||
}
|
}
|
||||||
else if (codepoint <= 0x1FFFFF) {
|
|
||||||
mask = 0xF0;
|
|
||||||
bytes = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Otherwise, invalid codepoint */
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/* Offset buffer by size */
|
/* Offset buffer by size */
|
||||||
char* key_name = unicode_keydef_name + bytes;
|
char* key_name = unicode_keydef_name + bytes;
|
||||||
|
Loading…
Reference in New Issue
Block a user