Bug: grep behaves incorrectly under the locale C.UTF-8, if a file contains Umlaut characters
Andrey Repin
anrdaemon@yandex.ru
Wed May 24 10:05:00 GMT 2017
Greetings, Ronald Fischer!
> I have a file X which contains ASCII text, but also in some lines German
> umlaut characters. The file is classified as:
> $ file X
> X: ISO-8859 text, with CRLF line terminators
> If I grep the file using, say,
> $ grep . X >Y
> (i.e. select every non-empty line and write the result to Y), this works
> fine, if LANG is set to one of: UTF-8, C, C.de_DE, C.en_EN, en_EN,
> de_DE.
> However, if LANG is set to C.UTF-8, two things happen:
> - grep classifies the file as binary file and produces the error message
> "Binary file X matches"
This is an intended behavior, upstream decision since mid-2015, I recall.
> - Both the grepped lines (i.e. in our example the non-empty lines) AND
> the error message end up in the standard output (i.e. in file Y).
> IMO, there are several problems with this:
> 1. It's hard to see, why an umlaut character makes the file X binary
> under encoding C.UTF-8, but not under encoding UTF-8 or C.en_EN
> 2. If grep classifies a file as binary, I think the desired behaviour
> would be to NOT produce any output, unless the -a flag has been
> supplied.
> 3. If grep writes a message "Binary file ... matches", this message
> should go to stderr, not stdout. The stdout is supposed to contain only
> a subset of the input lines.
> Ronald
--
With best regards,
Andrey Repin
Wednesday, May 24, 2017 13:02:39
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