Mercurial > emacs
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)) |