Интеграция dillo, "быстрого как свет" и sylpheed-claws, удобного, как не знаю что! :)

Автор: Руслан Балькин

Введение

На самом деле, CVS-версии sylpheed-claws очень далеко ушли от обычной sylpheed, одного из самых удобных и функциональных почтовых клиентов для UNIX-систем, по функциональности напоминающего The Bat!. Впрочем, и новые релизы sylpheed-claws, а не только последняя CVS-версия оного, далеко впереди sylpheed, и редкий пользователь, после того, как воспользуется sylpheed-claws, вернется назад на чистый sylpheed.

Интеграция dillo, "быстрого как свет" и sylpheed-claws, удобного, как не знаю что :)

Начиная с 0.8.11claws14, появилась возможность собрать плагин dillo_viewer для sylpheed-claws. Для этого требуется передать параметр --enable-dillo-viewer-plugin скрипту configure. Затем, как обычно, make и make install. Для активации плагина требуется лишь загрузить его - Configuration - Plugins - Load Plugin, и указать там путь к .so - файлу. Например, в моем случае /usr/lib/sylpheed/plugins/dillo_viewer.so Отключение - Configuration - Plugins - Unload Plugin.

Для более старых версий sylpheed-claws, требуется наложить соответствующий патч. Если прямая ссылка не сработает, то попробуйте найти здесь. После этого text/html вложения отображаются прямо в окошке sylpheed-claws при помощи встроенного dillo. Отключение - только пересборка без патча.

Недостатком dillo-viewer является то, что он почему-то в ряде случаев "забывает", что в письме есть html-вложения. На самом деле, такое я видел только в рассылках от Maillist.ru Если накладывать патч от Melvin Hadasht, то все нормально. Впрочем, в будущих версиях dillo-viewer это может быть исправлено, я на эту тему собирался пообщаться с самим Melvin'ом.

Если вдруг, при наложении патча от Melvin Hadasht, при просмотре text/html открывается новое окошко dillo, вместо отображения внутри sylpheed-claws, значит, что-то тут не так. Такое было у меня, появилось и не исчезло, пока я не переписал патчик Мельвина. Можно найти в патче строку вызова dillo, (искать cmd = g_strdup_printf) и вместо нее вписать следующее (мне, по крайней мере помогло):

+  cmd = g_strdup_printf("dillo \"%s\" -f -l -xid %d", filename,
+    GDK_WINDOW_XWINDOW(mimeview->plugview->window));

Что делать, если вам пришел "неверный" html, в котором находится текст, скажем, в koi8-r, а в заголовке указано, что там вовсе cp1251. double-click по отображаемому кракозяблами html, в меню charencoding выбрать правильную кодировку, снова double-click :)

Наложение патчей для поддержки множественных кодировок на dillo

Пересборка dillo 0.6.6 с поддержкой встраивания в GTK-приложения есть процесс сложный. Для этого надо лишь посетить http://melvin.hadasht.free.fr/home/ и скачать оттуда файл с патчем (в котором есть слово xid), и молиться... [...святым, покровительствующим программистам и другим чудакам не от мира сего... :) прим.ред.] Потому что для поддержки множества кодировок, скорее всего, придется править патч руками. Либо сначала наложить патчи для поддержки кодировок, а затем править руками патч Мельвина для интеграции dillo в gtk- приложения.

На самом деле, если вы написали хотя бы одну программу на C и хотя бы раз в своей жизни правили чужие патчи или делали их для других программ, то у вас на это уйдёт 5 минут.

Как уже писалось ранее, процесс сборки dillo очень прост. Однако, есть возможность ликвидировать недостаток dillo - неумение работать с разными кодировками. Для этого скачиваем в домашний или временный каталог файлы http://stuphead.asplinux.ru/dillo/files/stable/dillo-0.7.0-charset.patch и http://stuphead.asplinux.ru/dillo/files/stable/dillo-0.7.0-encodings.patch. Запускаем (указав соответственно путь к файлам)

$ patch -p1 < ~/dillo-0.7.0-encodings.patch
patching file dillorc
...
patching file src/prefs.h
$ patch -p1 < ~/dillo-0.7.0-charset.patch
patching file dillorc
..
Hunk #2 succeeded at 89 (offset 1 line).

2а. (Для CVS-версии)
./autogen.sh --enable-cookies --prefix=/usr
2б (Для тарбола)
./configure --enable-cookies --prefix=/usr

И затем

$ make
$ sudo make install

Если же у Вас старая версия dillo, то потребуется взять патчи для интеграции dillo 0.6.6 в другие программы (Xid), а возможно и остальные 2 патча. Приложить их с помощью patch по аналогии с charset и encodings патчами. Кажется, патчи charset и encodings для dillo 0.6.6 можно взять лишь отсюда:

http://bobuk.ipost.ru/packages/dillo/files/dillo-0.6.6-charset.patch
http://bobuk.ipost.ru/packages/dillo/files/dillo-0.6.6-encodings.patch

P.S. RPM-пакеты для RedHat с поддержкой вышеуказанных патчей можно скачать с http://www.hyperborea.org/software/dillo.html. Для ASPLinux: http://stuphead.asplinux.ru/dillo/. Я собирал с минимальными изменениями spec-файла rpm пакет для ALT Linux, но скачать его нигде нельзя :)