This is the mail archive of the cygwin@sourceware.cygnus.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: multi-line #defines




>      The problem on my machine (Win98) was that the compiler didn't seem to
> recognize or like multiple line #defines, which could be found in files like
> reent.h, winnt.h, etc.  An error message of "stray \ in program" was 
generated.
> Removing the continuation back-slashes simply caused other error messages 
since
> the multi-line #define still was not recognized.  The solution on my machine
> was to remove both the "\" and the following linefeed, i.e. to create a long,
> but one-line #define. 
> 
>      Is this a problem for anyone but me?  Is there a patch/upgrade?  Is there
> a work-around?  I am nervous that other machines may not like the very long
> lines that I am using with my "fix".

I suspect that you have a text/binary mount point problem (or a related
one).  The file most likely has <CR><LF> terminations and the compiler is
reading it in binary mode, so it sees these terminations at the end of the
line.  Now, <CR> is counted as a whitespace character, so the compiler does
not usually get too upset by this, but if a #define is continued to the
next line with a '\', the compiler (actually the pre-processor) sees the
<CR> as the following character, not '\n', and it does not treat it as
a continuation.

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]