comparison src/casefiddle.c @ 55743:4f33fa491183

(casify_object): Return OBJ unchanged if not real char.
author Richard M. Stallman <rms@gnu.org>
date Sat, 22 May 2004 22:19:28 +0000
parents 695cf19ef79e
children 5407da499273
comparison
equal deleted inserted replaced
55742:a5ccd5ee3c52 55743:4f33fa491183
49 if (INTEGERP (obj)) 49 if (INTEGERP (obj))
50 { 50 {
51 int flagbits = (CHAR_ALT | CHAR_SUPER | CHAR_HYPER 51 int flagbits = (CHAR_ALT | CHAR_SUPER | CHAR_HYPER
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
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;
54 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);
58 else if (c == (XFASTINT (obj) & ~flagbits)) 64 else if (c == (XFASTINT (obj) & ~flagbits))