diff options
Diffstat (limited to 'src/casefiddle.c')
| -rw-r--r-- | src/casefiddle.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/casefiddle.c b/src/casefiddle.c index ae60d2c8dd5..6387c4bc845 100644 --- a/src/casefiddle.c +++ b/src/casefiddle.c | |||
| @@ -52,6 +52,12 @@ casify_object (flag, obj) | |||
| 52 | | CHAR_SHIFT | CHAR_CTL | CHAR_META); | 52 | | CHAR_SHIFT | CHAR_CTL | CHAR_META); |
| 53 | int flags = XINT (obj) & flagbits; | 53 | int flags = XINT (obj) & flagbits; |
| 54 | 54 | ||
| 55 | /* If the character has higher bits set | ||
| 56 | above the flags, return it unchanged. | ||
| 57 | It is not a real character. */ | ||
| 58 | if ((unsigned) XFASTINT (obj) > (unsigned) flagbits) | ||
| 59 | return obj; | ||
| 60 | |||
| 55 | c = DOWNCASE (XFASTINT (obj) & ~flagbits); | 61 | c = DOWNCASE (XFASTINT (obj) & ~flagbits); |
| 56 | if (inword) | 62 | if (inword) |
| 57 | XSETFASTINT (obj, c | flags); | 63 | XSETFASTINT (obj, c | flags); |