Sylpheedはスペルチェック機能をサポートしています。
しかし、Windowsだと無効です。使えません。
それではあまりに悲しいので、どうにかできないか試行錯誤してみました。
まず、スペルチェック自体はGtkSpellを利用して提供しているようです。
で、GtkSpellはEnchantに依存しています。
Enchantはというと複数のバックエンドに対応しています。
というわけで、以下ができればいいわけです。
- バックエンドのビルド
- Enchantのビルド
- GtkSpellのビルド
まずバックエンドですが、hunspell 1.3.2についてはmingwビルドがありました。のでこいつを使用します。
https://github.com/zdenop/hunspell-mingw
bin,include,libをc:/MinGW/localへと複写します。
次にenchant 1.6.0をビルドします。
暫定的に以下のパッチを当てます。(このやりかたはまっとうではないので注意)
--- C:/MinGW/msys/1.0/home/khayashi/pkg/enchant-1.6.0/src/enchant.c.orig Fri Apr 02 05:53:37 2010 +++ C:/MinGW/msys/1.0/home/khayashi/pkg/enchant-1.6.0/src/enchant.c Sat Jan 07 10:36:34 2012 @@ -1428,8 +1428,9 @@ UINT old_error_mode = SetErrorMode(SEM_FAILCRITICALERRORS); #endif filename = g_build_filename (dir_name, dir_entry, NULL); - - module = g_module_open (filename, (GModuleFlags) 0); + + module = g_module_open (dir_entry, (GModuleFlags) 0); + if (module) { if (g_module_symbol
./configure --prefix=/mingw/local --with-system-myspell=no --with-myspell-dir=./share/myspell/dicts --with-ispell-dir=./share/ispell/dicts --with-uspell-dir=./share/uspell/dicts --target=i686-mingw32 make make install
次にgtkspell 2.0.16をビルドします。(Sylpheedビルド用のGTKディレクトリに突っ込んでいます。)
./configure --prefix=/home/khayashi/Project/sylpheed/GTK --enable-shared make make install
最後にsylpheedをビルドします。--enable-gtkspellの追加を忘れずに。
#!/bin/sh export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/include export HOME=/home/khayashi/Project/sylpheed ./configure --prefix=$HOME/dist --with-localedir=lib/locale \ --enable-oniguruma \ --enable-gtkspell \ --enable-threads \ 'CC=gcc -mtune=pentium3' CFLAGS=-O3
で、あとは以下のdllをsylpheed.exeと同じ階層にコピーします。あと、libsylph系も。
- libenchant-1.dll
- libenchant_myspell.dll
- libgcc_s_dw2-1.dll
- libstdc++-6.dll
辞書については以下のディレクトリに配置します。(よくわからないのでUbuntuからまるっともってきました。)
./share/myspell/dicts
ここまでやると、こんな感じにスペルチェックが有効になります。
enchantをビルドするときにパッチ当てていましたが、本来は以下のような指定をまじめに指定すれば不要なはずです。
(今はc:/MinGWにインストールされているほうを中途半端に参照してしまっているのでとりあえず動くという仕組み。)
- ENCHANT_PREFIX_DIR
- ENCHANT_GLOBAL_MODULE_DIR
- ENCHANT_GLOBAL_ORDERING