diff options
author | 2006-12-14 11:35:06 +0000 | |
---|---|---|
committer | 2006-12-14 11:35:06 +0000 | |
commit | 17a032ae5b54fd7a611c876ac544fe607d84c38e (patch) | |
tree | ab1e988ad8bdb946a7b64ab260a85fed64f44e8d /mail-client/sylpheed-svn/files/sylpheed-2.2-replace-aspell-with-enchant.diff | |
download | hattya-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.diff | 102 |
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); + } |