Cygwin 1.1.3-1 (g++) parser not sure how to deal with continuation '\'
13mb80000-HallM(10053584)37x10
marcus@bighorn.dr.lucent.com
Tue Aug 1 07:48:00 GMT 2000
> Hi folks,
>
> Ok...looked through the archives and couldn't find any reference
> to this error.
>
> info:
> This is NT4 box.
> Used latest setup.exe to install/update to 1.1.3-1
>
> From cygcheck -s:
> MAKE_MODE="unix"
> d:\cygwin\bin /usr/bin user binmode
> d:\cygwin\lib /usr/lib user binmode
> d:\cygwin / user binmode
>
> Apparent error:
>
> header file is being parsed incorrectly by g++.
>
> Error Reproducible?
> Yes, this is reproducible.
>
> When g++ detects '\' in a header file, it is unable to parse it
> except as "stray '\' in program".
>
> When '\' removed from header, the problem disappears.
>
> Example:
>
> a)
> #define D3DRGB(r, g, b) \
> (0xff000000L | ( ((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8)
| (long)((b) * 255))
>
> fails ("stray '\' in program").
>
> b)
> #define D3DRGB(r, g, b) (0xff000000L | ( ((long)((r) * 255)) << 16) |
(((long)((g) * 255)) << 8) | (long)((b) * 255))
>
> works.
>
Almost certainly the backslash is followed by a <CR> character before the
<LF> character. Since you are reading the file in binary mode, cygwin
does not change <CR><LF> into \n, so the backslash does not occur at the
end of the line (it's got a whitespace character following it). If you
get rid of the <CR>s at the end of the lines, it should work correctly.
marcus
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com
More information about the Cygwin
mailing list