Дела такие... Из main.c из main() вызывается load_setup();
в setup.c из load_setup() вызывается init_translation_table();
в charset.c init_translation_table() вызывается checkIfCodepageUTF(cpsource);
там же, в checkIfCodepageUTF() пытается читать из структуры кодировки.
if (_cp < 0 )
_cp = 0;
cp_name = codepages[_cp].id; /* которых на самом деле нет */
И при инициализации в ф-ции load_codepages_list(), если не находит
возвращает -1.
fname = concat_dir_and_file(mc_home, CHARSETS_INDEX);
if (!(f = fopen (fname, "r"))) {
g_free (fname);
fname = NULL;
fname = concat_dir_and_file (mc_home_alt, CHARSETS_INDEX);
if ( ! (f = fopen (fname, "r")) ) {
fprintf (stderr, _("Warning: file %s not found\n"), fname);
g_free(fname);
fname = NULL;
}
return -1;
}
g_free (fname);
fname = NULL;
Так что в функцию checkIfCodepageUTF() попадает -1
и она прекрасно отрабатывает
if (_cp < 0 ) /* -1 - условие истино */
_cp = 0; /* а хули толку */
cp_name = codepages[_cp].id; /* их-то всё равно нет */
:) Доброе утро, я спать!