diff options
author | Dom Lachowicz <domlachowicz@gmail.com> | 2009-05-22 21:01:44 +0000 |
---|---|---|
committer | Dom Lachowicz <domlachowicz@gmail.com> | 2009-05-22 21:01:44 +0000 |
commit | a4752461806f3a9a3672c718e9042c6a0e7bcb2d (patch) | |
tree | 215cc58f43116f3bd316cbcf481effc71ec0f38f | |
parent | 37279c6e3821c5499287a62fe3ea7b11eb6bc853 (diff) | |
download | enchant-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.c | 25 | ||||
-rw-r--r-- | src/enchant.h | 6 |
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 |