X11R7.5 and C.UTF-8

Jon TURNEY jon.turney@dronecode.org.uk
Thu Oct 29 15:01:00 GMT 2009


On 29/10/2009 14:37, Ken Brown wrote:
> On 10/29/2009 9:42 AM, Jon TURNEY wrote:
>> On 29/10/2009 00:07, Andy Koppe wrote:
>>> 2009/10/28 Jon TURNEY:
>>>> On 28/10/2009 14:22, Ken Brown wrote:
>>>>>
>>>>> X11R7.5 doesn't like the (default) locale C.UTF-8. If I start the
>>>>> server with 'LANG=C.UTF-8 /usr/bin/startxwin.bat', the server exits
>>>>> immediately, and the log has complaints about the locale. If I instead
>>>>> use 'LANG=en_US.UTF-8', there's no problem. I've attached both logs
>>>>> and
>>>>> cygcheck output.
>>>>
>>>> Thanks for the bug report.
>>>>
>>>> I'm afraid I'm not immediately able to reproduce this, though, using
>>>> the
>>>> command you give.
>>>
>>> You might have LC_ALL or LC_CTYPE set, which would override LANG. Or
>>> perhaps startxwin.bat overrides things somewhere along the way?
>>>
>>> To avoid all that, you could try invoking Xwin directly with LC_ALL
>>> set, which is top dog among locale variables.
>>>
>>> LC_ALL=C.UTF-8 xwin -multiwindow&
>>>
>>> It fails with en.UTF-8 too (which also is a legal Cygwin locale), but
>>> it works with en_US.UTF-8.
>>
>> Nope, I don't have LC_ALL or LC_CTYPE set
>>
>> This is pretty curious, since all XSupportsLocale() should be doing
>> effectively is checking if setlocale (LC_ALL, NULL) returns a name it
>> understands.
>>
>> Perhaps you can try the attached small test program.
>
> $ LANG=C.UTF-8 ./Xlocale.exe
> Setting locale from LANG succeeded
> Locale is C.UTF-8
> XSupportsLocale returned false
>
> $ LANG=en_US.UTF-8 ./Xlocale.exe
> Setting locale from LANG succeeded
> Locale is en_US.UTF-8
> XSupportsLocale returned true
>
> $ unset LANG
>
> $ ./Xlocale.exe
> Setting locale from LANG succeeded
> Locale is C
> XSupportsLocale returned true
>
> $ uname -a
> CYGWIN_NT-5.1 markov 1.7.0(0.214/5/3) 2009-10-03 14:33 i686 Cygwin

I suppose I should show you mine, then

$ LANG=C.UTF-8 ./Xlocale
Setting locale from LANG failed
Locale is C
XSupportsLocale returned true

$ LANG=en_US.UTF-8 ./Xlocale
Setting locale from LANG succeeded
Locale is en_US.UTF-8
XSupportsLocale returned true

$ unset LANG

$  ./Xlocale
Setting locale from LANG succeeded
Locale is C
XSupportsLocale returned true

$ uname -a
CYGWIN_NT-5.1 byron 1.7.0(0.212/5/3) 2009-09-11 01:25 i686 Cygwin

Okay, well this makes sense now :-(

Appropriate data needs to exist in /usr/share/X11/locale for the C.UTF-8 
locale, but it doesn't at the moment. Let me see if I can find it :-)

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



More information about the Cygwin-xfree mailing list