[sisyphus] LC_*

Michael Shigorin =?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Вт Ноя 1 22:18:45 MSK 2005


On Tue, Nov 01, 2005 at 07:01:13PM +0300, Sviataslau Svirydau wrote:
> >>Т.е. все равно хочется брать реальное занчение LC_TYPE
> >>невзирая на LC_ALL?
> >Именно.  Потому что так же поступит и glibc всякое
> >при выставленном LC_* точней LC_ALL.
> Это точно?

Нет, конечно. :)

> Поведение locale(1) почему-то заставяет думать наоборот.

Скажем так.  Предполагается, что если выставлен LC_CTYPE --
то выставлен правильно и for a reason (например, у некоторых
это uk_UA.KOI8-U, хотя кроме него и LC_COLLATE локаль может
быть скорее ru_RU.KOI8-R, возможно, в смеси с C/POSIX).

Соответственно проверять только LC_ALL -- чревато тем, что 
как раз он не определён (это может быть и при частично оторванной
локализации, не только в странных случаях навроде моего).

Проверять LC_CTYPE (обманувшись спросонья `locale`) -- ещё
хуже, ровно поэтому в Compact 2.3 была кривая сборка xmms
(в смысле обёртка не настраивала его, как должна была).

Соответственно для подобной эвристики "ну-я-старался" оно
подходит, а вообще спасибо за разоблачение и вразумление :)

> Да и в других местах говорят, что LC_ALL проверяется перед
> конкретной категорией LC_*.

...и перекрывает.

> А вот LANG -- после.

И тоже бы правильно заглянуть, если уж докапываться.

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/



Подробная информация о списке рассылки Sisyphus