diff options
author | Marinus Schraal <foser@gentoo.org> | 2006-04-03 16:41:39 +0000 |
---|---|---|
committer | Marinus Schraal <foser@gentoo.org> | 2006-04-03 16:41:39 +0000 |
commit | 2656ea3bbc085907702a23767755c3910d0d2076 (patch) | |
tree | 76f654b9b6e20c947f5622cc6ceb56b5c4d9c719 /app-text/gnome-spell | |
parent | Stable on sparc wrt #127541 (diff) | |
download | historical-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/ChangeLog | 9 | ||||
-rw-r--r-- | app-text/gnome-spell/Manifest | 15 | ||||
-rw-r--r-- | app-text/gnome-spell/files/digest-gnome-spell-1.0.7-r1 | 3 | ||||
-rw-r--r-- | app-text/gnome-spell/files/gnome-spell-1.0.7-enchant-r2.patch | 551 | ||||
-rw-r--r-- | app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild | 63 |
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 + +} |