On Tue, Feb 22, 2005 at 12:49:35PM +0300, Vitaly Lipatov wrote: > > Те, кто пытаются, по крайней мере, представляют себе > > _алгоритм_ действий и степень его применимости. Возможно, я > Ну это заметно, особенно по советам на приведённой вами ссылке :) Ну, уж, на безрыбье... > > О _какой_ кодировке? Что, если на машине три разноязыких > > пользователя, использующих, к тому же, 5-6 кодировок в сумме? > > Какую кодировку Вы будете использовать в этом случае? > Я уже ответил Антону рядом. > По текущей реализации при монтировании, например, будет > использоваться кодировка, полученная из локали пользователя. > Если это невозможно, будет использоваться общесистемная А где критерий "возможности"? Я уверяю Вас, легким движением указательных пальцев я сломаю Вашу конструкцию. Причем так, что ваш алгоритм этого даже и не почувствует. > кодировка, полученная из системной локали. > Кого это не устроит? Это не устроит тех, кто ждет либо _решения_, либо довольствуется нынешним состоянием, когда все решается на уровне "негласных" договоренностей и соглашений. > > emacs), является UTF-8. > Это давно понятно. Начните с патчей к mc и чего там - zsh? :) Мне говорят, что уже все есть. В FC, например. Но, подчеркиваю, это _Вы_ начали танцы с определением кодировки пользователя. > > > Мне кажется, в _системе_ все файлы должны именоваться в > > > одной кодировке. Если нужны исключения - объясните и > > > отдельно укажите. > > > > Да. Но такой кодировкой может быть только UTF-8. > Вы говорите об идеальном варианте. Не согласится нельзя. Я говорю о _реальном_ варианте. Которого, однако, нет в Альт. И уж если говорить о приведении системы "в чувство", а не возведении очередного карточного домика костылей и подпорок, то именно сюда стоит прикладывать все усилия. > Но сегодня у меня koi8-r, у других - cp1251, и продлится это ещё > долго. Это продлится до тех пор, пока кто-нибудь не возьмется, да и не перенесет патчи. > > > А кодировка пользователя - это что такое? Его локаль? > > Нет. В этом-то, вообще говоря, еще одна проблема. Мне не > > удалось с наскока провести в общем случае соответствие между > > локалью и кодировкой. > А я считаю, что мне удалось. И без наскока, а проанализировав > glibc, glib, wine, kernel, gettext, mount в нужных местах. Круто. Анализ кода wine вообще должен награждаться медалью за отвагу в мирное время. А вот за его использование, похоже, стоит расстреливать перед строем :-) > > То есть, речь о UTF-8? Так и запишем. > Не записывайте, о чём речь не понял. О том, что единственной кодировкой, которая достойна называться "системной" является UTF-8. > > > Проблемы пользователей, имеющие отличную от системной > > > локаль, давайте обсудим отдельно: > > > - примеры, зачем это нужно > > Хе-хе... Некоторые из наших друзей сочтут этот вопрос > > имперским шовинизмом ;-). > У нас общие друзья? Ну, вот когда Мыхайло Шыгорин з Киэва отправится в официальный дружественный визит в сопредельное государство, вы ж его недругом звать не будете? ;-) 2MS: Миша, прости, у меня терминал в KOI8, я при всем желании не смог бы воспроизвести все буковки, требуемые для. Пришлось транскрибировать :-). > Мои - не сочтут. Как и любые мои вопросы. Звучало не как вопрос, звучало как приговор :-) > > Виталий, знаете, не надо никакой магии. Совсем. Юникс - это > > про простые, даже кондовые решения. > Вы это расскажите тем кускам кода, которые реализуют > локале/чарсетные хаки, вшитые намертво кодировки iso8859-1 и пр. А не нужно их использовать. Совсем. Потому что ломается в самое неподходящее время в самом неподходящем месте. > > Для тех устройств, монтирование которых не отдано на откуп > > HAL'у, настройка проводится в fstab. Причем, скорее всего, > > прямо таки инсталлятором, или соответствующей ему "runtime" > А потом я добавляю новый диск... Тут-то на него HAL и набросится. > А потом я меняю системную локаль... Зачем? ;-) Вы ж написали раньше, что локаль должна быть одна :-). К тому же, если вы смените "системную локаль", некоторые из файликов примут, э-э-э, странный вид :-). > > частью. Для устройств, чьим монтированием заведует HAL, > > прописывается мале^H^H^H^H ну, не очень большой файлик, XML > > все-таки, понимать надо, там маленьких файлов не бывает по > > определению :-), где сказано: если файловая система fat (и > > производные) использовать koi8-r. > С какой стати koi8-r? Я ж написал в отрезанном: решение ДЛЯ МЕНЯ. > Из добавленного параметра SYSMOUNTCHARSET? А SYSMOUNTCHARSET - это расширение данной подпорки на "общий случай". > А если у меня нет HAL, по нынешним временам это уже пахнет ересью. > если я не поставил этот параметр, который - перечитайте еще раз, пожалуйста, отрезанное. Что там откуда берется и какие fallback'и. > новая выдумка (с обоснованием?) на тему ALT specific. Да, выдумка. Без обоснования. Благо на нее было потрачено меньше времени, чем на любое возможное обоснование. > > Хуже того, я публиковал уже решение, которое позволит > > автоматически настраивать HAL на ту кодировку, которая реально > > использовать в системе. > Когда увидим, тогда обсудим. Умеющий читать, натурально... > > Мы уже там :-). > Только пока системы нет. Я не про Сизиф. Ой. Тогда вообще ничего нет... Все лишь призрак... (/me мучительно борется с приступом солипсизма). > > Нет. Как я уже говорил, проставить соответствие между > > кодировкой и локалью в общем случае вот так вот запросто > А я говорю что можно. И дальше что? Вы молодец. > > нельзя. Ну, точнее, я, глядя в info libc, такого способа не > > увидал. > Ну так посмотрите вывод > natspec -i и скажите в чём ощибка :) В отсутствии [должной] поддержки tatar_cyr, официально заявленной как поддерживаемой в ALT? ;-) Вообще, похоже, читать отсюда: http://www.peoples.org.ru/ К тому же, носить в брюхе описание всех возможных кодировок, которые только могут быть доступны в libc, и прочую дрянь - э-э-э, чревато. Не ровен час, проклюнется кто в самый неожиданный момент, потом придется зачищать территорию нажатием на кнопку самоуничтожения. > > . /etc/sysconfig/i18n > > > > : ${SYSFONTACM:=koi8-r} > > : ${SYSMOUNTCHARSET:=$SYSFONTACM} > > > > echo $SYSMOUNTCHARSET > А все, кто потянутся, скажут что это проще? > А как я в программе на C узнаю эту переменную? Я могу написать библиотечную обвязку над exec?* ;-) Ну и getenv еще никто не отменял, вообще-то ;-) > > http://lists.altlinux.ru/pipermail/devel/2005-February/017892.html > Читал. Не проникся простотой. Простотой определения кодировки? Сможете проще? ;-) Или простотой указания кодировки HAL'у? Хе-хе, это новые технологии, понимать надо, программа без зумля в 2005 году выглядит как динозавр, проснувшийся при таянии полярных льдов. В общем, конечно, я не то, чтобы против, в конце-концов, у нас тут джаст фо фан, чтобы кому-либо что-либо указывать. Но, сдается, мне, что Ваша библиотека - это не серебряная пуля, а ...танец вприсядку. Я лучше попробую выковырять из федоры патчи ютээфные.