Revision: 944 http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=944&view=rev Author: eht16 Date: 2009-09-20 19:20:25 +0000 (Sun, 20 Sep 2009)
Log Message: ----------- Add preliminary support for configurable dictionary directories.
Modified Paths: -------------- trunk/geany-plugins/spellcheck/ChangeLog trunk/geany-plugins/spellcheck/src/speller.c
Modified: trunk/geany-plugins/spellcheck/ChangeLog =================================================================== --- trunk/geany-plugins/spellcheck/ChangeLog 2009-09-20 19:17:32 UTC (rev 943) +++ trunk/geany-plugins/spellcheck/ChangeLog 2009-09-20 19:20:25 UTC (rev 944) @@ -2,6 +2,8 @@
* src/scplugin.c: Remove more unused code. + * src/speller.c: + Add preliminary support for configurable dictionary directories.
2009-08-09 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/geany-plugins/spellcheck/src/speller.c =================================================================== --- trunk/geany-plugins/spellcheck/src/speller.c 2009-09-20 19:17:32 UTC (rev 943) +++ trunk/geany-plugins/spellcheck/src/speller.c 2009-09-20 19:20:25 UTC (rev 944) @@ -396,10 +396,47 @@ }
+#ifdef HAVE_ENCHANT_1_5 +/* TODO make this configurable */ +static gchar *get_dictionary_directory(void) +{ +#ifdef G_OS_WIN32 + gchar *path, *result; +# if GLIB_CHECK_VERSION(2, 16, 0) + path = g_win32_get_package_installation_directory_of_module(NULL); +# else + path = g_win32_get_package_installation_directory(NULL, NULL); +# endif + result = g_build_filename(path, "dict", NULL); + g_free(path); + return result; +#else + return g_build_filename(geany->app->datadir, "dict", NULL); +#endif +} +#endif + + void sc_speller_init(void) { + const gchar *old_path; + gchar *new_path, *dict_dir; + sc_speller_broker = enchant_broker_init(); +#if HAVE_ENCHANT_1_5 + /* add custom dictionary path for myspell (primarily used on Windows) */ + dict_dir = get_dictionary_directory(); + old_path = enchant_broker_get_param(sc_speller_broker, "enchant.myspell.dictionary.path"); + if (old_path != NULL) + new_path = g_strconcat(old_path, G_SEARCHPATH_SEPARATOR_S, dict_dir, NULL); + else + new_path = dict_dir;
+ enchant_broker_set_param(sc_speller_broker, "enchant.myspell.dictionary.path", new_path); + if (new_path != dict_dir) + g_free(dict_dir); + g_free(new_path); +#endif create_dicts_array();
sc_speller_reinit_enchant_dict();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
plugins-commits@lists.geany.org