LINUX.ORG.RU

mutt и имена файлов

 


0

2

Есть юникодные письма с прикрепленными файлами. При просмотре прикрепленных файлов и также при сохранении прикрепленного файла на диск русские имена файлов отображаются верно. Но если открыть из mutt этот файл, то вместо русских символов отображаются значки подчеркивания. Как вылечить?

NeoMutt 20180323
В конфиге
set charset=utf-8
set rfc2047_parameters = yes


Ответ на: комментарий от kirk_johnson

Закинь мысль на #neomutt at freenode. Но скорее всего скажут, чтобы ты запостил иссую. PR был бы предпочтительнее. Там не так много кодить, но всё же время.

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

Ты не понял, я им патч хочу отправить. Там фикс тривиальный.

Ну, примут твой патч лет эдак через пять, если вообще примут.

NeoMutt — форк, который активно развивается. Я почти уверен, что эту фигню пофиксят и выкатят в мастер уже через пару часов, а релизится оно раз в пару месяцев, не реже.

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

Ну, примут твой патч лет эдак через пять, если вообще примут.

Прошлый мой патч приняли в течении пары дней.

NeoMutt — форк, который активно развивается.

Автор mutt уже реинтегрировал все важные фичи обратно. И сейчас активно пилит ускорение синхронизации IMAP. Кевин няшечка.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Автор mutt уже реинтегрировал все важные фичи обратно. И сейчас активно пилит ускорение синхронизации IMAP. Кевин няшечка.

Как в истории с Vim/NeoVim, пока не появится явный форк-конкурент, автор оригинала и не пошевелится. Я рад, что у оригинала начали появляться заметные сдвиги в плане развития.

Прошлый мой патч приняли в течении пары дней.

Релизы всё равно выкатываются довольно лениво. Может, это только пока (как случилось с Vim), а может так и будет медленно но верно двигаться к вершине.

В плане гибкости альтернатив Mutt/NeoMutt на данный момент нет, и вряд ли предвидится. Пусть они развиваются друг за счёт друга, а пользователи выберут, что им ближе — консервативный и стабильный Mutt, или много плюшек и периодическое изменение конфига в NeoMutt.

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

Релизы всё равно выкатываются довольно лениво. Может, это только пока (как случилось с Vim), а может так и будет медленно но верно двигаться к вершине.

Каждые два месяца. У mutt просто мейнтейнер поменлся, есличо.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Два или три года назад :)

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

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

Учитывая, что оба есть в популярных дистрах, то да, разницы особой нет.

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

Правильно ли я понимаю, что за преобразование имен файлов отвечает функция mutt_file_sanitize_filename (строка 549) в файле https://neomutt.org/code/file_8c_source.html ?

Что там нужно исправить, чтобы слэш заменялся на «_», а остальные символы нет?

Или где определяется какие символы безопасные (Replace unsafe characters in a filename), а какие нет?

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

Правильно ли я понимаю, что за преобразование имен файлов отвечает функция mutt_file_sanitize_filename (строка 549) в файле https://neomutt.org/code/file_8c_source.html ?

Да.

Что там нужно исправить, чтобы слэш заменялся на «_», а остальные символы нет?

Ты можешь просто не вызывать её, на самом деле. Хотя правильный фикс был бы просто заменить это на UTF8-aware функцию isprint().

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 2)
Ответ на: комментарий от kirk_johnson

Ты можешь просто не вызывать её, на самом деле. Хотя правильный фикс был бы просто замени это на UTF8-aware функцию isprint().

В чем не понимаю совсем, в том не понимаю.

Я попробовал просто удалить из функции || !strchr(safe_chars, *f), но сразу столкнулся с проблемой открытия файлов с пробелами в именах.

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

Патч

Пока сделал такой патч для neomutt, исключив замену символов, не попадающих в список safe_chars, и оставив на замену только пробелы и слэш:

--- a/mutt/file.c
+++ b/mutt/file.c
@@ -553,7 +553,7 @@
 
   for (; *f; f++)
   {
-    if ((slash && *f == '/') || !strchr(safe_chars, *f))
+    if ((slash && *f == '/') || (*f == ' '))
       *f = '_';
   }
 }

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