diff options
| author | Kenichi Handa | 2005-10-24 08:05:36 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2005-10-24 08:05:36 +0000 |
| commit | 3d930b17852823b8c81c713ca7de77c15f95c4b1 (patch) | |
| tree | 45fcb0c30717e7bf77fbb5b27a8573a2fb2132fe /src | |
| parent | bde7944bda8d00900dbcfab79a05822b8d5856df (diff) | |
| download | emacs-3d930b17852823b8c81c713ca7de77c15f95c4b1.tar.gz emacs-3d930b17852823b8c81c713ca7de77c15f95c4b1.zip | |
(handle_one_xevent): Handle keysyms directly mapped to
supported Unicode characters.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xterm.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/xterm.c b/src/xterm.c index a82cd8c8c97..25283480c02 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -6236,6 +6236,27 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6236 | goto done_keysym; | 6236 | goto done_keysym; |
| 6237 | } | 6237 | } |
| 6238 | 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 | |||
| 6239 | /* Now non-ASCII. */ | 6260 | /* Now non-ASCII. */ |
| 6240 | if (HASH_TABLE_P (Vx_keysym_table) | 6261 | if (HASH_TABLE_P (Vx_keysym_table) |
| 6241 | && (NATNUMP (c = Fgethash (make_number (keysym), | 6262 | && (NATNUMP (c = Fgethash (make_number (keysym), |