From e3a10b5e595a84821b3440c484c840b541ba669f Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Thu, 18 Jun 1998 04:11:28 +0000 Subject: [PATCH] (casify_object): Cope with modifier bits in character. --- src/casefiddle.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/casefiddle.c b/src/casefiddle.c index b6d8b21f606..65fc4f0d80a 100644 --- a/src/casefiddle.c +++ b/src/casefiddle.c @@ -47,13 +47,17 @@ casify_object (flag, obj) { if (INTEGERP (obj)) { - c = DOWNCASE (XFASTINT (obj)); + int flagbits = (CHAR_ALT | CHAR_SUPER | CHAR_HYPER + | CHAR_SHIFT | CHAR_CTL | CHAR_META); + int flags = XINT (obj) & flagbits; + + c = DOWNCASE (XFASTINT (obj) & ~flagbits); if (inword) - XSETFASTINT (obj, c); - else if (c == XFASTINT (obj)) + XSETFASTINT (obj, c | flags); + else if (c == (XFASTINT (obj) & ~flagbits)) { - c = UPCASE1 (XFASTINT (obj)); - XSETFASTINT (obj, c); + c = UPCASE1 ((XFASTINT (obj) & ~flagbits)); + XSETFASTINT (obj, c | flags); } return obj; } -- 2.39.5