Some packages use them to denote characters with modifiers.
+2011-10-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
+ Some packages use them to denote characters with modifiers.
+
2011-10-11 Andreas Schwab <schwab@linux-m68k.org>
* lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
case 'x':
/* A hex escape, as in ANSI C. */
{
- int i = 0;
+ unsigned int i = 0;
int count = 0;
while (1)
{
UNREAD (c);
break;
}
- if (MAX_CHAR < i)
+ /* Allow hex escapes as large as ?\xfffffff, because some
+ packages use them to denote characters with modifiers. */
+ if ((CHAR_META | (CHAR_META - 1)) < i)
error ("Hex character out of range: \\x%x...", i);
count += count < 3;
}