This is the mail archive of the cygwin 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]
Other format: [Raw text]

Re: CR-LF handling behavior of SED changed recently - this breaks a lot of MinGW cross build scripts

On 2017-06-13 08:11, cyg Simple wrote:
> On 6/10/2017 10:30 PM, Eric Blake wrote:
>> On 06/10/2017 08:48 AM, cyg Simple wrote:
>>> Uhm, 'wt' and 'wb' came from MS itself.
>> Not quite. fopen(,"wb") comes from POSIX.  "wt" is probably a microsoft
>> extension, but it is certainly not in POSIX nor in glibc.
> I think it's a C standard so it should be in glibc.  It may be mentioned
> in the POSIX standard as in support of the C standard.
>>>  GNU GCC was adapted to allow it
>> Huh? It's not whether the compiler allows it, but whether libc allows
>> it.  ALL libc that are remotely close to POSIX compliant support
>> fopen(,"wb"), but only Windows platforms (and NOT glibc) support
>> fopen(,"wt").
> Looking at I see:
> "If additional characters follow the sequence, the behavior depends on
> the library implementation: some implementations may ignore additional
> characters so that for example an additional "t" (sometimes used to
> explicitly state a text file) is accepted."
> There is also a lot of discussion about the topic at:
> As for glibc, it will just ignore the extra character but it allows the
> use of "wt"; it just means nothing to that C runtime library. It does
> aide in portable code though.
> As for me conflating GCC with a C runtime - please forgive my lapse in
> memory.

There's no need for open mode "t", as text is the default mode unless
"b" is specified, and assuming you use "cooked" line I/O functions like
fgets/fputs, not "raw" binary I/O like fread/fwrite; fscanf ignores all
line terminators unless you use formats like "%c" which could see them.

Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

Problem reports:
Unsubscribe info:

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