Yes, we will remove aspell from JDS in GNOME 2.18. But there is something I will check with John Fisher that a conversion tool should be added to make users convert their aspell dictionaries to myspell ones.
Jeff On Mon, 2007-02-12 at 11:16 +0800, Brian Cameron wrote: > Jeff: > > With this change, shouldn't we remove aspell from JDS since we don't use > it anymore? Should we make this Obsolete in our GNOME 2.18 case? > > Brian > > > > These patches aims to make gedit and evolution to use more languages > > dictionaries. > > In gnome2.17, gedit uses enchant and evolution still uses gnome-spell > > which depends on aspell. > > Since we have delivered many languages of dictionaries in myspell > > format, these patches can > > do: > > 1. Make gnome-spell use enchant. > > 2. Make enchant use myspell instead of aspell. > > 3. Modify spec files to make gnome-spell can be built without enchant > > installed. > > > > For the patch (gnome-spell-01-enchant) which makes gnome use enchant, it > > comes from > > http://uyarer.com/doc/gnome-spell-enchant.diff > > > > Jeff > > > > > > ------------------------------------------------------------------------ > > > > Index: gnome-spell.spec > > =================================================================== > > --- gnome-spell.spec (revision 10393) > > +++ gnome-spell.spec (working copy) > > @@ -22,6 +22,7 @@ > > URL: http://www.sun.com/software/javadesktopsystem/ > > Source: > > http://ftp.gnome.org/pub/gnome/sources/gnome-spell/1.0/%{name}-%{version}.tar.bz2 > > Source1: mkinstalldirs > > +Patch1: gnome-spell-01-enchant.diff > > Summary: GNOME spell checking component > > Group: Applications/Text > > > > @@ -51,6 +52,7 @@ > > > > %prep > > %setup -q -n %{name}-%{version} > > +%patch1 -p0 > > cp %SOURCE1 . > > > > > > Index: enchant.spec > > =================================================================== > > --- enchant.spec (revision 10393) > > +++ enchant.spec (working copy) > > @@ -22,6 +22,7 @@ > > Source: > > http://www.abisource.com/downloads/%{name}/%{version}/%{name}-%{version}.tar.gz > > # date:2006-12-08 bugzilla:10667 owner:dcarbery type:bug > > Patch1: enchant-01-define_FILE.diff > > +Patch2: enchant-02-uninstalled-pc.diff > > Summary: Generic spell checking library > > Group: Applications/Text > > > > @@ -35,6 +36,7 @@ > > %prep > > %setup -q -n %{name}-%{version} > > %patch1 -p1 > > +%patch2 -p1 > > > > > > %build > > @@ -57,6 +59,8 @@ > > --mandir=%{_mandir} \ > > --infodir=%{_datadir}/info \ > > --localstatedir=/var \ > > + --with-myspell-dir=/usr/lib/thunderbird/dictionaries \ > > + --disable-aspell \ > > --disable-static > > > > make -j $CPUS > > Index: Solaris/SUNWgnome-spell.spec > > =================================================================== > > --- Solaris/SUNWgnome-spell.spec (revision 10500) > > +++ Solaris/SUNWgnome-spell.spec (working copy) > > @@ -47,27 +47,27 @@ > > %prep > > rm -rf %name-%version > > mkdir -p %name-%version > > +%enchant.prep -d %name-%version > > %gspell.prep -d %name-%version > > -%enchant.prep -d %name-%version > > > > %build > > +# See http://bugzilla.abisource.com/show_bug.cgi?id=10668 for why LD is > > set > > +# to $CXX. > > +export LD=$CXX > > +%enchant.build -d %name-%version > > export PATH=%{_libdir}/aspell:$PATH > > export PERL5LIB=%{_prefix}/perl5/site_perl/5.6.1/sun4-solaris-64int > > export ACLOCAL_FLAGS="-I %{_datadir}/aclocal" > > export CFLAGS="%optflags" > > export CXXFLAGS="%cxx_optflags" > > -export PKG_CONFIG_PATH=%{_pkg_config_path} > > +export PKG_CONFIG_PATH=../enchant-%{enchant.version}:%{_pkg_config_path} > > export MSGFMT="/usr/bin/msgfmt" > > export LDFLAGS="%_ldflags" > > %gspell.build -d %name-%version > > -# See http://bugzilla.abisource.com/show_bug.cgi?id=10668 for why LD is > > set > > -# to $CXX. > > -export LD=$CXX > > -%enchant.build -d %name-%version > > > > %install > > +%enchant.install -d %name-%version > > %gspell.install -d %name-%version > > -%enchant.install -d %name-%version > > > > %if %build_l10n > > %else > > > > > > > > ------------------------------------------------------------------------ > > > > diff -r -u enchant-1.3.0/configure.in enchant-1.3.0-new/configure.in > > --- enchant-1.3.0/configure.in 2006-07-23 01:34:46.000000000 +0800 > > +++ enchant-1.3.0-new/configure.in 2007-02-09 14:52:22.315224000 +0800 > > @@ -258,6 +258,7 @@ > > AC_OUTPUT([ > > Makefile > > enchant.pc > > +enchant-uninstalled.pc > > enchant.spec > > src/Makefile > > src/aspell/Makefile > > diff -r -u enchant-1.3.0/enchant-uninstall.pc.in > > enchant-1.3.0-new/enchant-uninstall.pc.in > > --- enchant-1.3.0/enchant-uninstalled.pc.in 2007-02-09 14:57:57.887773000 > > +0800 > > +++ enchant-1.3.0-new/enchant-uninstalled.pc.in 2007-02-09 > > 16:08:11.944733000 +0800 > > @@ -0,0 +1,11 @@ > > +pref...@prefix@ > > +exec_pref...@exec_prefix@ > > +libd...@libdir@ > > +included...@includedir@ > > + > > +Name: libenchant > > +Description: A spell checking library > > +Version: @VERSION@ > > +Requires: glib-2.0 gmodule-2.0 > > +Libs: ${pc_top_builddir}/${pcfiledir}/src/libenchant.la > > +Cflags: -I${pc_top_builddir}/${pcfiledir}/src > > > > > > ------------------------------------------------------------------------ > > > > 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", >
