This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Cygwin 1.1.3-1 (g++) parser not sure how to deal with continuation '\'



> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]