summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDom Lachowicz <domlachowicz@gmail.com>2009-05-22 21:01:44 +0000
committerDom Lachowicz <domlachowicz@gmail.com>2009-05-22 21:01:44 +0000
commita4752461806f3a9a3672c718e9042c6a0e7bcb2d (patch)
tree215cc58f43116f3bd316cbcf481effc71ec0f38f
parent37279c6e3821c5499287a62fe3ea7b11eb6bc853 (diff)
downloadenchant-a4752461806f3a9a3672c718e9042c6a0e7bcb2d.tar.gz
public API that will be used to pass information on to the spell checking libraries. such as a path to its dictionaries.
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@26479 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r--src/enchant.c25
-rw-r--r--src/enchant.h6
2 files changed, 30 insertions, 1 deletions
diff --git a/src/enchant.c b/src/enchant.c
index 0e1b153..456241f 100644
--- a/src/enchant.c
+++ b/src/enchant.c
@@ -70,6 +70,7 @@ struct str_enchant_broker
GSList *provider_list; /* list of all of the spelling backend providers */
GHashTable *dict_map; /* map of language tag -> dictionary */
GHashTable *provider_ordering; /* map of language tag -> provider order */
+ GHashTable *params;
gchar * error;
};
@@ -1670,7 +1671,7 @@ enchant_broker_init (void)
broker->dict_map = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, enchant_dict_destroyed);
-
+ broker->params = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
enchant_load_providers (broker);
enchant_load_provider_ordering (broker);
@@ -1699,6 +1700,7 @@ enchant_broker_free (EnchantBroker * broker)
/* will destroy any remaining dictionaries for us */
g_hash_table_destroy (broker->dict_map);
g_hash_table_destroy (broker->provider_ordering);
+ g_hash_table_destroy (broker->params);
g_slist_foreach (broker->provider_list, enchant_provider_free, NULL);
g_slist_free (broker->provider_list);
@@ -2258,3 +2260,24 @@ enchant_get_prefix_dir(void)
return prefix;
}
+
+ENCHANT_MODULE_EXPORT(char *)
+enchant_broker_get_param (EnchantBroker * broker, const char * const param_name)
+{
+ g_return_val_if_fail (broker, NULL);
+ g_return_val_if_fail (param_name && *param_name, NULL);
+
+ return g_hash_table_lookup (broker->params, param_name);
+}
+
+ENCHANT_MODULE_EXPORT(void)
+enchant_broker_set_param (EnchantBroker * broker, const char * const param_name, const char * const param_value)
+{
+ g_return_if_fail (broker);
+ g_return_if_fail (param_name && *param_name);
+
+ if (param_value == NULL || *param_value == '\0')
+ g_hash_table_remove (broker->params, param_name);
+ else
+ g_hash_table_insert (broker->params, g_strdup (param_name), g_strdup (param_value));
+}
diff --git a/src/enchant.h b/src/enchant.h
index 2314f9f..e57ed05 100644
--- a/src/enchant.h
+++ b/src/enchant.h
@@ -73,6 +73,12 @@ ENCHANT_MODULE_EXPORT (void)
ENCHANT_MODULE_EXPORT(char *)
enchant_broker_get_error (EnchantBroker * broker);
+/* const */
+ENCHANT_MODULE_EXPORT(char *)
+ enchant_broker_get_param (EnchantBroker * broker, const char * const param_name);
+ENCHANT_MODULE_EXPORT(void)
+ enchant_broker_set_param (EnchantBroker * broker, const char * const param_name, const char * const param_value);
+
/**
* EnchantBrokerDescribeFn
* @provider_name: The provider's identifier, such as "ispell" or "aspell" in UTF8 encoding