summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/keymap.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/keymap.c b/src/keymap.c
index 6a7bee4f50c..f96b8d1b784 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1860,11 +1860,12 @@ Control characters turn into C-whatever, etc.")
if (INTEGERP (key)) /* Normal character */
{
unsigned int charset, c1, c2;
+ int without_bits = XINT (key) & ~((-1) << CHARACTERBITS);
- if (SINGLE_BYTE_CHAR_P (XINT (key)))
+ if (SINGLE_BYTE_CHAR_P (without_bits))
charset = 0;
else
- SPLIT_NON_ASCII_CHAR (XINT (key), charset, c1, c2);
+ SPLIT_NON_ASCII_CHAR (without_bits, charset, c1, c2);
if (charset
&& ((c1 >= 0 && c1 < 32)