summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarinus Schraal <foser@gentoo.org>2006-04-03 16:41:39 +0000
committerMarinus Schraal <foser@gentoo.org>2006-04-03 16:41:39 +0000
commit2656ea3bbc085907702a23767755c3910d0d2076 (patch)
tree76f654b9b6e20c947f5622cc6ceb56b5c4d9c719 /app-text/gnome-spell
parentStable on sparc wrt #127541 (diff)
downloadhistorical-2656ea3bbc085907702a23767755c3910d0d2076.tar.gz
historical-2656ea3bbc085907702a23767755c3910d0d2076.tar.bz2
historical-2656ea3bbc085907702a23767755c3910d0d2076.zip
update enchant patch
Package-Manager: portage-2.1_pre4-r1
Diffstat (limited to 'app-text/gnome-spell')
-rw-r--r--app-text/gnome-spell/ChangeLog9
-rw-r--r--app-text/gnome-spell/Manifest15
-rw-r--r--app-text/gnome-spell/files/digest-gnome-spell-1.0.7-r13
-rw-r--r--app-text/gnome-spell/files/gnome-spell-1.0.7-enchant-r2.patch551
-rw-r--r--app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild63
5 files changed, 637 insertions, 4 deletions
diff --git a/app-text/gnome-spell/ChangeLog b/app-text/gnome-spell/ChangeLog
index da17a5a00762..595592508f3d 100644
--- a/app-text/gnome-spell/ChangeLog
+++ b/app-text/gnome-spell/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-text/gnome-spell
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/gnome-spell/ChangeLog,v 1.67 2006/04/02 14:09:56 foser Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-text/gnome-spell/ChangeLog,v 1.68 2006/04/03 16:41:39 foser Exp $
+
+*gnome-spell-1.0.7-r1 (03 Apr 2006)
+
+ 03 Apr 2006; Marinus Schraal <foser@gentoo.org>
+ gnome-spell-1.0.7-r1.ebuild, files/gnome-spell-1.0.7-enchant-r2.patch :
+ Add new enchant patch, should fix some outstanding dictionairy detection issues
+ Remove debug flag, the stack of patches became somewhat messy
*gnome-spell-1.0.7 (27 Mar 2006)
diff --git a/app-text/gnome-spell/Manifest b/app-text/gnome-spell/Manifest
index ca085ad277fe..79603de5ded0 100644
--- a/app-text/gnome-spell/Manifest
+++ b/app-text/gnome-spell/Manifest
@@ -1,6 +1,6 @@
-MD5 89a763635c7fae723a77b0b5fca94da2 ChangeLog 8839
-RMD160 64accf6484231099a3d8ae1e407f742469118187 ChangeLog 8839
-SHA256 707ed9a298481f5681b5589be3496f7ee12b363ebc894e0f539b7f2de3fbd441 ChangeLog 8839
+MD5 f3b959d2be43ec237bbd396b6b76cbbf ChangeLog 9148
+RMD160 5ee73425c74e8e8531c71edc7fe0ebb4e8d7e91e ChangeLog 9148
+SHA256 c4ca614432b7a1a05b4383083dc84d08755c0078595222656afdfb9a6849ffa2 ChangeLog 9148
MD5 959c92eeb724ca5380e81f09805df109 files/digest-gnome-spell-1.0.5-r2 70
RMD160 84d82af6a601e21d590fbf96434e801bc197aa5e files/digest-gnome-spell-1.0.5-r2 70
SHA256 17a61f94e0dcee29292edfd8acefa295339ff9fa35b1bbc0f2133e63a8f68d95 files/digest-gnome-spell-1.0.5-r2 70
@@ -10,6 +10,9 @@ SHA256 15909fa710c31bcae845eba8f91d0eaa2342c567f0fe6ed8de59dc3dc70d0964 files/di
MD5 658219434579dc54d92842515701df84 files/digest-gnome-spell-1.0.7 256
RMD160 c998e61f0c5856d5ab11ce0038d17f1e043f1b08 files/digest-gnome-spell-1.0.7 256
SHA256 499583c90d872bdc4596b77e7db2475d4b92e922e57374b77c5a40e8f1d29ee0 files/digest-gnome-spell-1.0.7 256
+MD5 658219434579dc54d92842515701df84 files/digest-gnome-spell-1.0.7-r1 256
+RMD160 c998e61f0c5856d5ab11ce0038d17f1e043f1b08 files/digest-gnome-spell-1.0.7-r1 256
+SHA256 499583c90d872bdc4596b77e7db2475d4b92e922e57374b77c5a40e8f1d29ee0 files/digest-gnome-spell-1.0.7-r1 256
MD5 a2f04eb1ad051e0c06e703901869afca files/gnome-spell-1.0.5-enchant.patch 18757
RMD160 9bf735a278857ca5771f66bc22dd4587ee30696e files/gnome-spell-1.0.5-enchant.patch 18757
SHA256 cbedfbbc279da893c872f38566ad79e404582cb9e0326b9f0e0121ebdd3c82b2 files/gnome-spell-1.0.5-enchant.patch 18757
@@ -28,6 +31,9 @@ SHA256 0d64ebd6b1316142636116d0e19bd9a94377458cfe328f42c51889cc86696840 files/gn
MD5 94a75fa3ccc33e552eb79a810db5dade files/gnome-spell-1.0.7-debug.patch 384
RMD160 43eb9911b2bde894cdaa49f096f45c858eeb5ab5 files/gnome-spell-1.0.7-debug.patch 384
SHA256 a01b2762468f4759d8a4e0cb50bec860abb23292819b1ea22e7611d5c721b253 files/gnome-spell-1.0.7-debug.patch 384
+MD5 cdb26ce8ba03a6202b83bb94b20ff8ed files/gnome-spell-1.0.7-enchant-r2.patch 17262
+RMD160 8fe136299ffae9ce70354a23cce66a1cff5681e4 files/gnome-spell-1.0.7-enchant-r2.patch 17262
+SHA256 821e75ea72f3e35f6912bdd1aa24be86d9bcf4835c75e28a084927b89c55e1ba files/gnome-spell-1.0.7-enchant-r2.patch 17262
MD5 6b974cdc8c91d76c10c019d2dc342f52 files/gnome-spell-1.0.7-enchant.patch 15540
RMD160 12f418609437b1ecafa4030f5c2df43ba3982e3e files/gnome-spell-1.0.7-enchant.patch 15540
SHA256 c81be929c6fab0a866fad62477cc794e3bbb8b19fd2c18e61eb84782195004df files/gnome-spell-1.0.7-enchant.patch 15540
@@ -40,6 +46,9 @@ SHA256 32d4f24d11ec5e5bc9b31118eb204145ffa33aec5658d154c7453dcc76bd8941 gnome-sp
MD5 e75b67bc2e646d264c8fcbda88d053bb gnome-spell-1.0.6.ebuild 1263
RMD160 a2450ab0de4c914b56fce45032cc096fbd18950e gnome-spell-1.0.6.ebuild 1263
SHA256 46feb77cc000ce49951f06e7c79cb4f1d6f34917ac1d9b8a441c6ffe55436e99 gnome-spell-1.0.6.ebuild 1263
+MD5 3dca4d307f5205245349431f6c9bdbed gnome-spell-1.0.7-r1.ebuild 1575
+RMD160 70da73e8b1f3fc6bfb601fc0fecaca354afbf45a gnome-spell-1.0.7-r1.ebuild 1575
+SHA256 ab5ec3ab554cce90c94a97202704e9b5afa577f4a18888f6b41c62c0d2727c6e gnome-spell-1.0.7-r1.ebuild 1575
MD5 6f726a8f311efd868c05a9c0a894d194 gnome-spell-1.0.7.ebuild 1625
RMD160 e12e5d8bce1e21e75fbede29f3d892e6cb13c86a gnome-spell-1.0.7.ebuild 1625
SHA256 dfe69fc19813817a5fda46fba463ff0341a8821266bc7eb5d2e4f4ba4f1521ed gnome-spell-1.0.7.ebuild 1625
diff --git a/app-text/gnome-spell/files/digest-gnome-spell-1.0.7-r1 b/app-text/gnome-spell/files/digest-gnome-spell-1.0.7-r1
new file mode 100644
index 000000000000..385b439247a1
--- /dev/null
+++ b/app-text/gnome-spell/files/digest-gnome-spell-1.0.7-r1
@@ -0,0 +1,3 @@
+MD5 da3ad2c664afd06a0c56c84d5055f8ad gnome-spell-1.0.7.tar.bz2 331063
+RMD160 e5c0593be77bfffa609eaa3f52653bc09a130667 gnome-spell-1.0.7.tar.bz2 331063
+SHA256 c7c621cf3cf2aeacdd8a7d998eb8cc70590bd0427e3aabecbdece9906cb5ca6b gnome-spell-1.0.7.tar.bz2 331063
diff --git a/app-text/gnome-spell/files/gnome-spell-1.0.7-enchant-r2.patch b/app-text/gnome-spell/files/gnome-spell-1.0.7-enchant-r2.patch
new file mode 100644
index 000000000000..bf1421e59462
--- /dev/null
+++ b/app-text/gnome-spell/files/gnome-spell-1.0.7-enchant-r2.patch
@@ -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="libgnome-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",
diff --git a/app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild b/app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild
new file mode 100644
index 000000000000..9141d622ccb8
--- /dev/null
+++ b/app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild,v 1.1 2006/04/03 16:41:39 foser Exp $
+
+inherit libtool eutils gnome2
+
+DESCRIPTION="Gnome spellchecking component"
+HOMEPAGE="http://www.gnome.org/"
+
+LICENSE="GPL-2"
+SLOT="1"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="static"
+
+RDEPEND=">=gnome-base/libgnome-1.112.1
+ >=gnome-base/libbonoboui-1.112.1
+ >=gnome-base/libglade-1.99.9
+ >=gnome-base/libbonobo-2.0
+ >=gnome-base/orbit-2
+ >=x11-libs/gtk+-2.4
+ >=app-text/enchant-1.2.5"
+
+DEPEND="${RDEPEND}
+ dev-util/intltool
+ dev-util/pkgconfig
+ sys-devel/gettext
+ >=sys-devel/autoconf-2.59"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+pkg_setup() {
+
+ G2CONF="${G2CONF} $(use_enable static)"
+
+}
+
+src_unpack() {
+
+ unpack ${A}
+ cd ${S}
+
+ # note that the combo and enchant patch are intertwined
+ # the enchant patch changes libgnomeui dep to libgnome
+ # made possible by the combo patch
+ # Marinus Schraal <foser@gentoo.org> - 02 Apr 2006
+
+ # Use enchant backend instead of aspell
+ epatch ${FILESDIR}/${P}-enchant-r2.patch
+ # replace gtkentry with gtkcombo widget
+ epatch ${FILESDIR}/${P}-combo.patch
+ epatch ${FILESDIR}/${P}-remove_gnome_h.patch
+
+
+ einfo "Runnig aclocal"
+ aclocal || die "aclocal failed"
+ einfo "Running autoconf"
+ WANT_AUTOCONF=2.5 autoconf || die "autoconf failed"
+ einfo "Running automake"
+ WANT_AUTOMAKE=1.9 automake || die "automake failed"
+ einfo "Running libtoolize"
+ libtoolize --copy --force
+
+}