Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 82854 Details for
Bug 127142
gnome-spell version bump to 1.0.7
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
1.0.7 version of the -enchant patch
gnome-spell-1.0.7-enchant.patch (text/plain), 15.30 KB, created by
Ronald Hummelink
on 2006-03-22 02:46:47 UTC
(
hide
)
Description:
1.0.7 version of the -enchant patch
Filename:
MIME Type:
Creator:
Ronald Hummelink
Created:
2006-03-22 02:46:47 UTC
Size:
15.30 KB
patch
obsolete
>diff -Naur gnome-spell-1.0.7.orig/README gnome-spell-1.0.7/README >--- gnome-spell-1.0.7.orig/README 2001-10-08 18:57:45.000000000 +0000 >+++ gnome-spell-1.0.7/README 2006-03-22 09:39:08.000000000 +0000 >@@ -3,7 +3,7 @@ > > Gnome Spell is GNOME/Bonobo component for spell checking. In current 0.1 version > it contains GNOME::Spell::Dictionary object, which provides spell checking dictionary >-(see Spell.idl for exact API definition). It's based on pspell package, which is required >+(see Spell.idl for exact API definition). It's based on Enchant package, which is required > to build gnome-spell. > > Dictionary object could be used for live spell checking. Look in test-spell.c or >@@ -12,19 +12,18 @@ > In future it will be expanded by implementation of GNOME::Spell::Checker object (see > also Spell.idl) and also by spell checking dialog control with appropriate interface. > >-Pspell build >+Enchant build > ------------ > >-From my experience with pspell I recommend you to build pspell/aspell this way: >+From my experience with Enchant I recommend you to build it this way: > >- 1) build and install pspell >- 2) build and install aspell >+ 1) build and install Pspell, Aspell >+ 2) build and install Enchant > 4) build and install GNOME Spell > >-You could get Pspell and Aspell from: >+You could get Enchant from: > >- http://pspell.sourceforge.net/ >- http://aspell.sourceforge.net/ >+ http://www.abisource.com/enchant/ > > End > --- >diff -Naur gnome-spell-1.0.7.orig/configure.in gnome-spell-1.0.7/configure.in >--- gnome-spell-1.0.7.orig/configure.in 2006-02-10 11:46:32.000000000 +0000 >+++ gnome-spell-1.0.7/configure.in 2006-03-22 09:39:04.000000000 +0000 >@@ -68,34 +68,6 @@ > 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(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.2" > PKG_CHECK_MODULES(GNOME_SPELL, $GNOME_SPELL_MODULES) > AC_SUBST(GNOME_SPELL_CFLAGS) > AC_SUBST(GNOME_SPELL_LIBS) >diff -Naur gnome-spell-1.0.7.orig/gnome-spell/Makefile.am gnome-spell-1.0.7/gnome-spell/Makefile.am >--- gnome-spell-1.0.7.orig/gnome-spell/Makefile.am 2006-01-19 23:37:50.000000000 +0000 >+++ gnome-spell-1.0.7/gnome-spell/Makefile.am 2006-03-22 09:39:04.000000000 +0000 >@@ -7,13 +7,11 @@ > > 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_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 @@ > > test_gnome_spell_component_LDADD = \ > libgnome-spell-idl.la \ >- $(ASPELL_LIBS) \ > $(GNOME_SPELL_LIBS) \ > $(END) > >diff -Naur gnome-spell-1.0.7.orig/gnome-spell/dictionary.c gnome-spell-1.0.7/gnome-spell/dictionary.c >--- gnome-spell-1.0.7.orig/gnome-spell/dictionary.c 2006-02-05 21:31:09.000000000 +0000 >+++ gnome-spell-1.0.7/gnome-spell/dictionary.c 2006-03-22 09:39:04.000000000 +0000 >@@ -36,6 +36,13 @@ > #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) >@@ -72,12 +79,24 @@ > { > 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 +112,16 @@ > } > > 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 +149,9 @@ > 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 +160,6 @@ > g_hash_table_foreach_remove (dict->languages, remove_engine_ht, NULL); > > dict->engines = NULL; >- dict->changed = TRUE; > } > > static LangInfo known_languages [] = { >@@ -355,28 +374,27 @@ > get_languages_real (gint *ln) > { > GSList *langs; >- AspellCanHaveError *err; >- AspellConfig *config; >- AspellSpeller *speller; >+ EnchantBroker *broker; > gint i; > > DICT_DEBUG (printf ("get_languages_real\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; > 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) ++; > } > } > >+ enchant_broker_free (broker); >+ > return langs; > } > >@@ -405,16 +423,13 @@ > { > 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)) { >+ if (kl != G_N_ELEMENTS(known_languages)) { > GString *str; > langs = get_languages_real (ln); > >@@ -425,7 +440,7 @@ > 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 (); >@@ -504,51 +519,11 @@ > 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; > } > } > >@@ -556,7 +531,7 @@ > engine_check_word (SpellEngine *se, const gchar *word, CORBA_Environment *ev) > { > CORBA_boolean result = CORBA_TRUE; >- gint aspell_result; >+ gint enchant_result; > > #ifndef G_DISABLE_CHECKS > g_return_val_if_fail (se->speller, CORBA_TRUE); >@@ -564,12 +539,12 @@ > if (!se->speller) > return CORBA_TRUE; > #endif >- aspell_result = aspell_speller_check (se->speller, word, strlen (word)); >- if (aspell_result == 0) >+ enchant_result = enchant_dict_check (se->speller, word, strlen (word)); >+ if (enchant_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)); >+ 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 +567,6 @@ > 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 +595,10 @@ > 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,7 +615,6 @@ > 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); > >@@ -666,7 +638,6 @@ > 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); > >@@ -683,8 +654,8 @@ > 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 +667,19 @@ > 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 +696,18 @@ > 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); >diff -Naur gnome-spell-1.0.7.orig/gnome-spell/dictionary.h gnome-spell-1.0.7/gnome-spell/dictionary.h >--- gnome-spell-1.0.7.orig/gnome-spell/dictionary.h 2006-02-05 21:31:09.000000000 +0000 >+++ gnome-spell-1.0.7/gnome-spell/dictionary.h 2006-03-22 09:39:04.000000000 +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 @@ > #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 { > BonoboObject parent; > >- gboolean changed; > GSList *engines; > GHashTable *languages; > GHashTable *engines_ht; >diff -Naur gnome-spell-1.0.7.orig/gnome-spell.spec.in gnome-spell-1.0.7/gnome-spell.spec.in >--- gnome-spell-1.0.7.orig/gnome-spell.spec.in 2001-11-01 22:19:22.000000000 +0000 >+++ gnome-spell-1.0.7/gnome-spell.spec.in 2006-03-22 09:39:08.000000000 +0000 >@@ -7,12 +7,10 @@ > Source: ftp://ftp.gnome.org/pub/GNOME/unstable/sources/%{name}/%{name}-%{version}.tar.gz > Summary: The spelling component for bonobo > Group: System Environment/Libraries >-Requires: aspell >= 0.28 >-Requires: pspell >= 0.12 >+Requires: enchant >= 0.3.0 > Requires: bonobo >= 0.28 > Requires: gal >= 0.7.99.5 >-BuildRequires: aspell-devel >= 0.28 >-BuildRequires: pspell-devel >= 0.12 >+BuildRequires: enchant-devel >= 0.3.0 > BuildRequires: bonobo-devel >= 0.28 > BuildRequires: libglade-devel > BuildRequires: gal-devel >= 0.7.99.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 127142
:
82833
| 82854