summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}