mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-29 00:25:25 +00:00
552 lines
17 KiB
Diff
552 lines
17 KiB
Diff
![]() |
? 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",
|