summaryrefslogtreecommitdiff
path: root/extra/gnome-spell
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /extra/gnome-spell
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'extra/gnome-spell')
-rw-r--r--extra/gnome-spell/PKGBUILD30
-rw-r--r--extra/gnome-spell/gnome-spell-enchant.diff551
2 files changed, 581 insertions, 0 deletions
diff --git a/extra/gnome-spell/PKGBUILD b/extra/gnome-spell/PKGBUILD
new file mode 100644
index 000000000..020398658
--- /dev/null
+++ b/extra/gnome-spell/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 49931 2009-08-16 21:48:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-spell
+pkgver=1.0.8
+pkgrel=2
+pkgdesc="Spell Checking Support for Gnome"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgnomeui>=2.24.1' 'enchant>=1.4.2')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2
+ gnome-spell-enchant.diff)
+md5sums=('6ccc46b4e3dc7cb1c6d413358e35d445' '12a357212809e0f0aba8c08d1372e60a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/gnome-spell-enchant.diff" || return 1
+ libtoolize --force || return 1
+ aclocal || return 1
+ autoconf || return 1
+ automake || return 1
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnome-spell/gnome-spell-enchant.diff b/extra/gnome-spell/gnome-spell-enchant.diff
new file mode 100644
index 000000000..7c0493813
--- /dev/null
+++ b/extra/gnome-spell/gnome-spell-enchant.diff
@@ -0,0 +1,551 @@
+? INSTALL
+? autom4te.cache
+? depcomp
+? gnome-spell-enchant.diff
+? gnome-spell-zip
+? intltool-extract
+? intltool-extract.in
+? intltool-merge
+? intltool-merge.in
+? intltool-update
+? intltool-update.in
+? missing
+? mkinstalldirs
+? stamp-h1
+? gnome-spell/GNOME_Spell.server
+? gnome-spell/GNOME_Spell.server.in
+? gnome-spell/
+Index: configure.in
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/configure.in,v
+retrieving revision 1.86
+diff -u -p -u -p -r1.86 configure.in
+--- configure.in 10 Feb 2006 12:08:11 -0000 1.86
++++ configure.in 2 Apr 2006 14:31:45 -0000
+@@ -68,34 +68,6 @@ AC_DEFINE_UNQUOTED(API_VERSION, "${API_V
+ AC_SUBST(API_VERSION)
+
+ dnl
+-dnl aspell
+-dnl
+-
+-AC_ARG_WITH(aspell-prefix, [ --with-aspell-prefix=DIR
+- specify under which prefix aspell is installed.], with_aspell_prefix="$withval", )
+-
+-if test "x$with_aspell_prefix" != "x"; then
+- saved_LDFLAGS=$LDFLAGS
+- LDFLAGS="-L$with_aspell_prefix/lib "$LDFLAGS
+- ASPELL_INC="-I$with_aspell_prefix/include"
+- ASPELL_LIBS="-L$with_aspell_prefix/lib -laspell"
+- ASPELL_DATA="$with_aspell_prefix/lib/aspell"
+-else
+- LDFLAGS="-L`aspell config prefix`/lib "$LDFLAGS
+- ASPELL_INC="-I`aspell config prefix`/include"
+- ASPELL_LIBS="-L`aspell config prefix`/lib -laspell"
+- ASPELL_DICT="`aspell config dict-dir`"
+-fi
+-AC_CHECK_LIB(aspell,new_aspell_config,,AC_MSG_ERROR([gnome-spell cannot be built without aspell library]),)
+-if test "x$with_aspell_prefix" != "x"; then
+- LDFLAGS=$saved_LDFLAGS
+-fi
+-
+-AC_SUBST(ASPELL_DICT)
+-AC_SUBST(ASPELL_INC)
+-AC_SUBST(ASPELL_LIBS)
+-
+-dnl
+ dnl flags
+ dnl
+
+@@ -104,7 +76,7 @@ AC_SUBST(CFLAGS)
+ AC_SUBST(CPPFLAGS)
+ AC_SUBST(LDFLAGS)
+
+-GNOME_SPELL_MODULES="libgnomeui-2.0 >= 1.112.1 libbonoboui-2.0 >= 1.112.1 libglade-2.0 >= 1.99.9"
++GNOME_SPELL_MODULES="libgnomeui-2.0 >= 1.112.1 libbonoboui-2.0 >= 1.112.1 libglade-2.0 >= 1.99.9 enchant >= 1.2.5"
+ PKG_CHECK_MODULES(GNOME_SPELL, $GNOME_SPELL_MODULES)
+ AC_SUBST(GNOME_SPELL_CFLAGS)
+ AC_SUBST(GNOME_SPELL_LIBS)
+Index: gnome-spell/Makefile.am
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/gnome-spell/Makefile.am,v
+retrieving revision 1.34
+diff -u -p -u -p -r1.34 Makefile.am
+--- gnome-spell/Makefile.am 19 Jan 2006 23:37:50 -0000 1.34
++++ gnome-spell/Makefile.am 2 Apr 2006 14:31:46 -0000
+@@ -7,13 +7,11 @@ END =
+
+ INCLUDES = \
+ -I$(srcdir) \
+- $(ASPELL_INC) \
+ -DPREFIX=\""$(prefix)"\" \
+ -DGNOMEDATADIR=\""$(datadir)"\" \
+ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
+ -DGLADE_DATADIR=\"$(gladedir)\" \
+ -DPLUGIN_DIR=\""$(PLUGIN_DIR)"\" \
+- -DASPELL_DICT=\""$(ASPELL_DICT)"\" \
+ $(GNOME_SPELL_CFLAGS) \
+ $(END)
+
+@@ -55,7 +53,6 @@ libgnome_spell_idl_la_SOURCES = \
+ libgnome_spell_component_la_LDFLAGS = -release $(API_VERSION) $(NO_UNDEFINED)
+ libgnome_spell_component_la_LIBADD = \
+ libgnome-spell-idl.la \
+- $(ASPELL_LIBS) \
+ $(GNOME_SPELL_LIBS) \
+ $(END)
+
+@@ -69,7 +66,6 @@ libgnome_spell_component_la_SOURCES = \
+
+ test_gnome_spell_component_LDADD = \
+ libgnome-spell-idl.la \
+- $(ASPELL_LIBS) \
+ $(GNOME_SPELL_LIBS) \
+ $(END)
+
+Index: gnome-spell/dictionary.c
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/gnome-spell/dictionary.c,v
+retrieving revision 1.39
+diff -u -p -u -p -r1.39 dictionary.c
+--- gnome-spell/dictionary.c 5 Feb 2006 21:31:09 -0000 1.39
++++ gnome-spell/dictionary.c 2 Apr 2006 14:31:46 -0000
+@@ -30,16 +30,21 @@
+ #include <glib.h>
+ #include <libgnome/gnome-i18n.h>
+ #include <libgnome/gnome-config.h>
+-#include <gconf/gconf-client.h>
+ #include <bonobo.h>
+
+ #include "Spell.h"
+ #include "dictionary.h"
+
++#include <enchant.h>
++
++typedef struct {
++ EnchantBroker * config;
++ EnchantDict * speller;
++} SpellEngine;
++
+ static BonoboObjectClass *dictionary_parent_class;
+
+ #define DICT_DEBUG(x)
+-#define GNOME_SPELL_GCONF_DIR "/GNOME/Spell"
+
+ static void release_engines (GNOMESpellDictionary *dict);
+
+@@ -72,12 +77,24 @@ gnome_spell_dictionary_init (GObject *ob
+ {
+ GNOMESpellDictionary *dict = GNOME_SPELL_DICTIONARY (object);
+
+- dict->changed = TRUE;
+ dict->engines = NULL;
+ dict->languages = g_hash_table_new (g_str_hash, g_str_equal);
+ dict->engines_ht = g_hash_table_new (NULL, NULL);
+ }
+
++static char **
++dup_string_list (char ** str_list, size_t list_len)
++{
++ char ** new_str_list;
++ size_t i;
++
++ new_str_list = g_new0 (char *, list_len + 1);
++ for (i = 0; i < list_len; i++)
++ new_str_list [i] = g_strdup (str_list [i]);
++
++ return new_str_list;
++}
++
+ static void
+ dictionary_finalize (GObject *object)
+ {
+@@ -93,15 +110,16 @@ dictionary_finalize (GObject *object)
+ }
+
+ static SpellEngine *
+-new_engine (const gchar *language)
++new_engine (const gchar *language, CORBA_Environment *ev)
+ {
+ SpellEngine *se;
+
+ se = g_new0 (SpellEngine, 1);
+- se->config = new_aspell_config ();
+- aspell_config_replace (se->config, "language-tag", language);
+- aspell_config_replace (se->config, "encoding", "utf-8");
+- se->changed = TRUE;
++ se->config = enchant_broker_init ();
++ se->speller = enchant_broker_request_dict (se->config, language);
++
++ if(se->speller == NULL)
++ raise_error (ev, enchant_broker_get_error (se->config));
+
+ return se;
+ }
+@@ -129,9 +147,9 @@ release_engines (GNOMESpellDictionary *d
+ SpellEngine *se = dict->engines->data;
+
+ if (se->speller)
+- delete_aspell_speller (se->speller);
++ enchant_broker_free_dict (se->config, se->speller);
+ if (se->config)
+- delete_aspell_config (se->config);
++ enchant_broker_free (se->config);
+ g_free (se);
+ dict->engines = g_slist_remove (dict->engines, se);
+ }
+@@ -140,7 +158,6 @@ release_engines (GNOMESpellDictionary *d
+ g_hash_table_foreach_remove (dict->languages, remove_engine_ht, NULL);
+
+ dict->engines = NULL;
+- dict->changed = TRUE;
+ }
+
+ static LangInfo known_languages [] = {
+@@ -352,88 +369,31 @@ static LangInfo known_languages [] = {
+ };
+
+ static GSList *
+-get_languages_real (gint *ln)
++get_languages (gint *ln)
+ {
+ GSList *langs;
+- AspellCanHaveError *err;
+- AspellConfig *config;
+- AspellSpeller *speller;
+- gint i;
++ EnchantBroker *broker;
++ gint i, nb_langs;
+
+- DICT_DEBUG (printf ("get_languages_real\n"));
++ DICT_DEBUG (printf ("get_languages\n"));
+
++ /* todo: this could probably be better done by enchant_broker_list_dicts(), but let's keep
++ the initial code change to a minimum */
++
++ broker = enchant_broker_init ();
+ langs = NULL;
+- *ln = 0;
++ nb_langs = 0;
+ for (i=0; i < G_N_ELEMENTS (known_languages); i++) {
+- config = new_aspell_config ();
+- aspell_config_replace (config, "language-tag", known_languages [i].abbreviation);
+- err = new_aspell_speller (config);
+- if (aspell_error_number (err) == 0) {
+- speller = to_aspell_speller (err);
++ if (enchant_broker_dict_exists (broker, known_languages [i].abbreviation)) {
+ DICT_DEBUG (printf ("Language: %s\n", known_languages [i].name));
+- delete_aspell_speller (speller);
+ langs = g_slist_prepend (langs, GINT_TO_POINTER (i));
+- (*ln) ++;
++ nb_langs++;
+ }
+ }
+
+- return langs;
+-}
+-
+-static GSList *
+-get_languages_load (GConfClient *gc, gint *ln)
+-{
+- GString *str;
+- GSList *langs = NULL;
+- gint i, lang_num;
+-
+- /* printf ("get_languages_load\n"); */
+-
+- str = g_string_new (NULL);
+- *ln = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/languages", NULL);
+- for (i = 0; i < *ln; i++) {
+- g_string_sprintf (str, GNOME_SPELL_GCONF_DIR "/language%d", i);
+- lang_num = gconf_client_get_int (gc, str->str, NULL);
+- langs = g_slist_prepend (langs, GINT_TO_POINTER (lang_num));
+- }
+-
+- return langs;
+-}
+-
+-static GSList *
+-get_languages (gint *ln)
+-{
+- GSList *langs, *l;
+- GConfClient *gc;
+- time_t mtime;
+- struct stat buf;
+- gint i, kl;
+-
+- gc = gconf_client_get_default ();
+-
+- mtime = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/mtime", NULL);
+- kl = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/known_languages", NULL);
+-
+- if (stat (ASPELL_DICT, &buf) || buf.st_mtime != mtime || kl != G_N_ELEMENTS(known_languages)) {
+- GString *str;
+- langs = get_languages_real (ln);
+-
+- str = g_string_new (NULL);
+- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/languages", *ln, NULL);
+- for (l = langs, i = 0; i < *ln; i ++) {
+- g_string_sprintf (str, GNOME_SPELL_GCONF_DIR "/language%d", *ln - i - 1);
+- gconf_client_set_int (gc, str->str, GPOINTER_TO_INT (l->data), NULL);
+- l = l->next;
+- }
+- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/mtime", buf.st_mtime, NULL);
+- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/known_languages", G_N_ELEMENTS(known_languages), NULL);
+- g_string_free (str, TRUE);
+- gnome_config_sync ();
+- } else
+- langs = get_languages_load (gc, ln);
++ *ln = nb_langs;
+
+- gconf_client_suggest_sync (gc, NULL);
+- g_object_unref (gc);
++ enchant_broker_free (broker);
+
+ return langs;
+ }
+@@ -504,59 +464,19 @@ impl_gnome_spell_dictionary_set_language
+ SpellEngine *se;
+
+ one_language = g_strndup (begin, len);
+- se = new_engine (one_language);
++ se = new_engine (one_language, ev);
+ dict->engines = g_slist_prepend (dict->engines, se);
+ g_hash_table_insert (dict->languages, one_language, se);
+ g_hash_table_insert (dict->engines_ht, se, g_strdup (one_language));
+-
+- dict->changed = TRUE;
+- }
+- }
+-}
+-
+-static void
+-update_engine (SpellEngine *se, CORBA_Environment * ev)
+-{
+- AspellCanHaveError *err;
+-
+- DICT_DEBUG (printf ("Dictionary: creating new aspell speller\n"));
+-
+- if (se->changed) {
+- if (se->speller)
+- delete_aspell_speller (se->speller);
+- err = new_aspell_speller (se->config);
+- if (aspell_error_number (err) != 0) {
+- g_warning ("aspell error: %s\n", aspell_error_message (err));
+- se->speller = NULL;
+- raise_error (ev, aspell_error_message (err));
+- } else {
+- se->speller = to_aspell_speller (err);
+- se->changed = FALSE;
+ }
+ }
+ }
+
+-static void
+-update_engines (GNOMESpellDictionary *dict, CORBA_Environment * ev)
+-{
+- g_return_if_fail (IS_GNOME_SPELL_DICTIONARY (dict));
+-
+- if (dict->changed) {
+- GSList *l;
+-
+- for (l = dict->engines; l; l = l->next) {
+- update_engine ((SpellEngine *) l->data, ev);
+- }
+-
+- dict->changed = FALSE;
+- }
+-}
+-
+ static CORBA_boolean
+ engine_check_word (SpellEngine *se, const gchar *word, CORBA_Environment *ev)
+ {
+- CORBA_boolean result = CORBA_TRUE;
+- gint aspell_result;
++ CORBA_boolean result = CORBA_FALSE;
++ gint enchant_result;
+
+ #ifndef G_DISABLE_CHECKS
+ g_return_val_if_fail (se->speller, CORBA_TRUE);
+@@ -564,12 +484,12 @@ engine_check_word (SpellEngine *se, cons
+ if (!se->speller)
+ return CORBA_TRUE;
+ #endif
+- aspell_result = aspell_speller_check (se->speller, word, strlen (word));
+- if (aspell_result == 0)
+- result = CORBA_FALSE;
+- if (aspell_result == -1) {
+- g_warning ("aspell error: %s\n", aspell_speller_error_message (se->speller));
+- raise_error (ev, aspell_speller_error_message (se->speller));
++ enchant_result = enchant_dict_check (se->speller, word, strlen (word));
++ if (enchant_result == 0)
++ result = CORBA_TRUE;
++ if (enchant_result == -1) {
++ g_warning ("enchant error: %s\n", enchant_dict_get_error (se->speller));
++ raise_error (ev, enchant_dict_get_error (se->speller));
+ }
+
+ return result;
+@@ -592,7 +512,6 @@ impl_gnome_spell_dictionary_check_word (
+ if (!strcmp (word, "Ximian"))
+ return CORBA_TRUE;
+
+- update_engines (dict, ev);
+ for (l = dict->engines; l; l = l->next) {
+ if (((SpellEngine *) l->data)->speller) {
+ valid_speller = TRUE;
+@@ -621,11 +540,10 @@ impl_gnome_spell_dictionary_add_word_to_
+ if (!word)
+ return;
+ #endif
+- update_engines (dict, ev);
+ DICT_DEBUG (printf ("Dictionary add_word_to_session: %s\n", word));
+ for (l = dict->engines; l; l = l->next) {
+ if (((SpellEngine *) l->data)->speller)
+- aspell_speller_add_to_session (((SpellEngine *) l->data)->speller, word, strlen (word));
++ enchant_dict_add_to_session (((SpellEngine *) l->data)->speller, word, strlen (word));
+ }
+ }
+
+@@ -642,13 +560,11 @@ impl_gnome_spell_dictionary_add_word_to_
+ if (!word || !language)
+ return;
+ #endif
+- update_engines (dict, ev);
+ DICT_DEBUG (printf ("Dictionary add_word_to_personal: %s (%s)\n", word, language));
+ se = (SpellEngine *) g_hash_table_lookup (dict->languages, language);
+
+ if (se && se->speller) {
+- aspell_speller_add_to_personal (se->speller, word, strlen (word));
+- aspell_speller_save_all_word_lists (se->speller);
++ enchant_dict_add_to_pwl (se->speller, word, strlen (word));
+ DICT_DEBUG (printf ("Added and saved.\n"));
+ }
+ }
+@@ -666,14 +582,12 @@ impl_gnome_spell_dictionary_set_correcti
+ if (!word || !replacement)
+ return;
+ #endif
+- update_engines (dict, ev);
+ DICT_DEBUG (printf ("Dictionary correction: %s <-- %s\n", word, replacement));
+ se = (SpellEngine *) g_hash_table_lookup (dict->languages, language);
+
+ if (se && se->speller) {
+- aspell_speller_store_replacement (se->speller, word, strlen (word),
+- replacement, strlen (replacement));
+- aspell_speller_save_all_word_lists (se->speller);
++ enchant_dict_store_replacement (se->speller, word, strlen (word),
++ replacement, strlen (replacement));
+ DICT_DEBUG (printf ("Set and saved.\n"));
+ }
+ }
+@@ -683,8 +597,8 @@ impl_gnome_spell_dictionary_get_suggesti
+ const CORBA_char *word, CORBA_Environment *ev)
+ {
+ GNOMESpellDictionary *dict = GNOME_SPELL_DICTIONARY (bonobo_object_from_servant (servant));
+- const AspellWordList *suggestions;
+- AspellStringEnumeration *elements;
++ char **suggestions;
++ size_t number_of_suggestions;
+ GNOME_Spell_StringSeq *seq = NULL;
+ GSList *l, *suggestion_list = NULL;
+ gint i, len, pos;
+@@ -696,17 +610,19 @@ impl_gnome_spell_dictionary_get_suggesti
+ return NULL;
+ #endif
+ DICT_DEBUG (printf ("Dictionary correction: %s\n", word));
+- update_engines (dict, ev);
+
+ len = 0;
+ for (l = dict->engines; l; l = l->next) {
+ SpellEngine *se = (SpellEngine *) l->data;
+
+ if (se->speller) {
+- suggestions = aspell_speller_suggest (se->speller, word, strlen (word));
+- suggestion_list = g_slist_prepend (suggestion_list, (gpointer) suggestions);
+- len += 2*aspell_word_list_size (suggestions);
++ suggestions = enchant_dict_suggest (se->speller, word, strlen (word), &number_of_suggestions);
++ suggestion_list = g_slist_prepend (suggestion_list,
++ (gpointer) dup_string_list (suggestions, number_of_suggestions));
++ len += 2*number_of_suggestions;
+ suggestion_list = g_slist_prepend (suggestion_list, engine_to_language (dict, se));
++ suggestion_list = g_slist_prepend (suggestion_list, GINT_TO_POINTER (number_of_suggestions));
++ enchant_dict_free_string_list (se->speller, suggestions);
+ }
+ }
+
+@@ -723,17 +639,18 @@ impl_gnome_spell_dictionary_get_suggesti
+ gint list_len;
+ gchar *language;
+
++ list_len = GPOINTER_TO_INT (l->data);
++ l = l->next;
+ language = (gchar *) l->data;
+ l = l->next;
+- suggestions = (const AspellWordList *) l->data;
+- elements = aspell_word_list_elements (suggestions);
+- list_len = aspell_word_list_size (suggestions);
++ suggestions = (char **) l->data;
+ for (i = 0; i < list_len; i ++, pos ++) {
+- seq->_buffer [pos] = CORBA_string_dup (aspell_string_enumeration_next (elements));
++ seq->_buffer [pos] = CORBA_string_dup (suggestions [i]);
+ pos ++;
+ seq->_buffer [pos] = CORBA_string_dup (language);
+ }
+- delete_aspell_string_enumeration (elements);
++
++ g_strfreev (suggestions);
+ }
+ CORBA_sequence_set_release (seq, CORBA_TRUE);
+ g_slist_free (suggestion_list);
+Index: gnome-spell/dictionary.h
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/gnome-spell/dictionary.h,v
+retrieving revision 1.8
+diff -u -p -u -p -r1.8 dictionary.h
+--- gnome-spell/dictionary.h 5 Feb 2006 21:31:09 -0000 1.8
++++ gnome-spell/dictionary.h 2 Apr 2006 14:31:46 -0000
+@@ -26,7 +26,6 @@
+ G_BEGIN_DECLS
+
+ #include <bonobo/bonobo-object.h>
+-#include <aspell.h>
+
+ #define GNOME_SPELL_DICTIONARY_TYPE (gnome_spell_dictionary_get_type ())
+ #define GNOME_SPELL_DICTIONARY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \
+@@ -37,12 +36,6 @@ G_BEGIN_DECLS
+ #define IS_GNOME_SPELL_DICTIONARY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_SPELL_DICTIONARY_TYPE))
+
+ typedef struct {
+- AspellConfig *config;
+- AspellSpeller *speller;
+- gboolean changed;
+-} SpellEngine;
+-
+-typedef struct {
+ gchar *abbreviation;
+ gchar *name;
+ } LangInfo;
+@@ -50,7 +43,6 @@ typedef struct {
+ typedef struct {
+ BonoboObject parent;
+
+- gboolean changed;
+ GSList *engines;
+ GHashTable *languages;
+ GHashTable *engines_ht;
+Index: gnome-spell/test-spell.c
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/gnome-spell/test-spell.c,v
+retrieving revision 1.12
+diff -u -p -u -p -r1.12 test-spell.c
+--- gnome-spell/test-spell.c 6 Mar 2003 16:37:36 -0000 1.12
++++ gnome-spell/test-spell.c 2 Apr 2006 14:31:46 -0000
+@@ -52,7 +52,6 @@ main (int argc, char *argv [])
+ * test dictionary
+ */
+
+- GNOME_Spell_Dictionary_getLanguages (en, &ev);
+ GNOME_Spell_Dictionary_setLanguage (en, "en", &ev);
+
+ printf ("check: %s --> %d\n",