# HG changeset patch # User Karl Heuer # Date 898143088 0 # Node ID 2107e25fa56f7d56c2710fbf30eeea8b18997986 # Parent d4f3552a85f209ab3f8a3c41180345c6da425bf9 (casify_object): Cope with modifier bits in character. diff -r d4f3552a85f2 -r 2107e25fa56f src/casefiddle.c --- a/src/casefiddle.c Wed Jun 17 04:22:58 1998 +0000 +++ b/src/casefiddle.c Thu Jun 18 04:11:28 1998 +0000 @@ -47,13 +47,17 @@ { 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; }