On 09/08/2011 11:46 AM, Bruno Haible wrote:
Bernhard Voelker wrote:
Starting with today's update, cygwin started speaking German:
$ mkdir -v x0
mkdir: Verzeichnis „x0“ angelegt
$ LANG=C mkdir -v x2
mkdir: created directory `x2'
$ LANG=C.UTF-8 mkdir -v x1
mkdir: Verzeichnis „x1“ angelegt
Default is LANG=C.UTF-8 here.
Ok, the PC is in Germany, but none of my environment
variables have a 'de' inside.
This is as it should be. See the NEWS entry from the gettext package:
* Runtime behaviour:
- On MacOS X and Windows systems,<libintl.h> now extends setlocale() and
newlocale() so that their determination of the default locale considers
the choice the user has made in the system control panels.
I read this as saying that if _none_ of LANG, LC_MESSAGES, or LC_ALL is
set, then libintl is smart enough to choose the system default language.
But I still think that if LANG is explicitly C.UTF-8, then the user
_has_ made an explicit language request - namely, the same language as
for LANG=C (which is more or less English, but not always identical to
en_US.UTF-8).
There is nothing to change in cygwin's setlocale implementation, nor in
libintl_setlocale. Both are POSIX compliant.
How is it POSIX compliant to ignore $LANG by using a different language
for the C locale? C.UTF-8 is just the C locale with a different
charset, not carte-blanche to use the system-default language.
--
Eric Blake ebl...@redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
--
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