В vim-gtk2 не видно части файлов в диалоге открытия. При чем список файлов зависит от локали. Например: имеем установленную систему в ru_RU.UTF-8 имеем в домашнем каталоге два файла. У одного имя было набрано в ru_RU.UTF-8, у второго - в ru_RU.KOI8-R запускаем gvim без явного указания локали (т.е. - ru_RU.UTF-8). в списке открываемых файлов не видно файлов, которые были набраны в ru_RU.KOI8-R (хотя бы знаки вопроса показали) запускаем gvim c указанием локали: LANG=ru_RU.KOI8-R LC_ALL=ru_RU.KOI8-R gvim Опять получаем отсутсвие отображения файлов в KOI8-R меняем /etc/sysconfig/i18n, ~/.i18n, перелогиниваемся - упс.. видно файлы в KOI8-R и не видно в ru_RU.UTF8 Подозреваю что и тут виноват libnatspec Steps to Reproduce: 1. 2. 3.й
Диалог открытия файлов просто не отображает русскоязычные файлы в ru_RU.CP1251. При этом в /etc/sysconfig/i18n - ru_RU.UTF-8
Тут vim-gtk2 ведёт себя как и любая другая программа, реагирующая на установленный G_FILENAME_ENCODING. Похоже, glib2/gtk2 построены так, что показывать и обрабатывать в одном списке файлы, записанные в разных кодировках, не умеют. Если это действительно важная проблема, имеет смысл багу перевесить на gtk2, но пока как мне кажется, диалоги gtk2 построены так, что обработать ситуацию неспособны (нет отдельного хранения названия файла и его GUI-представления).
все это конечно хорошо, но почему тогда vim-gtk2 игнорирует пользовательскую локаль ?
Это проблемы GTK2, при чём тут vim? #ifdef USE_FILE_CHOOSER /* We create the dialog each time, so that the button text can be "Open" * or "Save" according to the action. */ fc = gtk_file_chooser_dialog_new((const gchar *)title, GTK_WINDOW(gui.mainwin), saving ? GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN, saving ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc), (const gchar *)dirbuf); gui.browse_fname = NULL; if (gtk_dialog_run(GTK_DIALOG(fc)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fc)); gui.browse_fname = (char_u *)g_strdup(filename); g_free(filename); } gtk_widget_destroy(GTK_WIDGET(fc)); #else
Это проблема бардака на локальной файловой системе. См. тж. #7019. Максимум, чего можно требовать от тулкита -- это, действительно, выводить какими вопросиками при некорректности имени в текущей (невосьмибитной) кодировке.
(In reply to comment #5) > Это проблема бардака на локальной файловой системе. Да нет же. У меня ru_RU.CP1251 и имя каталога в cp1251. В диалоге каталога не видно. natspec -i говорит, что Filename encoding in iconv/nls form: utf8 P.S. Перевешивайте на gtk2
Была небольшая проблема с нем, что G_FILENAME_ENCODING выставлялась до выполнения /etc/profile.d. Исправлено в glib2-2.8.1-alt1
А можно сделать такое же исправление для 2.6.5 из branch-3.0 ?