6236 |
goto done_keysym; |
goto done_keysym; |
6237 |
} |
} |
6238 |
|
|
6239 |
|
/* Keysyms directly mapped to supported Unicode characters. */ |
6240 |
|
if ((keysym >= 0x01000100 && keysym <= 0x010033ff) |
6241 |
|
|| (keysym >= 0x0100e000 && keysym <= 0x0100ffff)) |
6242 |
|
{ |
6243 |
|
int code, charset_id, c1, c2; |
6244 |
|
|
6245 |
|
if (keysym < 0x01002500) |
6246 |
|
charset_id = charset_mule_unicode_0100_24ff, |
6247 |
|
code = (keysym & 0xFFFF) - 0x100; |
6248 |
|
else if (keysym < 0x0100e000) |
6249 |
|
charset_id = charset_mule_unicode_2500_33ff, |
6250 |
|
code = (keysym & 0xFFFF) - 0x2500; |
6251 |
|
else |
6252 |
|
charset_id = charset_mule_unicode_e000_ffff, |
6253 |
|
code = (keysym & 0xFFFF) - 0xe000; |
6254 |
|
c1 = (code / 96) + 32, c2 = (code % 96) + 32; |
6255 |
|
inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT; |
6256 |
|
inev.ie.code = MAKE_CHAR (charset_id, c1, c2); |
6257 |
|
goto done_keysym; |
6258 |
|
} |
6259 |
|
|
6260 |
/* Now non-ASCII. */ |
/* Now non-ASCII. */ |
6261 |
if (HASH_TABLE_P (Vx_keysym_table) |
if (HASH_TABLE_P (Vx_keysym_table) |
6262 |
&& (NATNUMP (c = Fgethash (make_number (keysym), |
&& (NATNUMP (c = Fgethash (make_number (keysym), |