comparison src/casefiddle.c @ 22506:2107e25fa56f

(casify_object): Cope with modifier bits in character.
author Karl Heuer <kwzh@gnu.org>
date Thu, 18 Jun 1998 04:11:28 +0000
parents fa9ff387d260
children a1abe3ae2cd0
comparison
equal deleted inserted replaced
22505:d4f3552a85f2 22506:2107e25fa56f
45 45
46 while (1) 46 while (1)
47 { 47 {
48 if (INTEGERP (obj)) 48 if (INTEGERP (obj))
49 { 49 {
50 c = DOWNCASE (XFASTINT (obj)); 50 int flagbits = (CHAR_ALT | CHAR_SUPER | CHAR_HYPER
51 | CHAR_SHIFT | CHAR_CTL | CHAR_META);
52 int flags = XINT (obj) & flagbits;
53
54 c = DOWNCASE (XFASTINT (obj) & ~flagbits);
51 if (inword) 55 if (inword)
52 XSETFASTINT (obj, c); 56 XSETFASTINT (obj, c | flags);
53 else if (c == XFASTINT (obj)) 57 else if (c == (XFASTINT (obj) & ~flagbits))
54 { 58 {
55 c = UPCASE1 (XFASTINT (obj)); 59 c = UPCASE1 ((XFASTINT (obj) & ~flagbits));
56 XSETFASTINT (obj, c); 60 XSETFASTINT (obj, c | flags);
57 } 61 }
58 return obj; 62 return obj;
59 } 63 }
60 64
61 if (STRINGP (obj)) 65 if (STRINGP (obj))