LINUX.ORG.RU

Midnight Commander: конфиг в UTF-8 и не-UTF сискодировки


0

0

Перешли на использование glib-ini функций вместо своего велосипеда. Глибовские функции хотят только UTF-8 в конфиге. Есть пользователи, у которых не только UTF-8 системная кодировка. Сделали перекодировку "на лету" из UTF-8 в сискодировку.

Но осталась проблема, требующая "мозгового штурма": пользователь обновляет мс, у пользователя остались старые его конфиги (в KOI8-R, например). Что с ними делать? MC напрочь откажется с ними работать (вернее, с теми параметрами, которые содержат не- UTF-8).

Варианты:

1) решать средствами пакетного менеджера (в постинсталл триггерах). Не совсем хорошо, ибо слишком много условий: разная кодироавка у пользователей на одном хосте, пользователи не только в /home и т.д.;

2) пытаться распознать в mc кодировку ini-файла пользователя и автоматом переконвертить его. Не совсем хорошо, ибо операция разовая, хардкодить не хотелось бы;

3) пытаться распознать кодировку, если не айс, то делать бэкап конфига, стартовать с дефолтной конфигурацией и созданием нового конфига. Предупредить пользователя диалоговым окном об данном действии.

Что лучше/хуже? Свои варианты?

★★★★★

>Есть пользователи, у которых не только UTF-8 системная кодировка.

Они сами на свою попу ищут приключений.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Тем не менее, про них тоже не стоит забывать. У каждого могут быть свои причины, по которым используется сискодировка, отличная от UTF-8. Становиться в позу "Все, у кого не UTF-8 - ССЗБ" не вариант. Поэтому про них подумать тоже стоит, ИМХО.


Slavaz ★★★★★
() автор топика
Ответ на: комментарий от Slavaz

>Поэтому про них подумать тоже стоит

ну подумай

dimon555 ★★★★★
()

С точки зрения пользователя, лучший вариант будет

" 2) пытаться распознать в mc кодировку ini-файла пользователя и автоматом переконвертить его. "

Но с точки зрения программиста "Не совсем хорошо, ибо операция разовая, хардкодить не хотелось бы".


Вот и решайте для кого вы делаете программу - для себя как программиста чтоб время занять, или для пользователя.

xintrea
()

Кстати, ничего не мешает определить системную кодировку локали из переменной LANG, и конвертнуть в UTF-8. iconv есть в любом дистре. И ничо хардкорить ненада.

xintrea
()
Ответ на: комментарий от KRoN73

>>Есть пользователи, у которых не только UTF-8 системная кодировка.

>Они сами на свою попу ищут приключений.

Датычо? Экой ты смешной какой... Ну, давай, расскажи мне, какие-такие приключения я ищу со своей KOI8-R... Я посмеюсь с тебя.

akk ★★★★★
()
Ответ на: комментарий от akk

>Датычо? Экой ты смешной какой... Ну, давай, расскажи мне, какие-такие приключения я ищу со своей KOI8-R... Я посмеюсь с тебя.

Это ты из 2001 года пишешь?

Ненавижу хостинги на FreeBSD только за то, что подключившись по ssh хрен нормально отредактируешь русские файлы, приходится извращаться.

Turbid ★★★★★
()
Ответ на: комментарий от akk

>Ну, давай, расскажи мне, какие-такие приключения я ищу со своей KOI8-R...

Вот, например, авторам продукта головную боль порождаешь. А другие просто махнут рукой.

KRoN73 ★★★★★
()
Ответ на: комментарий от Turbid

>Ненавижу хостинги на FreeBSD только за то, что подключившись по ssh хрен нормально отредактируешь русские файлы, приходится извращаться.

Нормальные хостинги и под Фрёй уже utf-8 понимают :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>Вот, например, авторам продукта головную боль порождаешь. А другие просто махнут рукой.

Ответ неверный. Предлагаю всё-таки назвать приключение на _мою_ опу.

akk ★★★★★
()
Ответ на: комментарий от akk

>> Вот, например, авторам продукта головную боль порождаешь. А другие просто махнут рукой.

> Ответ неверный. Предлагаю всё-таки назвать приключение на _мою_ опу.


Это не у тебя приключения, а у тех кто оказался в ситуации, что UTF-8 уже есть, а файлового менеджера в текст-моде который бы нормально UTF-8 держал, и позволял быстро смотреть и редактировать файлы в однобайтных кодировках, до сих пор нет.

Вот и пользуются такие люди крайностями - либо GUI фм и GUI редактор, либо MC с vim вместо нормального редактора.

xintrea
()

Эту проблему нельзя решить в postinstall - вы же не собираетесь шарить по домашним каталогам всех пользователей?

Просто проверяйте при старте и спрашивайте пользователя, что делать.

tailgunner ★★★★★
()
Ответ на: комментарий от Turbid

В профиле напиши export LC_ALL=blah-blah-blah и не будет этой явно надуманной проблемы.

true_admin ★★★★★
()

Ввести ключ конфига config_encoding, и если его нет, или он не =utf8, то ругаться юзеру, предлагать дописать автоматически этот ключ и выходить.

www_linux_org_ru ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.