Can you show how the values of the following variables change as you
step through this fragment in read1 and inside read_escape it calls?
read_from_string_index
read_from_string_index_byte
read_from_string_limit
c 0x00000043 int
read_from_string_index 0x00000004 int
read_from_string_index_byte 0x00000004 int
read_from_string_limit 0x00000008 int
case 'C':
c = READCHAR;
c 0x0000002d int
read_from_string_index 0x00000005 int
read_from_string_index_byte 0x00000005 int
read_from_string_limit 0x00000008 int
if (c != '-')
error ("Invalid escape character syntax");
case '^':
c = READCHAR;
c 0x00000030 int
read_from_string_index 0x00000006 int
read_from_string_index_byte 0x00000006 int
read_from_string_limit 0x00000008 int
return c | ctrl_modifier;
back to read1:
modifiers = c & CHAR_MODIFIER_MASK;
c &= ~CHAR_MODIFIER_MASK;
if (CHAR_BYTE8_P (c))
c = CHAR_TO_BYTE8 (c);
c |= modifiers;
c 0x04000030 int
next_char 0x00000030 int
read_from_string_index 0x00000007 int
read_from_string_index_byte 0x00000007 int
read_from_string_limit 0x00000008 int
ok = (next_char <= 040
|| (next_char < 0200
&& strchr ("\"';()[]#?`,.", next_char) != NULL));
ok = 0 => error
Hope you can decipher this.
--
Fabrice