gawk Regression: CR characters are not stripped on Windows

Andrey Repin anrdaemon@yandex.ru
Tue Feb 27 09:50:00 GMT 2018


Greetings, Orgad Shaneh!

> 1. The gawk info page states that:

>> Under MS-Windows,
------------^^^^^^^
>> 'gawk' (and many other text programs) silently
>> translates end-of-line '\r\n' to '\n' on input and '\n' to '\r\n' on
>> output.

> and on Feb 8 the following section was added:

>> Recent versions of Cygwin open all files in binary mode.  This means
>> that you should use 'RS = "\r?\n"' in order to be able to handle
>> standard MS-Windows text files with carriage-return plus line-feed line
>> endings.

> This breaks compatibility between different gawk versions. What were
> the reasons for this change in cygwin, and why was it pushed upstream?

> 2. Git and other tools automatically convert text files to CRLF on
> Windows.
--^^^^^^^

Cygwin is not "Windows", it is "sort of Linux".
Besides, this kind silent mangling is dangerous to an unsuspecting user.

> This means that any awk script that runs on both platforms
> must use RS = "\r?\n". One example that was broken by this behavior
> change is gerrit's commit-msg hook[1], which scans for empty lines by
> /^$/ regexp.


-- 
With best regards,
Andrey Repin
Tuesday, February 27, 2018 12:44:21

Sorry for my terrible english...


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list