Subject: bug#9960: Compiling Emacs trunk with MSVC

From: Fabrice Popineau <[email-masked]>
Date: Sat, 12 Nov 2011 23:27:18 +0100

>
> 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;

next_char = READCHAR;

 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