Интеграция
dillo, "быстрого как свет" и sylpheed-claws,
удобного, как не знаю что! :)
Автор: (C) Руслан Балькин
На самом деле, CVS-версии sylpheed-claws очень далеко ушли от обычной sylpheed, одного из самых удобных и функциональных почтовых клиентов для UNIX-систем, по функциональности напоминающего The Bat!. Впрочем, и новые релизы sylpheed-claws, а не только последняя CVS-версия оного, далеко впереди sylpheed, и редкий пользователь, после того, как воспользуется sylpheed-claws, вернется назад на чистый sylpheed.
Начиная с 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 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, но скачать его нигде нельзя :)
Copyright (c) 2003, Ruslan N. Balkin