diff options
author | Marinus Schraal <foser@gentoo.org> | 2006-04-05 14:07:42 +0000 |
---|---|---|
committer | Marinus Schraal <foser@gentoo.org> | 2006-04-05 14:07:42 +0000 |
commit | 8dabe90aea5a8b8e9eb00a4803ff2ef2e7188bf3 (patch) | |
tree | 5ac36ed63d9610decd2e2e7121f2ff9c78ed8a31 /app-text/gtkspell/files | |
parent | Add ~amd64 (diff) | |
download | gentoo-2-8dabe90aea5a8b8e9eb00a4803ff2ef2e7188bf3.tar.gz gentoo-2-8dabe90aea5a8b8e9eb00a4803ff2ef2e7188bf3.tar.bz2 gentoo-2-8dabe90aea5a8b8e9eb00a4803ff2ef2e7188bf3.zip |
bump to propagate patch fix
(Portage version: 2.1_pre4-r1)
Diffstat (limited to 'app-text/gtkspell/files')
-rw-r--r-- | app-text/gtkspell/files/digest-gtkspell-2.0.11-r1 | 3 | ||||
-rw-r--r-- | app-text/gtkspell/files/gtkspell-2.0.11-enchant.patch | 262 |
2 files changed, 265 insertions, 0 deletions
diff --git a/app-text/gtkspell/files/digest-gtkspell-2.0.11-r1 b/app-text/gtkspell/files/digest-gtkspell-2.0.11-r1 new file mode 100644 index 000000000000..f4af17382c66 --- /dev/null +++ b/app-text/gtkspell/files/digest-gtkspell-2.0.11-r1 @@ -0,0 +1,3 @@ +MD5 494869f67146a12a3f17a958f51aeb05 gtkspell-2.0.11.tar.gz 347172 +RMD160 c5ca1804807f445e246de2b384448a7c7c76855f gtkspell-2.0.11.tar.gz 347172 +SHA256 521d6be1e1236706cd491305b10f01d989bf47787ca97242c56c0d2b038e6a12 gtkspell-2.0.11.tar.gz 347172 diff --git a/app-text/gtkspell/files/gtkspell-2.0.11-enchant.patch b/app-text/gtkspell/files/gtkspell-2.0.11-enchant.patch new file mode 100644 index 000000000000..00d9e0320fea --- /dev/null +++ b/app-text/gtkspell/files/gtkspell-2.0.11-enchant.patch @@ -0,0 +1,262 @@ +diff -x '*orig' -uNr gtkspell-2.0.11/configure.ac gtkspell-2.0.11.patched/configure.ac +--- gtkspell-2.0.11/configure.ac 2005-05-27 23:38:33.000000000 +0200 ++++ gtkspell-2.0.11.patched/configure.ac 2006-04-05 15:51:17.000000000 +0200 +@@ -4,18 +4,12 @@ + AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) + AC_CONFIG_HEADERS([config.h]) + +-AC_CHECK_HEADER(aspell.h, [AC_DEFINE(HAVE_ASPELL_H,1, +- [Define to 1 if you have the <aspell.h> header file.] )] ) +-AC_CHECK_HEADER(pspell/pspell.h, [AC_DEFINE(HAVE_PSPELL_H,1, +- [Define to 1 if you have the <pspell/pspell.h> header file.] )] ) +-AC_CHECK_LIB(aspell, new_aspell_speller, SPELLER_LIB="-laspell", +- [AC_CHECK_LIB(pspell, new_pspell_manager, SPELLER_LIB="-lpspell", +- [AC_MSG_ERROR([You must have the aspell or pspell dev libraries to build gtkspell.]) ] ) ] ) ++SPELLER_LIB=-lenchant + + AC_SUBST(SPELLER_LIB) + GTKSPELL_PACKAGES=gtk+-2.0 + AC_SUBST(GTKSPELL_PACKAGES) +-PKG_CHECK_MODULES(GTKSPELL, $GTKSPELL_PACKAGES) ++PKG_CHECK_MODULES(GTKSPELL, $GTKSPELL_PACKAGES enchant >= 0.4.0 ) + AC_SUBST(GTKSPELL_CFLAGS) + AC_SUBST(GTKSPELL_LIBS) + +diff -x '*orig' -uNr gtkspell-2.0.11/gtkspell/gtkspell.c gtkspell-2.0.11.patched/gtkspell/gtkspell.c +--- gtkspell-2.0.11/gtkspell/gtkspell.c 2005-05-27 23:09:10.000000000 +0200 ++++ gtkspell-2.0.11.patched/gtkspell/gtkspell.c 2006-04-05 15:52:08.000000000 +0200 +@@ -14,37 +14,7 @@ + + #define GTKSPELL_MISSPELLED_TAG "gtkspell-misspelled" + +-#ifdef HAVE_ASPELL_H +- #define USING_ASPELL +- #include <aspell.h> +-#elif defined HAVE_PSPELL_H +- #define USING_PSPELL +- #include <pspell/pspell.h> +- #define AspellSpeller PspellManager +- #define speller manager +- #define aspell_speller_check pspell_manager_check +- #define aspell_speller_add_to_session pspell_manager_add_to_session +- #define aspell_speller_add_to_personal pspell_manager_add_to_personal +- #define aspell_speller_save_all_word_lists pspell_manager_save_all_word_lists +- #define aspell_speller_store_replacement pspell_manager_store_replacement +- #define AspellWordList PspellWordList +- #define AspellStringEnumeration PspellStringEmulation +- #define aspell_speller_suggest pspell_manager_suggest +- #define aspell_word_list_elements pspell_word_list_elements +- #define aspell_string_enumeration_next pspell_string_emulation_next +- #define delete_aspell_string_enumeration delete_pspell_string_emulation +- #define AspellConfig PspellConfig +- #define AspellCanHaveError PspellCanHaveError +- #define new_aspell_config new_pspell_config +- #define aspell_config_replace pspell_config_replace +- #define new_aspell_speller new_pspell_manager +- #define delete_aspell_config delete_pspell_config +- #define aspell_error_message pspell_error_message +- #define delete_aspell_speller delete_pspell_manager +- #define to_aspell_speller to_pspell_manager +- #define aspell_error_number pspell_error_number +- #define aspell pspell +-#endif ++#include <enchant.h> + + const int debug = 0; + const int quiet = 0; +@@ -55,7 +25,8 @@ + GtkTextMark *mark_insert_start; + GtkTextMark *mark_insert_end; + gboolean deferred_check; +- AspellSpeller *speller; ++ EnchantBroker *broker; ++ EnchantDict *speller; + GtkTextMark *mark_click; + }; + +@@ -124,10 +95,12 @@ + check_word(GtkSpell *spell, GtkTextBuffer *buffer, + GtkTextIter *start, GtkTextIter *end) { + char *text; ++ if (!spell->speller) ++ return; + text = gtk_text_buffer_get_text(buffer, start, end, FALSE); + if (debug) g_print("checking: %s\n", text); + if (g_unichar_isdigit(*text) == FALSE) /* don't check numbers */ +- if (aspell_speller_check(spell->speller, text, -1) == FALSE) ++ if (enchant_dict_check(spell->speller, text, strlen(text)) != 0) + gtk_text_buffer_apply_tag(buffer, spell->tag_highlight, start, end); + g_free(text); + } +@@ -302,8 +275,7 @@ + get_word_extents_from_mark(buffer, &start, &end, spell->mark_click); + word = gtk_text_buffer_get_text(buffer, &start, &end, FALSE); + +- aspell_speller_add_to_personal(spell->speller, word, strlen(word)); +- aspell_speller_save_all_word_lists(spell->speller); ++ enchant_dict_add_to_pwl( spell->speller, word, strlen(word)); + + gtkspell_recheck_all(spell); + +@@ -321,7 +293,7 @@ + get_word_extents_from_mark(buffer, &start, &end, spell->mark_click); + word = gtk_text_buffer_get_text(buffer, &start, &end, FALSE); + +- aspell_speller_add_to_session(spell->speller, word, strlen(word)); ++ enchant_dict_add_to_session(spell->speller, word, strlen(word)); + + gtkspell_recheck_all(spell); + +@@ -335,6 +307,9 @@ + GtkTextIter start, end; + GtkTextBuffer *buffer; + ++ if (!spell->speller) ++ return; ++ + buffer = gtk_text_view_get_buffer(spell->view); + + get_word_extents_from_mark(buffer, &start, &end, spell->mark_click); +@@ -350,33 +325,33 @@ + gtk_text_buffer_delete(buffer, &start, &end); + gtk_text_buffer_insert(buffer, &start, newword, -1); + +- aspell_speller_store_replacement(spell->speller, ++ enchant_dict_store_replacement(spell->speller, + oldword, strlen(oldword), + newword, strlen(newword)); + + g_free(oldword); + } + +-GtkWidget* ++static GtkWidget* + build_suggestion_menu(GtkSpell *spell, GtkTextBuffer *buffer, + const char *word) { + const char *suggestion; + GtkWidget *topmenu, *menu; + GtkWidget *mi; + GtkWidget *hbox; +- int count = 0; + void *spelldata; +- const AspellWordList *suggestions; +- AspellStringEnumeration *elements; ++ char **suggestions; ++ size_t n_suggs, i; + char *label; + + topmenu = menu = gtk_menu_new(); + +- suggestions = aspell_speller_suggest(spell->speller, word, -1); +- elements = aspell_word_list_elements(suggestions); ++ if (!spell->speller) ++ return topmenu; + +- suggestion = aspell_string_enumeration_next(elements); +- if (suggestion == NULL) { ++ suggestions = enchant_dict_suggest(spell->speller, word, strlen(word), &n_suggs); ++ ++ if (suggestions == NULL || !n_suggs) { + /* no suggestions. put something in the menu anyway... */ + GtkWidget *label; + label = gtk_label_new(""); +@@ -388,8 +363,8 @@ + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); + } else { + /* build a set of menus with suggestions. */ +- while (suggestion != NULL) { +- if (count == 10) { ++ for (i = 0; i < n_suggs; i++ ) { ++ if (i > 0 && i % 10 == 0) { + mi = gtk_menu_item_new(); + gtk_widget_show(mi); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); +@@ -400,19 +375,16 @@ + + menu = gtk_menu_new(); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi), menu); +- count = 0; + } +- mi = gtk_menu_item_new_with_label(suggestion); ++ mi = gtk_menu_item_new_with_label(suggestions[i]); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(replace_word), spell); + gtk_widget_show(mi); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); +- count++; +- suggestion = aspell_string_enumeration_next(elements); + } + } + +- delete_aspell_string_enumeration(elements); ++ enchant_dict_free_suggestions(spell->speller, suggestions); + + /* Separator */ + mi = gtk_menu_item_new(); +@@ -517,9 +489,6 @@ + + static gboolean + gtkspell_set_language_internal(GtkSpell *spell, const gchar *lang, GError **error) { +- AspellConfig *config; +- AspellCanHaveError *err; +- AspellSpeller *speller; + + if (lang == NULL) { + lang = g_getenv("LANG"); +@@ -531,26 +500,25 @@ + } + } + +- config = new_aspell_config(); +- if (lang) +- aspell_config_replace(config, "language-tag", lang); +- aspell_config_replace(config, "encoding", "utf-8"); +- err = new_aspell_speller(config); +- delete_aspell_config(config); ++ if (!spell->broker) ++ spell->broker = enchant_broker_init(); + +- if (aspell_error_number(err) != 0) { +-#ifdef USING_ASPELL +- g_set_error(error, GTKSPELL_ERROR, GTKSPELL_ERROR_BACKEND, +- "aspell: %s", aspell_error_message(err)); +-#elif defined USING_PSPELL ++ if (spell->speller) { ++ enchant_broker_free_dict(spell->broker, spell->speller); ++ spell->speller = NULL; ++ } ++ ++ if (!lang) { ++ lang = "en"; ++ } ++ ++ spell->speller = enchant_broker_request_dict(spell->broker, lang ); ++ ++ if (!spell->speller) { + g_set_error(error, GTKSPELL_ERROR, GTKSPELL_ERROR_BACKEND, +- "pspell: %s", aspell_error_message(err)); +-#endif ++ _("enchant error for language: %s"),lang); + return FALSE; + } +- if (spell->speller) +- delete_aspell_speller(spell->speller); +- spell->speller = to_aspell_speller(err); + + return TRUE; + } +@@ -713,8 +681,13 @@ + gtk_text_buffer_delete_mark(buffer, spell->mark_insert_end); + gtk_text_buffer_delete_mark(buffer, spell->mark_click); + +- delete_aspell_speller(spell->speller); + ++ if (spell->broker) { ++ if (spell->speller) { ++ enchant_broker_free_dict(spell->broker, spell->speller); ++ } ++ enchant_broker_free(spell->broker); ++ } + g_signal_handlers_disconnect_matched(spell->view, + G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, |