summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt1
-rw-r--r--ChangeLog3
-rw-r--r--Makefile.am1
-rw-r--r--cmake/FindENCHANT.cmake44
-rw-r--r--configure.ac40
-rw-r--r--doc/de/weechat_user.de.txt36
-rw-r--r--doc/en/weechat_user.en.txt36
-rw-r--r--doc/fr/weechat_user.fr.txt36
-rw-r--r--doc/it/weechat_user.it.txt36
-rw-r--r--doc/ja/weechat_user.ja.txt37
-rw-r--r--po/cs.po15
-rw-r--r--po/de.po17
-rw-r--r--po/es.po17
-rw-r--r--po/fr.po22
-rw-r--r--po/hu.po15
-rw-r--r--po/it.po17
-rw-r--r--po/ja.po17
-rw-r--r--po/pl.po17
-rw-r--r--po/pt_BR.po15
-rw-r--r--po/ru.po15
-rw-r--r--po/weechat.pot15
-rw-r--r--src/plugins/CMakeLists.txt24
-rw-r--r--src/plugins/aspell/CMakeLists.txt14
-rw-r--r--src/plugins/aspell/Makefile.am4
-rw-r--r--src/plugins/aspell/weechat-aspell-command.c110
-rw-r--r--src/plugins/aspell/weechat-aspell-completion.c30
-rw-r--r--src/plugins/aspell/weechat-aspell-speller.c54
-rw-r--r--src/plugins/aspell/weechat-aspell-speller.h10
-rw-r--r--src/plugins/aspell/weechat-aspell.c57
-rw-r--r--src/plugins/aspell/weechat-aspell.h8
30 files changed, 596 insertions, 167 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5fe48c380..0f230bb64 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,6 +69,7 @@ OPTION(ENABLE_GNUTLS "Enable SSLv3/TLS support" ON)
OPTION(ENABLE_LARGEFILE "Enable Large File Support" ON)
OPTION(ENABLE_ALIAS "Enable Alias plugin" ON)
OPTION(ENABLE_ASPELL "Enable Aspell plugin" ON)
+OPTION(ENABLE_ENCHANT "Enable Enchant lib for Aspell plugin" OFF)
OPTION(ENABLE_CHARSET "Enable Charset plugin" ON)
OPTION(ENABLE_DEMO "Enable Demo plugin" OFF)
OPTION(ENABLE_FIFO "Enable FIFO plugin" ON)
diff --git a/ChangeLog b/ChangeLog
index 558d3c2f1..ba128bd97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,7 @@
WeeChat ChangeLog
=================
Sébastien Helleu <flashcode@flashtux.org>
-v0.4.2-dev, 2013-06-05
+v0.4.2-dev, 2013-06-07
This document lists all changes for each version.
@@ -21,6 +21,7 @@ Version 0.4.2 (under dev!)
"layout_window"
* core: fix line alignment when option weechat.look.buffer_time_format is set
to empty string
+* aspell: add support of enchant library (patch #6858)
* irc: add support of special variables $nick/$channel/$server in commands
/allchan and /allserv
* irc: add option irc.look.nick_color_hash: hash algorithm to find nick color
diff --git a/Makefile.am b/Makefile.am
index 27d1d4719..f54348f03 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -39,6 +39,7 @@ EXTRA_DIST = CMakeLists.txt \
cmake/CMakeParseArguments.cmake \
cmake/FindAsciidoc.cmake \
cmake/FindAspell.cmake \
+ cmake/FindENCHANT.cmake \
cmake/FindGCRYPT.cmake \
cmake/FindGettext.cmake \
cmake/FindGnuTLS.cmake \
diff --git a/cmake/FindENCHANT.cmake b/cmake/FindENCHANT.cmake
new file mode 100644
index 000000000..d1e77dda9
--- /dev/null
+++ b/cmake/FindENCHANT.cmake
@@ -0,0 +1,44 @@
+# - Try to find the Enchant spell checker
+# Once done this will define
+#
+# ENCHANT_FOUND - system has ENCHANT
+# ENCHANT_INCLUDE_DIR - the ENCHANT include directory
+# ENCHANT_LIBRARIES - Link these to use ENCHANT
+# ENCHANT_DEFINITIONS - Compiler switches required for using ENCHANT
+
+# Copyright (c) 2006, Zack Rusin, <zack@kde.org>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+if (ENCHANT_INCLUDE_DIR AND ENCHANT_LIBRARIES)
+
+ # in cache already
+ set(ENCHANT_FOUND TRUE)
+
+else (ENCHANT_INCLUDE_DIR AND ENCHANT_LIBRARIES)
+ if (NOT WIN32)
+ # use pkg-config to get the directories and then use these values
+ # in the FIND_PATH() and FIND_LIBRARY() calls
+ find_package(PkgConfig)
+ pkg_check_modules(PC_ENCHANT enchant)
+ set(ENCHANT_DEFINITIONS ${PC_ENCHANT_CFLAGS_OTHER})
+ endif (NOT WIN32)
+
+ find_path(ENCHANT_INCLUDE_DIR
+ NAMES enchant++.h
+ HINTS ${PC_ENCHANT_INCLUDEDIR}
+ ${PC_ENCHANT_INCLUDE_DIRS}
+ PATH_SUFFIXES enchant )
+
+ find_library(ENCHANT_LIBRARIES NAMES enchant
+ HINTS ${PC_ENCHANT_LIBDIR}
+ ${PC_ENCHANT_LIBRARY_DIRS} )
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(ENCHANT DEFAULT_MSG ENCHANT_INCLUDE_DIR ENCHANT_LIBRARIES )
+
+ mark_as_advanced(ENCHANT_INCLUDE_DIR ENCHANT_LIBRARIES)
+
+endif (ENCHANT_INCLUDE_DIR AND ENCHANT_LIBRARIES)
diff --git a/configure.ac b/configure.ac
index 2ad06db93..fcae183b0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -128,6 +128,7 @@ AC_ARG_ENABLE(gnutls, [ --disable-gnutls turn off gnutls support (
AC_ARG_ENABLE(largefile, [ --disable-largefile turn off Large File Support (default=on)],enable_largefile=$enableval,enable_largefile=yes)
AC_ARG_ENABLE(alias, [ --disable-alias turn off Alias plugin (default=compiled)],enable_alias=$enableval,enable_alias=yes)
AC_ARG_ENABLE(aspell, [ --disable-aspell turn off Aspell plugin (default=compiled)],enable_aspell=$enableval,enable_aspell=yes)
+AC_ARG_ENABLE(enchant, [ --enable-enchant turn on Enchant lib for Aspell plugin (default=off)],enable_enchant=$enableval,enable_enchant=no)
AC_ARG_ENABLE(charset, [ --disable-charset turn off Charset plugin (default=compiled if found)],enable_charset=$enableval,enable_charset=yes)
AC_ARG_ENABLE(demo, [ --enable-demo turn on Demo plugin (default=off)],enable_demo=$enableval,enable_demo=no)
AC_ARG_ENABLE(fifo, [ --disable-fifo turn off Fifo plugin (default=compiled)],enable_fifo=$enableval,enable_fifo=yes)
@@ -275,24 +276,35 @@ fi
# ---------------------------------- aspell ------------------------------------
if test "x$enable_aspell" = "xyes" ; then
- ASPELL_CFLAGS=""
- ASPELL_LFLAGS=""
+ ac_found_enchant_lib="no"
+ if test "x$enable_enchant" = "xyes" ; then
+ #PKG_CHECK_MODULES(ENCHANT, [enchant], [CFLAGS="$CFLAGS -DUSE_ENCHANT"],
+ PKG_CHECK_MODULES(ENCHANT, [enchant], ac_found_enchant_lib="yes", ac_found_enchant_lib="no")
+ fi
+ if test "x$ac_found_enchant_lib" = "xyes" ; then
+ CFLAGS="$CFLAGS -DUSE_ENCHANT"
+ ASPELL_LIB_USED="enchant"
+ else
+ ASPELL_CFLAGS=""
+ ASPELL_LFLAGS=""
- AC_CHECK_HEADER(aspell.h,ac_found_aspell_header="yes",ac_found_aspell_header="no")
- AC_CHECK_LIB(aspell,new_aspell_speller,ac_found_aspell_lib="yes",ac_found_aspell_lib="no")
+ AC_CHECK_HEADER(aspell.h,ac_found_aspell_header="yes",ac_found_aspell_header="no")
+ AC_CHECK_LIB(aspell,new_aspell_speller,ac_found_aspell_lib="yes",ac_found_aspell_lib="no")
- AC_MSG_CHECKING(for aspell headers and librairies)
- if test "x$ac_found_aspell_header" = "xno" -o "x$ac_found_aspell_lib" = "xno" ; then
- AC_MSG_RESULT(no)
- AC_MSG_WARN([
+ AC_MSG_CHECKING(for aspell headers and librairies)
+ if test "x$ac_found_aspell_header" = "xno" -o "x$ac_found_aspell_lib" = "xno" ; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([
*** Aspell headers and/or libraries couldn't be found on your system.
*** Try to install them with your software package manager.
*** WeeChat will be built without Aspell support.])
- enable_aspell="no"
- not_found="$not_found aspell"
- else
- AC_MSG_RESULT(yes)
- ASPELL_LFLAGS="$ASPELL_LFLAGS -laspell"
+ enable_aspell="no"
+ not_found="$not_found aspell"
+ else
+ AC_MSG_RESULT(yes)
+ ASPELL_LFLAGS="$ASPELL_LFLAGS -laspell"
+ ASPELL_LIB_USED="aspell"
+ fi
fi
else
not_asked="$not_asked aspell"
@@ -1127,7 +1139,7 @@ if test "x$enable_alias" = "xyes"; then
listplugins="$listplugins alias"
fi
if test "x$enable_aspell" = "xyes"; then
- listplugins="$listplugins aspell"
+ listplugins="$listplugins aspell($ASPELL_LIB_USED)"
fi
if test "x$enable_charset" = "xyes"; then
listplugins="$listplugins charset"
diff --git a/doc/de/weechat_user.de.txt b/doc/de/weechat_user.de.txt
index 408ddbffb..5aa480ec8 100644
--- a/doc/de/weechat_user.de.txt
+++ b/doc/de/weechat_user.de.txt
@@ -86,24 +86,24 @@ welche Pakete optional genutzt werden können.
[width="100%",cols="5,^3,^3,13",options="header"]
|========================================
-| Paket ^(1)^ | Version | benötigt | Funktion
-| cmake | | *ja* | zum kompilieren (autotools ist möglich. cmake wird aber empfohlen)
-| libncursesw5-dev ^(2)^ | | *ja* | ncurses Oberfläche
-| libcurl4-gnutls-dev | | *ja* | URL Transfer
-| zlib1g-dev | | *ja* | Kompression für Pakete, die mittels Relay- (WeeChat Protokoll), Script-Erweiterung übertragen werden
-| libgcrypt11-dev | | *ja* | IRC SASL Authentifikation (DH-BLOWFISH/DH-AES), Skript-Erweiterung
-| libgnutls-dev | ≥ 2.2.0 | | SSL Verbindung zu einem IRC Server, Unterstützung von SSL in der Relay-Erweiterung
-| gettext | | | Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch)
-| ca-certificates | | | Zertifikate für SSL Verbindungen
-| libaspell-dev | | | aspell Erweiterung
-| python-dev | ≥ 2.5 ^(3)^ | | python Erweiterung
-| libperl-dev | | | perl Erweiterung
-| ruby1.9.1-dev | ≥ 1.8 | | ruby Erweiterung
-| liblua5.1-0-dev | | | lua Erweiterung
-| tcl-dev | ≥ 8.5 | | tcl Erweiterung
-| guile-2.0-dev | ≥ 2.0 | | guile (scheme) Erweiterung
-| asciidoc | ≥ 8.5.0 | | erstellt Dokumentation (HTML Dateien)
-| source-highlight | | | Syntax Highlight für Quelltext in HTML Dokumentation
+| Paket ^(1)^ | Version | benötigt | Funktion
+| cmake | | *ja* | zum kompilieren (autotools ist möglich. cmake wird aber empfohlen)
+| libncursesw5-dev ^(2)^ | | *ja* | ncurses Oberfläche
+| libcurl4-gnutls-dev | | *ja* | URL Transfer
+| zlib1g-dev | | *ja* | Kompression für Pakete, die mittels Relay- (WeeChat Protokoll), Script-Erweiterung übertragen werden
+| libgcrypt11-dev | | *ja* | IRC SASL Authentifikation (DH-BLOWFISH/DH-AES), Skript-Erweiterung
+| libgnutls-dev | ≥ 2.2.0 | | SSL Verbindung zu einem IRC Server, Unterstützung von SSL in der Relay-Erweiterung
+| gettext | | | Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch)
+| ca-certificates | | | Zertifikate für SSL Verbindungen
+| libaspell-dev oder libenchant-dev | | | aspell Erweiterung
+| python-dev | ≥ 2.5 ^(3)^ | | python Erweiterung
+| libperl-dev | | | perl Erweiterung
+| ruby1.9.1-dev | ≥ 1.8 | | ruby Erweiterung
+| liblua5.1-0-dev | | | lua Erweiterung
+| tcl-dev | ≥ 8.5 | | tcl Erweiterung
+| guile-2.0-dev | ≥ 2.0 | | guile (scheme) Erweiterung
+| asciidoc | ≥ 8.5.0 | | erstellt Dokumentation (HTML Dateien)
+| source-highlight | | | Syntax Highlight für Quelltext in HTML Dokumentation
|========================================
[NOTE]
diff --git a/doc/en/weechat_user.en.txt b/doc/en/weechat_user.en.txt
index 6ea7428b8..4a96bd5ed 100644
--- a/doc/en/weechat_user.en.txt
+++ b/doc/en/weechat_user.en.txt
@@ -86,24 +86,24 @@ compile WeeChat.
[width="100%",cols="5,^3,^3,13",options="header"]
|========================================
-| Package ^(1)^ | Version | Required | Feature
-| cmake | | *yes* | build (autotools still possible, but cmake is recommended)
-| libncursesw5-dev ^(2)^ | | *yes* | ncurses interface
-| libcurl4-gnutls-dev | | *yes* | URL transfer
-| zlib1g-dev | | *yes* | compression of packets in relay plugin (weechat protocol), script plugin
-| libgcrypt11-dev | | *yes* | IRC SASL authentication (DH-BLOWFISH/DH-AES), script plugin
-| libgnutls-dev | ≥ 2.2.0 | | SSL connection to IRC server, support of SSL in relay plugin
-| gettext | | | internationalization (translation of messages; base language is English)
-| ca-certificates | | | certificates for SSL connections
-| libaspell-dev | | | aspell plugin
-| python-dev | ≥ 2.5 ^(3)^ | | python plugin
-| libperl-dev | | | perl plugin
-| ruby1.9.1-dev | ≥ 1.8 | | ruby plugin
-| liblua5.1-0-dev | | | lua plugin
-| tcl-dev | ≥ 8.5 | | tcl plugin
-| guile-2.0-dev | ≥ 2.0 | | guile (scheme) plugin
-| asciidoc | ≥ 8.5.0 | | build documentation (HTML files)
-| source-highlight | | | syntax highlight for sources in HTML documentation
+| Package ^(1)^ | Version | Required | Feature
+| cmake | | *yes* | build (autotools still possible, but cmake is recommended)
+| libncursesw5-dev ^(2)^ | | *yes* | ncurses interface
+| libcurl4-gnutls-dev | | *yes* | URL transfer
+| zlib1g-dev | | *yes* | compression of packets in relay plugin (weechat protocol), script plugin
+| libgcrypt11-dev | | *yes* | IRC SASL authentication (DH-BLOWFISH/DH-AES), script plugin
+| libgnutls-dev | ≥ 2.2.0 | | SSL connection to IRC server, support of SSL in relay plugin
+| gettext | | | internationalization (translation of messages; base language is English)
+| ca-certificates | | | certificates for SSL connections
+| libaspell-dev or libenchant-dev | | | aspell plugin
+| python-dev | ≥ 2.5 ^(3)^ | | python plugin
+| libperl-dev | | | perl plugin
+| ruby1.9.1-dev | ≥ 1.8 | | ruby plugin
+| liblua5.1-0-dev | | | lua plugin
+| tcl-dev | ≥ 8.5 | | tcl plugin
+| guile-2.0-dev | ≥ 2.0 | | guile (scheme) plugin
+| asciidoc | ≥ 8.5.0 | | build documentation (HTML files)
+| source-highlight | | | syntax highlight for sources in HTML documentation
|========================================
[NOTE]
diff --git a/doc/fr/weechat_user.fr.txt b/doc/fr/weechat_user.fr.txt
index 750043d25..efc7f8873 100644
--- a/doc/fr/weechat_user.fr.txt
+++ b/doc/fr/weechat_user.fr.txt
@@ -88,24 +88,24 @@ compiler WeeChat.
[width="100%",cols="5,^3,^3,13",options="header"]
|========================================
-| Paquet ^(1)^ | Version | Requis | Fonctionnalité
-| cmake | | *oui* | construction (autotools toujours possible, mais cmake est recommandé)
-| libncursesw5-dev ^(2)^ | | *oui* | interface ncurses
-| libcurl4-gnutls-dev | | *oui* | transfert d'URL
-| zlib1g-dev | | *oui* | compression des paquets dans l'extension relay (protocole weechat), extension script
-| libgcrypt11-dev | | *oui* | authentification IRC SASL (DH-BLOWFISH/DH-AES), extension script
-| libgnutls-dev | ≥ 2.2.0 | | connexion SSL au serveur IRC, support SSL dans l'extension relay
-| gettext | | | internationalisation (traduction des messages; la langue de base est l'anglais)
-| ca-certificates | | | certificats pour les connexions SSL
-| libaspell-dev | | | extension aspell
-| python-dev | ≥ 2.5 ^(3)^ | | extension python
-| libperl-dev | | | extension perl
-| ruby1.9.1-dev | ≥ 1.8 | | extension ruby
-| liblua5.1-0-dev | | | extension lua
-| tcl-dev | ≥ 8.5 | | extension tcl
-| guile-2.0-dev | ≥ 2.0 | | extension guile (scheme)
-| asciidoc | ≥ 8.5.0 | | construction de la documentation (fichiers HTML)
-| source-highlight | | | coloration des sources dans la documentation HTML
+| Paquet ^(1)^ | Version | Requis | Fonctionnalité
+| cmake | | *oui* | construction (autotools toujours possible, mais cmake est recommandé)
+| libncursesw5-dev ^(2)^ | | *oui* | interface ncurses
+| libcurl4-gnutls-dev | | *oui* | transfert d'URL
+| zlib1g-dev | | *oui* | compression des paquets dans l'extension relay (protocole weechat), extension script
+| libgcrypt11-dev | | *oui* | authentification IRC SASL (DH-BLOWFISH/DH-AES), extension script
+| libgnutls-dev | ≥ 2.2.0 | | connexion SSL au serveur IRC, support SSL dans l'extension relay
+| gettext | | | internationalisation (traduction des messages; la langue de base est l'anglais)
+| ca-certificates | | | certificats pour les connexions SSL
+| libaspell-dev ou libenchant-dev | | | extension aspell
+| python-dev | ≥ 2.5 ^(3)^ | | extension python
+| libperl-dev | | | extension perl
+| ruby1.9.1-dev | ≥ 1.8 | | extension ruby
+| liblua5.1-0-dev | | | extension lua
+| tcl-dev | ≥ 8.5 | | extension tcl
+| guile-2.0-dev | ≥ 2.0 | | extension guile (scheme)
+| asciidoc | ≥ 8.5.0 | | construction de la documentation (fichiers HTML)
+| source-highlight | | | coloration des sources dans la documentation HTML
|========================================
[NOTE]
diff --git a/doc/it/weechat_user.it.txt b/doc/it/weechat_user.it.txt
index a6ba73c75..c3fbc35ff 100644
--- a/doc/it/weechat_user.it.txt
+++ b/doc/it/weechat_user.it.txt
@@ -90,27 +90,27 @@ compilare WeeChat.
[width="100%",cols="5,^3,^3,13",options="header"]
|========================================
-| Pacchetto ^(1)^ | Versione | Richiesto | Caratteristica
-| cmake | | *sì* | compilazione (ancora possibile con autotools, ma si raccomanda cmake)
-| libncursesw5-dev ^(2)^ | | *sì* | interfaccia ncurses
-| libcurl4-gnutls-dev | | *sì* | trasferimento URL
+| Pacchetto ^(1)^ | Versione | Richiesto | Caratteristica
+| cmake | | *sì* | compilazione (ancora possibile con autotools, ma si raccomanda cmake)
+| libncursesw5-dev ^(2)^ | | *sì* | interfaccia ncurses
+| libcurl4-gnutls-dev | | *sì* | trasferimento URL
// TRANSLATION MISSING
-| zlib1g-dev | | *sì* | compression of packets in relay plugin (weechat protocol), script plugin
+| zlib1g-dev | | *sì* | compression of packets in relay plugin (weechat protocol), script plugin
// TRANSLATION MISSING
-| libgcrypt11-dev | | *sì* | IRC SASL authentication (DH-BLOWFISH/DH-AES), script plugin
+| libgcrypt11-dev | | *sì* | IRC SASL authentication (DH-BLOWFISH/DH-AES), script plugin
// TRANSLATION MISSING
-| libgnutls-dev | ≥ 2.2.0 | | connessione SSL al server IRC, support of SSL in relay plugin
-| gettext | | | internazionalizzazione (traduzione dei messaggi; la lingua base è l'inglese)
-| ca-certificates | | | certificati per le connessioni SSL
-| libaspell-dev | | | plugin aspell
-| python-dev | ≥ 2.5 ^(3)^ | | plugin python
-| libperl-dev | | | plugin perl
-| ruby1.9.1-dev | ≥ 1.8 | | plugin ruby
-| liblua5.1-0-dev | | | plugin lua
-| tcl-dev | ≥ 8.5 | | plugin tcl
-| guile-2.0-dev | ≥ 2.0 | | plugin guile (scheme)
-| asciidoc | ≥ 8.5.0 | | compilazione della documentazione (file HTML)
-| source-highlight | | | evidenziazione della sintassi per i sorgenti nella documentazione HTML
+| libgnutls-dev | ≥ 2.2.0 | | connessione SSL al server IRC, support of SSL in relay plugin
+| gettext | | | internazionalizzazione (traduzione dei messaggi; la lingua base è l'inglese)
+| ca-certificates | | | certificati per le connessioni SSL
+| libaspell-dev o libenchant-dev | | | plugin aspell
+| python-dev | ≥ 2.5 ^(3)^ | | plugin python
+| libperl-dev | | | plugin perl
+| ruby1.9.1-dev | ≥ 1.8 | | plugin ruby
+| liblua5.1-0-dev | | | plugin lua
+| tcl-dev | ≥ 8.5 | | plugin tcl
+| guile-2.0-dev | ≥ 2.0 | | plugin guile (scheme)
+| asciidoc | ≥ 8.5.0 | | compilazione della documentazione (file HTML)
+| source-highlight | | | evidenziazione della sintassi per i sorgenti nella documentazione HTML
|========================================
[NOTE]
diff --git a/doc/ja/weechat_user.ja.txt b/doc/ja/weechat_user.ja.txt
index c9d35d770..b5f482a8f 100644
--- a/doc/ja/weechat_user.ja.txt
+++ b/doc/ja/weechat_user.ja.txt
@@ -78,24 +78,25 @@ WeeChat は cmake または autotools を使ってコンパイルできます (c
[width="100%",cols="5,^3,^3,13",options="header"]
|========================================
-| パッケージ ^(1)^ | バージョン | 必須 | 機能
-| cmake | | *yes* | ビルド (autotools でも可能ですが、cmake を推奨します)
-| libncursesw5-dev ^(2)^ | | *yes* | ncurses インターフェイス
-| libcurl4-gnutls-dev | | *yes* | URL 転送
-| zlib1g-dev | | *yes* | relay プラグインでパケットを圧縮 (weechat プロトコル)、スクリプトプラグイン
-| libgcrypt11-dev | | *yes* | IRC SASL 認証 (DH-BLOWFISH/DH-AES)、スクリプトプラグイン
-| libgnutls-dev | ≥ 2.2.0 | | IRC サーバへの SSL 接続
-| gettext | | | 国際化 (メッセージの翻訳; ベース言語は英語です)
-| ca-certificates | | | SSL 接続に必要な証明書、relay プラグインで SSL サポート
-| libaspell-dev | | | aspell プラグイン
-| python-dev | ≥ 2.5 ^(3)^ | | python プラグイン
-| libperl-dev | | | perl プラグイン
-| ruby1.9.1-dev | ≥ 1.8 | | ruby プラグイン
-| liblua5.1-0-dev | | | lua プラグイン
-| tcl-dev | ≥ 8.5 | | tcl プラグイン
-| guile-2.0-dev | ≥ 2.0 | | guile (scheme) プラグイン
-| asciidoc | ≥ 8.5.0 | | 文書の生成 (HTML ファイル)
-| source-highlight | | | HTML 文書に含まれるソースコードのシンタックスハイライト
+| パッケージ ^(1)^ | バージョン | 必須 | 機能
+| cmake | | *yes* | ビルド (autotools でも可能ですが、cmake を推奨します)
+| libncursesw5-dev ^(2)^ | | *yes* | ncurses インターフェイス
+| libcurl4-gnutls-dev | | *yes* | URL 転送
+| zlib1g-dev | | *yes* | relay プラグインでパケットを圧縮 (weechat プロトコル)、スクリプトプラグイン
+| libgcrypt11-dev | | *yes* | IRC SASL 認証 (DH-BLOWFISH/DH-AES)、スクリプトプラグイン
+| libgnutls-dev | ≥ 2.2.0 | | IRC サーバへの SSL 接続
+| gettext | | | 国際化 (メッセージの翻訳; ベース言語は英語です)
+| ca-certificates | | | SSL 接続に必要な証明書、relay プラグインで SSL サポート
+// TRANSLATION MISSING
+| libaspell-dev or libenchant-dev | | | aspell プラグイン
+| python-dev | ≥ 2.5 ^(3)^ | | python プラグイン
+| libperl-dev | | | perl プラグイン
+| ruby1.9.1-dev | ≥ 1.8 | | ruby プラグイン
+| liblua5.1-0-dev | | | lua プラグイン
+| tcl-dev | ≥ 8.5 | | tcl プラグイン
+| guile-2.0-dev | ≥ 2.0 | | guile (scheme) プラグイン
+| asciidoc | ≥ 8.5.0 | | 文書の生成 (HTML ファイル)
+| source-highlight | | | HTML 文書に含まれるソースコードのシンタックスハイライト
|========================================
[NOTE]
diff --git a/po/cs.po b/po/cs.po
index 2247f0cd5..9314b4735 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -3841,12 +3841,17 @@ msgstr "%s: slovo \"%s\" přidáno do soukromého slovníku"
msgid "%s%s: failed to add word to personal dictionary"
msgstr "%s%s: selhalo přidání slova do vlastního slovníku"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " %s (plugin: %s)"
+
#, fuzzy
-msgid "Aspell is enabled"
+msgid "Spell checking is enabled"
msgstr "1 pokud jsou filtry povoleny"
#, fuzzy
-msgid "Aspell is disabled"
+msgid "Spell checking is disabled"
msgstr "Filtrování zpráv zakázáno"
#, fuzzy, c-format
@@ -3987,6 +3992,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr "%s: upozornění: slovník \"%s\" není dostupný ve vašem systému"
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s%s: nemohu vytvořit server \"%s\""
+
#, fuzzy
msgid "Charset conversions"
msgstr "verze WeeChat"
diff --git a/po/de.po b/po/de.po
index 34ef2defd..69233f53d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <weechatter@arcor.de>\n"
@@ -4296,10 +4296,17 @@ msgid "%s%s: failed to add word to personal dictionary"
msgstr ""
"%s%s: Es kann kein Wort zum persönlichen Wörterbuch hinzugefügt werden."
-msgid "Aspell is enabled"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " %s (Erweiterung: %s)"
+
+#, fuzzy
+msgid "Spell checking is enabled"
msgstr "Aspell ist aktiviert"
-msgid "Aspell is disabled"
+#, fuzzy
+msgid "Spell checking is disabled"
msgstr "Aspell ist deaktiviert"
#, c-format
@@ -4464,6 +4471,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr "%s: Hinweis: das Wörterbuch \"%s\" ist auf dem Rechner nicht verfügbar"
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s%s: Der Server \"%s\" kann nicht anlegt werden"
+
msgid "Charset conversions"
msgstr "Zeichensatzkonvertierung"
diff --git a/po/es.po b/po/es.po
index b27d8c448..aa07d7daf 100644
--- a/po/es.po
+++ b/po/es.po
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4038,10 +4038,17 @@ msgstr "%s: palabra \"%s\" agregada al diccionario personal"
msgid "%s%s: failed to add word to personal dictionary"
msgstr "%s%s: no se pudo agregar una palabra al diccionario personal"
-msgid "Aspell is enabled"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " %s (plugin: %s)"
+
+#, fuzzy
+msgid "Spell checking is enabled"
msgstr "Aspell activado"
-msgid "Aspell is disabled"
+#, fuzzy
+msgid "Spell checking is disabled"
msgstr "Aspell desactivado"
#, c-format
@@ -4188,6 +4195,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr "%s: atención: diccionario \"%s\" no está disponible en su sistema"
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s%s: no es posible crear el servidor \"%s\""
+
msgid "Charset conversions"
msgstr "Conversiones de mapa de caracteres"
diff --git a/po/fr.po b/po/fr.po
index c21f8b3d6..b59ad09a8 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
-"PO-Revision-Date: 2013-06-05 10:14+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
+"PO-Revision-Date: 2013-06-07 20:48+0200\n"
"Last-Translator: Sebastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@@ -4175,11 +4175,16 @@ msgstr "%s: mot \"%s\" ajouté dans le dictionnaire personnel"
msgid "%s%s: failed to add word to personal dictionary"
msgstr "%s%s: impossible d'ajouter le mot dans le dictionnaire personnel"
-msgid "Aspell is enabled"
-msgstr "Aspell est activé"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, c-format
+msgid "%s (using %s)"
+msgstr "%s (en utilisant %s)"
+
+msgid "Spell checking is enabled"
+msgstr "La vérification orthographique est activée"
-msgid "Aspell is disabled"
-msgstr "Aspell est désactivé"
+msgid "Spell checking is disabled"
+msgstr "La vérification orthographique est désactivée"
#, c-format
msgid "Default dictionary: %s"
@@ -4337,6 +4342,11 @@ msgstr ""
"%s: attention: le dictionnaire \\\"%s\\\" n'est pas disponible sur votre "
"système"
+#, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr ""
+"%s%s: impossible de créer le correcteur orthographique pour la langue \"%s\""
+
msgid "Charset conversions"
msgstr "Conversions de charset"
diff --git a/po/hu.po b/po/hu.po
index 6bfb8a67d..6d4e37769 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -3465,12 +3465,17 @@ msgstr ""
msgid "%s%s: failed to add word to personal dictionary"
msgstr ""
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " (nem található bővítőmodul)\n"
+
#, fuzzy
-msgid "Aspell is enabled"
+msgid "Spell checking is enabled"
msgstr "a felhasználók le lettek tiltva"
#, fuzzy
-msgid "Aspell is disabled"
+msgid "Spell checking is disabled"
msgstr "Nincs aliasz definiálva.\n"
#, fuzzy, c-format
@@ -3591,6 +3596,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr ""
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s nem sikerült a szervert létrehozni\n"
+
#, fuzzy
msgid "Charset conversions"
msgstr "WeeChat szlogen"
diff --git a/po/it.po b/po/it.po
index c0ff77d6f..16a8538c6 100644
--- a/po/it.po
+++ b/po/it.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4099,10 +4099,17 @@ msgstr "%s: la parola \"%s\" è stata aggiunta al dizionario personale"
msgid "%s%s: failed to add word to personal dictionary"
msgstr "%s%s: impossibile aggiungere la parola al dizionario personale"
-msgid "Aspell is enabled"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " %s (plugin: %s)"
+
+#, fuzzy
+msgid "Spell checking is enabled"
msgstr "Aspell è abilitato"
-msgid "Aspell is disabled"
+#, fuzzy
+msgid "Spell checking is disabled"
msgstr "Aspell è disabilitato"
#, c-format
@@ -4256,6 +4263,10 @@ msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr ""
"%s: attenzione: il dizionario \"%s\" non è disponibile su questo sistema"
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s%s: impossibile creare il server \"%s\""
+
msgid "Charset conversions"
msgstr "Conversione del set caratteri"
diff --git a/po/ja.po b/po/ja.po
index 1ea4ba2b2..ab3ab731b 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/WeeChat>\n"
@@ -4017,10 +4017,17 @@ msgstr "%s: 単語 \"%s\" を個人辞書に追加"
msgid "%s%s: failed to add word to personal dictionary"
msgstr "%s%s: 単語の個人辞書への登録に失敗"
-msgid "Aspell is enabled"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " %s (プラグイン: %s)"
+
+#, fuzzy
+msgid "Spell checking is enabled"
msgstr "Aspell を有効化します"
-msgid "Aspell is disabled"
+#, fuzzy
+msgid "Spell checking is disabled"
msgstr "Aspell を無効化します"
#, c-format
@@ -4171,6 +4178,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr "%s: 警告: 辞書 \"%s\" がこのシステム上では利用できません"
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s%s: サーバ \"%s\" に接続できません"
+
msgid "Charset conversions"
msgstr "文字コード変換"
diff --git a/po/pl.po b/po/pl.po
index 2023396f5..25cba62ed 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4108,10 +4108,17 @@ msgstr "%s: słowo \"%s\" dodane do osobistego słownika"
msgid "%s%s: failed to add word to personal dictionary"
msgstr "%s%s: nie udało się dodać słowa do osobistego słownika"
-msgid "Aspell is enabled"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " %s (wtyczka: %s)"
+
+#, fuzzy
+msgid "Spell checking is enabled"
msgstr "Aspell jest włączony"
-msgid "Aspell is disabled"
+#, fuzzy
+msgid "Spell checking is disabled"
msgstr "Aspell jest wyłączony"
#, c-format
@@ -4263,6 +4270,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr "%s: ostrzeżenie: słownik \"%s\" nie jest dostępny w Twoim systemie"
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s%s: nie można utworzyć serwera \"%s\""
+
msgid "Charset conversions"
msgstr "Konwersja kodowania"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index a860d9e21..c65b2b8b0 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:55+0200\n"
"Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -3900,12 +3900,17 @@ msgstr "%s: palavra \"%s\" adicionada ao dicionário pessoal"
msgid "%s%s: failed to add word to personal dictionary"
msgstr "%s%s: falha ao adicionar palavra no dicionário pessoal"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " %s (plugin: %s)"
+
#, fuzzy
-msgid "Aspell is enabled"
+msgid "Spell checking is enabled"
msgstr "Mouse está habilitado"
#, fuzzy
-msgid "Aspell is disabled"
+msgid "Spell checking is disabled"
msgstr "Mouse está desabilitado"
#, fuzzy, c-format
@@ -4041,6 +4046,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr "%s: aviso: dicionário \"%s\" não está disponível em seu sistema"
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s%s: não foi possível criar diretório para registros (\"%s\")"
+
#, fuzzy
msgid "Charset conversions"
msgstr "versão do WeeChat"
diff --git a/po/ru.po b/po/ru.po
index e7d6cb1c9..b7d5f820e 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-05-20 16:55+0200\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -3497,12 +3497,17 @@ msgstr ""
msgid "%s%s: failed to add word to personal dictionary"
msgstr ""
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, fuzzy, c-format
+msgid "%s (using %s)"
+msgstr " (нет pluginа)\n"
+
#, fuzzy
-msgid "Aspell is enabled"
+msgid "Spell checking is enabled"
msgstr "команда users отключена"
#, fuzzy
-msgid "Aspell is disabled"
+msgid "Spell checking is disabled"
msgstr "Сокращения не заданы.\n"
#, fuzzy, c-format
@@ -3623,6 +3628,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr ""
+#, fuzzy, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr "%s не могу создать сервер \"%s\"\n"
+
#, fuzzy
msgid "Charset conversions"
msgstr "слоган WeeChat"
diff --git a/po/weechat.pot b/po/weechat.pot
index 75e2654c9..338eea3eb 100644
--- a/po/weechat.pot
+++ b/po/weechat.pot
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-06-05 10:12+0200\n"
+"POT-Creation-Date: 2013-06-07 20:09+0200\n"
"PO-Revision-Date: 2013-02-14 18:20+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -3085,10 +3085,15 @@ msgstr ""
msgid "%s%s: failed to add word to personal dictionary"
msgstr ""
-msgid "Aspell is enabled"
+#. TRANSLATORS: second "%s" is "aspell" or "enchant"
+#, c-format
+msgid "%s (using %s)"
+msgstr ""
+
+msgid "Spell checking is enabled"
msgstr ""
-msgid "Aspell is disabled"
+msgid "Spell checking is disabled"
msgstr ""
#, c-format
@@ -3205,6 +3210,10 @@ msgstr ""
msgid "%s: warning: dictionary \"%s\" is not available on your system"
msgstr ""
+#, c-format
+msgid "%s%s: error: unable to create speller for lang \"%s\""
+msgstr ""
+
msgid "Charset conversions"
msgstr ""
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
index b34acd92e..3a644ff77 100644
--- a/src/plugins/CMakeLists.txt
+++ b/src/plugins/CMakeLists.txt
@@ -44,11 +44,25 @@ IF(ENABLE_ALIAS)
ENDIF(ENABLE_ALIAS)
IF(ENABLE_ASPELL)
- # Check for aspell libraries
- FIND_PACKAGE(Aspell)
- IF(ASPELL_FOUND)
- ADD_SUBDIRECTORY( aspell )
- ENDIF(ASPELL_FOUND)
+ IF(ENABLE_ENCHANT)
+ # Check for enchant libraries
+ FIND_PACKAGE(ENCHANT)
+ IF(ENCHANT_FOUND)
+ ADD_SUBDIRECTORY( aspell )
+ ELSE(ENCHANT_FOUND)
+ # Check for aspell libraries
+ FIND_PACKAGE(Aspell)
+ IF(ASPELL_FOUND)
+ ADD_SUBDIRECTORY( aspell )
+ ENDIF(ASPELL_FOUND)
+ ENDIF(ENCHANT_FOUND)
+ ELSE(ENABLE_ENCHANT)
+ # Check for aspell libraries
+ FIND_PACKAGE(Aspell)
+ IF(ASPELL_FOUND)
+ ADD_SUBDIRECTORY( aspell )
+ ENDIF(ASPELL_FOUND)
+ ENDIF(ENABLE_ENCHANT)
ENDIF(ENABLE_ASPELL)
IF(ENABLE_CHARSET)
diff --git a/src/plugins/aspell/CMakeLists.txt b/src/plugins/aspell/CMakeLists.txt
index eadb701e1..d81163de7 100644
--- a/src/plugins/aspell/CMakeLists.txt
+++ b/src/plugins/aspell/CMakeLists.txt
@@ -28,9 +28,15 @@ weechat-aspell-info.c weechat-aspell-info.h
weechat-aspell-speller.c weechat-aspell-speller.h)
SET_TARGET_PROPERTIES(aspell PROPERTIES PREFIX "")
-IF(ASPELL_FOUND)
- INCLUDE_DIRECTORIES(${ASPELL_INCLUDE_PATH})
- TARGET_LINK_LIBRARIES(aspell ${ASPELL_LIBRARY})
-ENDIF(ASPELL_FOUND)
+IF(ENCHANT_FOUND)
+ INCLUDE_DIRECTORIES(${ENCHANT_INCLUDE_DIR})
+ TARGET_LINK_LIBRARIES(aspell ${ENCHANT_LIBRARIES})
+ ADD_DEFINITIONS(-DUSE_ENCHANT)
+ELSE(ENCHANT_FOUND)
+ IF(ASPELL_FOUND)
+ INCLUDE_DIRECTORIES(${ASPELL_INCLUDE_PATH})
+ TARGET_LINK_LIBRARIES(aspell ${ASPELL_LIBRARY})
+ ENDIF(ASPELL_FOUND)
+ENDIF(ENCHANT_FOUND)
INSTALL(TARGETS aspell LIBRARY DESTINATION ${LIBDIR}/plugins)
diff --git a/src/plugins/aspell/Makefile.am b/src/plugins/aspell/Makefile.am
index c101d05a0..218856c5a 100644
--- a/src/plugins/aspell/Makefile.am
+++ b/src/plugins/aspell/Makefile.am
@@ -18,7 +18,7 @@
# along with WeeChat. If not, see <http://www.gnu.org/licenses/>.
#
-INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(ASPELL_CFLAGS)
+INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(ASPELL_CFLAGS) $(ENCHANT_CFLAGS)
libdir = ${weechat_libdir}/plugins
@@ -39,6 +39,6 @@ aspell_la_SOURCES = weechat-aspell.c \
weechat-aspell-speller.c \
weechat-aspell-speller.h
aspell_la_LDFLAGS = -module
-aspell_la_LIBADD = $(ASPELL_LFLAGS)
+aspell_la_LIBADD = $(ASPELL_LFLAGS) $(ENCHANT_LIBS)
EXTRA_DIST = CMakeLists.txt
diff --git a/src/plugins/aspell/weechat-aspell-command.c b/src/plugins/aspell/weechat-aspell-command.c
index 9ef908776..ef35d9fa4 100644
--- a/src/plugins/aspell/weechat-aspell-command.c
+++ b/src/plugins/aspell/weechat-aspell-command.c
@@ -72,22 +72,81 @@ weechat_aspell_command_iso_to_country (const char *code)
}
/*
+ * Displays one dictionary when using enchant.
+ */
+
+#ifdef USE_ENCHANT
+void
+weechat_aspell_enchant_dict_describe_cb (const char *lang_tag,
+ const char *provider_name,
+ const char *provider_desc,
+ const char *provider_file,
+ void *user_data)
+{
+ char *country, *lang, *pos, *iso;
+ char str_dict[256];
+
+ /* make C compiler happy */
+ (void) provider_name;
+ (void) provider_desc;
+ (void) provider_file;
+ (void) user_data;
+
+ lang = NULL;
+ country = NULL;
+
+ pos = strchr (lang_tag, '_');
+
+ if (pos)
+ {
+ iso = weechat_strndup (lang_tag, pos - lang_tag);
+ if (iso)
+ {
+ lang = weechat_aspell_command_iso_to_lang (iso);
+ country = weechat_aspell_command_iso_to_country (pos + 1);
+ free (iso);
+ }
+ }
+ else
+ lang = weechat_aspell_command_iso_to_lang ((char *)lang_tag);
+
+ if (lang)
+ {
+ if (country)
+ {
+ snprintf (str_dict, sizeof (str_dict), "%-22s %s (%s)",
+ lang_tag, lang, country);
+ }
+ else
+ {
+ snprintf (str_dict, sizeof (str_dict), "%-22s %s",
+ lang_tag, lang);
+ }
+ weechat_printf (NULL, " %s", str_dict);
+ }
+
+ if (lang)
+ free (lang);
+ if (country)
+ free (country);
+}
+#endif
+
+/*
* Displays list of aspell dictionaries installed on system.
*/
void
weechat_aspell_command_speller_list_dicts ()
{
- char *country, *lang, *pos;
+#ifndef USE_ENCHANT
+ char *country, *lang, *pos, *iso;
char str_dict[256], str_country[128];
struct AspellConfig *config;
AspellDictInfoList *list;
AspellDictInfoEnumeration *elements;
const AspellDictInfo *dict;
-
- config = new_aspell_config();
- list = get_aspell_dict_info_list (config);
- elements = aspell_dict_info_list_elements (list);
+#endif
weechat_printf (NULL, "");
weechat_printf (NULL,
@@ -95,6 +154,14 @@ weechat_aspell_command_speller_list_dicts ()
_( "%s dictionaries list:"),
ASPELL_PLUGIN_NAME);
+#ifdef USE_ENCHANT
+ enchant_broker_list_dicts (broker, weechat_aspell_enchant_dict_describe_cb,
+ NULL);
+#else
+ config = new_aspell_config();
+ list = get_aspell_dict_info_list (config);
+ elements = aspell_dict_info_list_elements (list);
+
while ((dict = aspell_dict_info_enumeration_next (elements)) != NULL)
{
country = NULL;
@@ -102,10 +169,13 @@ weechat_aspell_command_speller_list_dicts ()
if (pos)
{
- pos[0] = '\0';
- lang = weechat_aspell_command_iso_to_lang ((char*)dict->code);
- pos[0] = '_';
- country = weechat_aspell_command_iso_to_country (pos + 1);
+ iso = weechat_strndup (dict->code, pos - dict->code);
+ if (iso)
+ {
+ lang = weechat_aspell_command_iso_to_lang (iso);
+ country = weechat_aspell_command_iso_to_country (pos + 1);
+ free (iso);
+ }
}
else
lang = weechat_aspell_command_iso_to_lang ((char*)dict->code);
@@ -132,6 +202,7 @@ weechat_aspell_command_speller_list_dicts ()
delete_aspell_dict_info_enumeration (elements);
delete_aspell_config (config);
+#endif
}
/*
@@ -169,7 +240,11 @@ weechat_aspell_command_add_word (struct t_gui_buffer *buffer, const char *dict,
const char *word)
{
struct t_aspell_speller_buffer *ptr_speller_buffer;
+#ifdef USE_ENCHANT
+ EnchantDict *new_speller, *ptr_speller;
+#else
AspellSpeller *new_speller, *ptr_speller;
+#endif
new_speller = NULL;
@@ -221,6 +296,9 @@ weechat_aspell_command_add_word (struct t_gui_buffer *buffer, const char *dict,
ptr_speller = ptr_speller_buffer->spellers[0];
}
+#ifdef USE_ENCHANT
+ enchant_dict_add (ptr_speller, word, strlen (word));
+#else
if (aspell_speller_add_to_personal (ptr_speller,
word,
strlen (word)) == 1)
@@ -231,6 +309,7 @@ weechat_aspell_command_add_word (struct t_gui_buffer *buffer, const char *dict,
}
else
goto error;
+#endif
goto end;
@@ -265,9 +344,16 @@ weechat_aspell_command_cb (void *data, struct t_gui_buffer *buffer,
{
/* display aspell status */
weechat_printf (NULL, "");
- weechat_printf (NULL, "%s",
- (aspell_enabled) ?
- _("Aspell is enabled") : _("Aspell is disabled"));
+ weechat_printf (NULL,
+ /* TRANSLATORS: second "%s" is "aspell" or "enchant" */
+ _("%s (using %s)"),
+ (aspell_enabled) ? _("Spell checking is enabled") : _("Spell checking is disabled"),
+#ifdef USE_ENCHANT
+ "enchant"
+#else
+ "aspell"
+#endif
+ );
default_dict = weechat_config_string (weechat_aspell_config_check_default_dict);
weechat_printf (NULL,
_("Default dictionary: %s"),
diff --git a/src/plugins/aspell/weechat-aspell-completion.c b/src/plugins/aspell/weechat-aspell-completion.c
index 36ccf24f6..8de810667 100644
--- a/src/plugins/aspell/weechat-aspell-completion.c
+++ b/src/plugins/aspell/weechat-aspell-completion.c
@@ -55,6 +55,28 @@ weechat_aspell_completion_langs_cb (void *data, const char *completion_item,
}
/*
+ * Adds a dictionary to completion when using enchant.
+ */
+
+#ifdef USE_ENCHANT
+void
+weechat_aspell_completion_enchant_add_dict_cb (const char *lang_tag,
+ const char *provider_name,
+ const char *provider_desc,
+ const char *provider_file,
+ void *user_data)
+{
+ /* make C compiler happy */
+ (void) provider_name;
+ (void) provider_desc;
+ (void) provider_file;
+
+ weechat_hook_completion_list_add ((struct t_gui_completion *)user_data,
+ lang_tag, 0, WEECHAT_LIST_POS_SORT);
+}
+#endif
+
+/*
* Adds aspell dictionaries (only installed dictionaries) to completion list.
*/
@@ -64,16 +86,23 @@ weechat_aspell_completion_dicts_cb (void *data,
struct t_gui_buffer *buffer,
struct t_gui_completion *completion)
{
+#ifndef USE_ENCHANT
struct AspellConfig *config;
AspellDictInfoList *list;
AspellDictInfoEnumeration *elements;
const AspellDictInfo *dict;
+#endif
/* make C compiler happy */
(void) data;
(void) completion_item;
(void) buffer;
+#ifdef USE_ENCHANT
+ enchant_broker_list_dicts (broker,
+ weechat_aspell_completion_enchant_add_dict_cb,
+ completion);
+#else
config = new_aspell_config ();
list = get_aspell_dict_info_list (config);
elements = aspell_dict_info_list_elements (list);
@@ -86,6 +115,7 @@ weechat_aspell_completion_dicts_cb (void *data,
delete_aspell_dict_info_enumeration (elements);
delete_aspell_config (config);
+#endif
return WEECHAT_RC_OK;
}
diff --git a/src/plugins/aspell/weechat-aspell-speller.c b/src/plugins/aspell/weechat-aspell-speller.c
index 0b674b4b8..5578e49c9 100644
--- a/src/plugins/aspell/weechat-aspell-speller.c
+++ b/src/plugins/aspell/weechat-aspell-speller.c
@@ -53,6 +53,9 @@ struct t_hashtable *weechat_aspell_speller_buffer = NULL;
int
weechat_aspell_speller_dict_supported (const char *lang)
{
+#ifdef USE_ENCHANT
+ return enchant_broker_dict_exists (broker, lang);
+#else
struct AspellConfig *config;
AspellDictInfoList *list;
AspellDictInfoEnumeration *elements;
@@ -78,6 +81,7 @@ weechat_aspell_speller_dict_supported (const char *lang)
delete_aspell_config (config);
return rc;
+#endif
}
/*
@@ -119,12 +123,20 @@ weechat_aspell_speller_check_dictionaries (const char *dict_list)
* Returns pointer to new aspell speller, NULL if error.
*/
+#ifdef USE_ENCHANT
+EnchantDict *
+#else
AspellSpeller *
+#endif
weechat_aspell_speller_new (const char *lang)
{
+#ifdef USE_ENCHANT
+ EnchantDict *new_speller;
+#else
AspellConfig *config;
AspellCanHaveError *ret;
AspellSpeller *new_speller;
+#endif
struct t_infolist *infolist;
if (!lang)
@@ -137,23 +149,40 @@ weechat_aspell_speller_new (const char *lang)
ASPELL_PLUGIN_NAME, lang);
}
+#ifdef USE_ENCHANT
+ new_speller = enchant_broker_request_dict (broker, lang);
+ if (!new_speller)
+ {
+ weechat_printf (NULL,
+ _("%s%s: error: unable to create speller for lang \"%s\""),
+ weechat_prefix ("error"), ASPELL_PLUGIN_NAME,
+ lang);
+ return NULL;
+ }
+#else
/* create a speller instance for the newly created cell */
config = new_aspell_config();
aspell_config_replace (config, "lang", lang);
+#endif
- /* apply all options on speller */
+ /* apply all options */
infolist = weechat_infolist_get ("option", NULL, "aspell.option.*");
if (infolist)
{
while (weechat_infolist_next (infolist))
{
+#ifdef USE_ENCHANT
+ /* TODO: set option with enchant */
+#else
aspell_config_replace (config,
weechat_infolist_string (infolist, "option_name"),
weechat_infolist_string (infolist, "value"));
+#endif
}
weechat_infolist_free (infolist);
}
+#ifndef USE_ENCHANT
ret = new_aspell_speller (config);
if (aspell_error (ret) != 0)
@@ -168,10 +197,14 @@ weechat_aspell_speller_new (const char *lang)
}
new_speller = to_aspell_speller (ret);
+#endif
+
weechat_hashtable_set (weechat_aspell_spellers, lang, new_speller);
+#ifndef USE_ENCHANT
/* free configuration */
delete_aspell_config (config);
+#endif
return new_speller;
}
@@ -277,7 +310,11 @@ void
weechat_aspell_speller_free_value_cb (struct t_hashtable *hashtable,
const void *key, void *value)
{
+#ifdef USE_ENCHANT
+ EnchantDict *ptr_speller;
+#else
AspellSpeller *ptr_speller;
+#endif
/* make C compiler happy */
(void) hashtable;
@@ -289,10 +326,15 @@ weechat_aspell_speller_free_value_cb (struct t_hashtable *hashtable,
ASPELL_PLUGIN_NAME, (const char *)key);
}
- /* free aspell data */
+ /* free speller */
+#ifdef USE_ENCHANT
+ ptr_speller = (EnchantDict *)value;
+ enchant_broker_free_dict (broker, ptr_speller);
+#else
ptr_speller = (AspellSpeller *)value;
aspell_speller_save_all_word_lists (ptr_speller);
delete_aspell_speller (ptr_speller);
+#endif
}
/*
@@ -307,7 +349,11 @@ weechat_aspell_speller_buffer_new (struct t_gui_buffer *buffer)
char **dicts;
int num_dicts, i;
struct t_aspell_speller_buffer *new_speller_buffer;
+#ifdef USE_ENCHANT
+ EnchantDict *ptr_speller;
+#else
AspellSpeller *ptr_speller;
+#endif
if (!buffer)
return NULL;
@@ -330,7 +376,11 @@ weechat_aspell_speller_buffer_new (struct t_gui_buffer *buffer)
if (dicts && (num_dicts > 0))
{
new_speller_buffer->spellers =
+#ifdef USE_ENCHANT
+ malloc ((num_dicts + 1) * sizeof (EnchantDict *));
+#else
malloc ((num_dicts + 1) * sizeof (AspellSpeller *));
+#endif
if (new_speller_buffer->spellers)
{
for (i = 0; i < num_dicts; i++)
diff --git a/src/plugins/aspell/weechat-aspell-speller.h b/src/plugins/aspell/weechat-aspell-speller.h
index 15c67564a..6eb57e88e 100644
--- a/src/plugins/aspell/weechat-aspell-speller.h
+++ b/src/plugins/aspell/weechat-aspell-speller.h
@@ -23,7 +23,11 @@
struct t_aspell_speller_buffer
{
- AspellSpeller **spellers; /* pointer to spellers for buf. */
+#ifdef USE_ENCHANT
+ EnchantDict **spellers; /* enchant spellers for buffer */
+#else
+ AspellSpeller **spellers; /* aspell spellers for buffer */
+#endif
char *modifier_string; /* last modifier string */
int input_pos; /* position of cursor in input */
char *modifier_result; /* last modifier result */
@@ -34,7 +38,11 @@ extern struct t_hashtable *weechat_aspell_speller_buffer;
extern int weechat_aspell_speller_dict_supported (const char *lang);
extern void weechat_aspell_speller_check_dictionaries (const char *dict_list);
+#ifdef USE_ENCHANT
+extern EnchantDict *weechat_aspell_speller_new (const char *lang);
+#else
extern AspellSpeller *weechat_aspell_speller_new (const char *lang);
+#endif
extern void weechat_aspell_speller_remove_unused ();
extern struct t_aspell_speller_buffer *weechat_aspell_speller_buffer_new (struct t_gui_buffer *buffer);
extern int weechat_aspell_speller_init ();
diff --git a/src/plugins/aspell/weechat-aspell.c b/src/plugins/aspell/weechat-aspell.c
index b2f6ca839..5e8d2fa62 100644
--- a/src/plugins/aspell/weechat-aspell.c
+++ b/src/plugins/aspell/weechat-aspell.c
@@ -47,6 +47,10 @@ struct t_weechat_plugin *weechat_aspell_plugin = NULL;
int aspell_enabled = 0;
+#ifdef USE_ENCHANT
+EnchantBroker *broker = NULL;
+#endif
+
/*
* aspell supported languages, updated on 2012-07-05
* URL: ftp://ftp.gnu.org/gnu/aspell/dict/0index.html
@@ -410,7 +414,11 @@ weechat_aspell_check_word (struct t_gui_buffer *buffer,
{
for (i = 0; speller_buffer->spellers[i]; i++)
{
+#ifdef USE_ENCHANT
+ if (enchant_dict_check (speller_buffer->spellers[i], word, strlen (word)) == 0)
+#else
if (aspell_speller_check (speller_buffer->spellers[i], word, -1) == 1)
+#endif
return 1;
}
}
@@ -434,8 +442,13 @@ weechat_aspell_get_suggestions (struct t_aspell_speller_buffer *speller_buffer,
int i, size, max_suggestions, num_suggestions;
char *suggestions, *suggestions2;
const char *ptr_word;
+#ifdef USE_ENCHANT
+ char **elements;
+ size_t num_elements;
+#else
const AspellWordList *list;
AspellStringEnumeration *elements;
+#endif
max_suggestions = weechat_config_integer (weechat_aspell_config_check_suggestions);
if (max_suggestions < 0)
@@ -451,6 +464,37 @@ weechat_aspell_get_suggestions (struct t_aspell_speller_buffer *speller_buffer,
{
for (i = 0; speller_buffer->spellers[i]; i++)
{
+#ifdef USE_ENCHANT
+ elements = enchant_dict_suggest (speller_buffer->spellers[i], word,
+ -1, &num_elements);
+ if (elements)
+ {
+ if (num_elements > 0)
+ {
+ num_suggestions = 0;
+ while ((ptr_word = elements[num_suggestions]) != NULL)
+ {
+ size += strlen (ptr_word) + ((suggestions[0]) ? 1 : 0);
+ suggestions2 = realloc (suggestions, size);
+ if (!suggestions2)
+ {
+ free (suggestions);
+ enchant_dict_free_string_list (speller_buffer->spellers[i],
+ elements);
+ return NULL;
+ }
+ suggestions = suggestions2;
+ if (suggestions[0])
+ strcat (suggestions, (num_suggestions == 0) ? "/" : ",");
+ strcat (suggestions, ptr_word);
+ num_suggestions++;
+ if ((max_suggestions >= 0) && (num_suggestions == max_suggestions))
+ break;
+ }
+ }
+ enchant_dict_free_string_list (speller_buffer->spellers[i], elements);
+ }
+#else
list = aspell_speller_suggest (speller_buffer->spellers[i], word, -1);
if (list)
{
@@ -476,6 +520,7 @@ weechat_aspell_get_suggestions (struct t_aspell_speller_buffer *speller_buffer,
}
delete_aspell_string_enumeration (elements);
}
+#endif
}
}
@@ -876,6 +921,13 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
weechat_plugin = plugin;
+#ifdef USE_ENCHANT
+ /* acquire enchant broker */
+ broker = enchant_broker_init ();
+ if (!broker)
+ return WEECHAT_RC_ERROR;
+#endif
+
if (!weechat_aspell_speller_init ())
return WEECHAT_RC_ERROR;
@@ -926,5 +978,10 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
weechat_aspell_speller_end ();
+#ifdef USE_ENCHANT
+ /* release enchant broker */
+ enchant_broker_free (broker);
+#endif
+
return WEECHAT_RC_OK;
}
diff --git a/src/plugins/aspell/weechat-aspell.h b/src/plugins/aspell/weechat-aspell.h
index 7f26608fd..8d0935b28 100644
--- a/src/plugins/aspell/weechat-aspell.h
+++ b/src/plugins/aspell/weechat-aspell.h
@@ -21,7 +21,11 @@
#ifndef __WEECHAT_ASPELL_H
#define __WEECHAT_ASPELL_H 1
+#ifdef USE_ENCHANT
+#include <enchant.h>
+#else
#include <aspell.h>
+#endif
#define weechat_plugin weechat_aspell_plugin
#define ASPELL_PLUGIN_NAME "aspell"
@@ -32,6 +36,10 @@ struct t_aspell_code
char *name;
};
+#ifdef USE_ENCHANT
+extern EnchantBroker *broker;
+#endif
+
extern struct t_weechat_plugin *weechat_aspell_plugin;
extern int aspell_enabled;
extern struct t_aspell_code aspell_langs[];