bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Q: On Windows why not ignore CRLF?


From: thutt
Subject: Re: Q: On Windows why not ignore CRLF?
Date: Thu, 1 Jun 2017 07:55:51 -0700

Eli Zaretskii writes:
 > > From: Paul Smith <address@hidden>
 > > Date: Wed, 31 May 2017 19:48:57 -0400
 > >
 > > I'm working on ensuring that the test suite works on Windows
 >
 > That's great news, thanks!
 >
 > >   #if !defined(WINDOWS32) && !defined(__MSDOS__) && !defined(__EMX__)
 > >         /* Check to see if the line was really ended with CRLF; if so 
 > > ignore
 > >            the CR.  */
 > >         if ((p - start) > 1 && p[-2] == '\r')
 > >           {
 > >             --p;
 > >             memmove (p-1, p, strlen (p) + 1);
 > >           }
 > >   #endif
 > >
 > > I'm not sure about this implementation (performance-wise) but leaving
 > > that aside, I don't understand why this code is ifdef'd out on Windows.
 >
 > Well, it's your code, or so it seems ;-)  And it was always ifdef'ed
 > away on those platforms, since the day it was committed back in 1999
 > (see commit 7052a57).
 >
 > > I mean, CRLF is more prevalent on Windows so why wouldn't we have this
 > > there?
 > >
 > > Is the idea that on Windows we want to preserve the CRLF, for some
 > > reason?  I'm not sure I see the point in doing that when we're parsing
 > > the makefile; I mean we'd throw away all the newlines on UNIX, so why
 > > would we preserve the CRLF on Windows?
 >
 > I think Ray is right: the CRLF combination simply cannot happen on
 > those platforms, because Make there uses text-mode reads, so the CR
 > characters are simply gone by the time we get here.

 I concur that the code is disabled on Windows due to text mode
 stripping away the '\r' and leaving only '\n' in the input stream.

 I surmise it's enabled on non-Windows builds to allow them to work
 wtih Makefiles created on a Windows machine.

thutt
--
What books will be in the Trump Presidential Library?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]