diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/keymap.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/keymap.c b/src/keymap.c index 7831c293316..107c2ec3b87 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -272,6 +272,10 @@ access_keymap (map, idx, t_ok) | |||
| 272 | be put in the canonical order. */ | 272 | be put in the canonical order. */ |
| 273 | if (XTYPE (idx) == Lisp_Symbol) | 273 | if (XTYPE (idx) == Lisp_Symbol) |
| 274 | idx = reorder_modifiers (idx); | 274 | idx = reorder_modifiers (idx); |
| 275 | else if (INTEGERP (idx)) | ||
| 276 | /* Clobber the high bits that can be present on a machine | ||
| 277 | with more than 24 bits of integer. */ | ||
| 278 | XFASTINT (idx) = XINT (idx) & ((1 << 24) - 1); | ||
| 275 | 279 | ||
| 276 | { | 280 | { |
| 277 | Lisp_Object tail; | 281 | Lisp_Object tail; |
| @@ -368,7 +372,10 @@ store_in_keymap (keymap, idx, def) | |||
| 368 | be put in the canonical order. */ | 372 | be put in the canonical order. */ |
| 369 | if (XTYPE (idx) == Lisp_Symbol) | 373 | if (XTYPE (idx) == Lisp_Symbol) |
| 370 | idx = reorder_modifiers (idx); | 374 | idx = reorder_modifiers (idx); |
| 371 | 375 | else if (INTEGERP (idx)) | |
| 376 | /* Clobber the high bits that can be present on a machine | ||
| 377 | with more than 24 bits of integer. */ | ||
| 378 | XFASTINT (idx) = XINT (idx) & ((1 << 24) - 1); | ||
| 372 | 379 | ||
| 373 | /* Scan the keymap for a binding of idx. */ | 380 | /* Scan the keymap for a binding of idx. */ |
| 374 | { | 381 | { |