summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkinori Hattori <hattya@gentoo.org>2006-12-14 11:35:06 +0000
committerAkinori Hattori <hattya@gentoo.org>2006-12-14 11:35:06 +0000
commit17a032ae5b54fd7a611c876ac544fe607d84c38e (patch)
treeab1e988ad8bdb946a7b64ab260a85fed64f44e8d /mail-client/sylpheed-svn/files/sylpheed-2.2-replace-aspell-with-enchant.diff
downloadhattya-17a032ae5b54fd7a611c876ac544fe607d84c38e.tar.gz
hattya-17a032ae5b54fd7a611c876ac544fe607d84c38e.tar.bz2
hattya-17a032ae5b54fd7a611c876ac544fe607d84c38e.zip
Initial revision.
svn path=/; revision=1
Diffstat (limited to 'mail-client/sylpheed-svn/files/sylpheed-2.2-replace-aspell-with-enchant.diff')
-rw-r--r--mail-client/sylpheed-svn/files/sylpheed-2.2-replace-aspell-with-enchant.diff102
1 files changed, 102 insertions, 0 deletions
diff --git a/mail-client/sylpheed-svn/files/sylpheed-2.2-replace-aspell-with-enchant.diff b/mail-client/sylpheed-svn/files/sylpheed-2.2-replace-aspell-with-enchant.diff
new file mode 100644
index 0000000..16ddb97
--- /dev/null
+++ b/mail-client/sylpheed-svn/files/sylpheed-2.2-replace-aspell-with-enchant.diff
@@ -0,0 +1,102 @@
+diff -ur sylpheed-2.2.0.orig/src/compose.c sylpheed-2.2.0/src/compose.c
+--- sylpheed-2.2.0.orig/src/compose.c 2006-02-07 11:53:05.000000000 +0900
++++ sylpheed-2.2.0/src/compose.c 2006-02-15 23:40:01.000000000 +0900
+@@ -64,7 +64,7 @@
+ #if USE_GTKSPELL
+ # include <gtk/gtkradiomenuitem.h>
+ # include <gtkspell/gtkspell.h>
+-# include <aspell.h>
++# include <enchant/enchant.h>
+ #endif
+
+ #include <stdio.h>
+@@ -459,6 +459,9 @@
+ GtkWidget *widget);
+ static void compose_set_spell_lang_cb (GtkWidget *widget,
+ gpointer data);
++static void compose_list_dicts_cb (const char *lang_tag,
++ const char *provider_name, const char *provider_desc,
++ const char *provider_file, void *user_data);
+ #endif
+
+ static void compose_attach_drag_received_cb (GtkWidget *widget,
+@@ -4874,33 +4877,34 @@
+ }
+
+ #if USE_GTKSPELL
++static void compose_list_dicts_cb(const char *lang_tag,
++ const char *provider_name, const char *provider_desc,
++ const char *provider_file, void *user_data)
++{
++ GQueue *queue = (GQueue *)user_data;
++
++ if (g_queue_index(queue, (gconstpointer)lang_tag) == -1) {
++ g_queue_push_tail(queue, g_strdup(lang_tag));
++ }
++}
++
+ static void compose_set_spell_lang_menu(Compose *compose)
+ {
+- AspellConfig *config;
+- AspellDictInfoList *dlist;
+- AspellDictInfoEnumeration *dels;
+- const AspellDictInfo *entry;
++ EnchantBroker *broker;
++ GQueue *langs;
+ GSList *dict_list = NULL, *menu_list = NULL, *cur;
+ GtkWidget *menu;
+ gboolean lang_set = FALSE;
+
+- config = new_aspell_config();
+- dlist = get_aspell_dict_info_list(config);
+- delete_aspell_config(config);
+-
+- dels = aspell_dict_info_list_elements(dlist);
+- while ((entry = aspell_dict_info_enumeration_next(dels)) != 0) {
+- dict_list = g_slist_append(dict_list, (gchar *)entry->name);
+- if (compose->spell_lang != NULL &&
+- g_ascii_strcasecmp(compose->spell_lang, entry->name) == 0)
+- lang_set = TRUE;
+- }
+- delete_aspell_dict_info_enumeration(dels);
++ broker = enchant_broker_init();
++ langs = g_queue_new();
++ enchant_broker_list_dicts(broker, compose_list_dicts_cb, langs);
++ enchant_broker_free(broker);
+
+ menu = gtk_menu_new();
+
+- for (cur = dict_list; cur != NULL; cur = cur->next) {
+- gchar *dict = (gchar *)cur->data;
++ while (g_queue_get_length(langs) > 0) {
++ gchar *dict = g_queue_pop_head(langs);
+ GtkWidget *item;
+
+ if (dict == NULL) continue;
+@@ -4910,13 +4914,16 @@
+ (GTK_RADIO_MENU_ITEM(item));
+ if (compose->spell_lang != NULL &&
+ g_ascii_strcasecmp(compose->spell_lang, dict) == 0)
++ {
+ gtk_check_menu_item_set_active
+ (GTK_CHECK_MENU_ITEM(item), TRUE);
++ lang_set = TRUE;
++ }
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
+ g_signal_connect(G_OBJECT(item), "activate",
+ G_CALLBACK(compose_set_spell_lang_cb),
+ compose);
+- g_object_set_data(G_OBJECT(item), "spell-lang", dict);
++ g_object_set_data_full(G_OBJECT(item), "spell-lang", dict, g_free);
+ gtk_widget_show(item);
+
+ if (!lang_set && g_ascii_strcasecmp("en", dict) == 0)
+@@ -4924,6 +4931,8 @@
+ (GTK_CHECK_MENU_ITEM(item), TRUE);
+ }
+
++ g_queue_free(langs);
++
+ gtk_widget_show(menu);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(compose->spell_menu), menu);
+ }