Перешли на использование glib-ini функций вместо своего велосипеда. Глибовские функции хотят только UTF-8 в конфиге. Есть пользователи, у которых не только UTF-8 системная кодировка. Сделали перекодировку "на лету" из UTF-8 в сискодировку.
Но осталась проблема, требующая "мозгового штурма": пользователь обновляет мс, у пользователя остались старые его конфиги (в KOI8-R, например). Что с ними делать? MC напрочь откажется с ними работать (вернее, с теми параметрами, которые содержат не- UTF-8).
Варианты:
1) решать средствами пакетного менеджера (в постинсталл триггерах). Не совсем хорошо, ибо слишком много условий: разная кодироавка у пользователей на одном хосте, пользователи не только в /home и т.д.;
2) пытаться распознать в mc кодировку ini-файла пользователя и автоматом переконвертить его. Не совсем хорошо, ибо операция разовая, хардкодить не хотелось бы;
3) пытаться распознать кодировку, если не айс, то делать бэкап конфига, стартовать с дефолтной конфигурацией и созданием нового конфига. Предупредить пользователя диалоговым окном об данном действии.
Что лучше/хуже? Свои варианты?