summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDom Lachowicz <domlachowicz@gmail.com>2009-05-22 21:34:06 +0000
committerDom Lachowicz <domlachowicz@gmail.com>2009-05-22 21:34:06 +0000
commiteceb0e0441abbc696cee6d4c00ba1a226351038c (patch)
tree99e453056505ab854000b3bead47cdde087c4aa9
parent38d3b1737836861a1bed5d8b4f05e8b3c0aa4a89 (diff)
downloadenchant-eceb0e0441abbc696cee6d4c00ba1a226351038c.tar.gz
myspell and ispell now query for any programatically-set dictionary paths. the function that parses the path is not yet implemented.
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@26482 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r--src/enchant-provider.h3
-rw-r--r--src/enchant.c6
-rw-r--r--src/ispell/ispell_checker.cpp14
-rw-r--r--src/myspell/myspell_checker.cpp14
4 files changed, 37 insertions, 0 deletions
diff --git a/src/enchant-provider.h b/src/enchant-provider.h
index 88653a5..fafcd7d 100644
--- a/src/enchant-provider.h
+++ b/src/enchant-provider.h
@@ -74,6 +74,9 @@ ENCHANT_MODULE_EXPORT(void)
ENCHANT_MODULE_EXPORT(FILE *)
enchant_fopen (const gchar *filename, const gchar *mode);
+ENCHANT_MODULE_EXPORT (GSList *)
+ enchant_get_dirs_from_param (EnchantBroker * broker, const char * const param_name);
+
struct str_enchant_dict
{
void *user_data;
diff --git a/src/enchant.c b/src/enchant.c
index 190f998..9429c91 100644
--- a/src/enchant.c
+++ b/src/enchant.c
@@ -2282,3 +2282,9 @@ enchant_broker_set_param (EnchantBroker * broker, const char * const param_name,
else
g_hash_table_insert (broker->params, g_strdup (param_name), g_strdup (param_value));
}
+
+ENCHANT_MODULE_EXPORT (GSList *)
+enchant_get_dirs_from_param (EnchantBroker * broker, const char * const param_name)
+{
+ return NULL;
+}
diff --git a/src/ispell/ispell_checker.cpp b/src/ispell/ispell_checker.cpp
index fd1fdf4..59aad47 100644
--- a/src/ispell/ispell_checker.cpp
+++ b/src/ispell/ispell_checker.cpp
@@ -357,6 +357,20 @@ ispell_checker_get_dictionary_dirs (EnchantBroker * broker)
dirs = g_slist_append (dirs, g_strdup (ENCHANT_ISPELL_DICT_DIR));
#endif
+ {
+ GSList *config_dirs, *iter;
+
+ config_dirs = enchant_get_dirs_from_param (broker, "enchant.ispell.dictionary.path");
+
+ for (iter = config_dirs; iter; iter = iter->next)
+ {
+ dirs = g_slist_append (dirs, g_strdup ((const gchar *)iter->data));
+ }
+
+ g_slist_foreach (config_dirs, (GFunc)g_free, NULL);
+ g_slist_free (config_dirs);
+ }
+
return dirs;
}
diff --git a/src/myspell/myspell_checker.cpp b/src/myspell/myspell_checker.cpp
index 88f9636..6ee761e 100644
--- a/src/myspell/myspell_checker.cpp
+++ b/src/myspell/myspell_checker.cpp
@@ -280,6 +280,20 @@ myspell_checker_get_dictionary_dirs (EnchantBroker * broker)
}
#endif
+ {
+ GSList *config_dirs, *iter;
+
+ config_dirs = enchant_get_dirs_from_param (broker, "enchant.myspell.dictionary.path");
+
+ for (iter = config_dirs; iter; iter = iter->next)
+ {
+ dirs = g_slist_append (dirs, g_strdup ((const gchar *)iter->data));
+ }
+
+ g_slist_foreach (config_dirs, (GFunc)g_free, NULL);
+ g_slist_free (config_dirs);
+ }
+
return dirs;
}