diff options
author | Dom Lachowicz <domlachowicz@gmail.com> | 2003-10-27 03:41:50 +0000 |
---|---|---|
committer | Dom Lachowicz <domlachowicz@gmail.com> | 2003-10-27 03:41:50 +0000 |
commit | e116f40ec4843e94a07824d8fb571cfccc4f6020 (patch) | |
tree | 0e83f3ba5bf381f18b77f3e9bf3ff3cb07ae8bd7 | |
parent | 142ec05cbb207cedb33548b6bddfd362fc26232e (diff) | |
download | enchant-e116f40ec4843e94a07824d8fb571cfccc4f6020.tar.gz |
support querying which provider a particular language uses
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@20887 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r-- | tests/enchant-lsmod.c | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/tests/enchant-lsmod.c b/tests/enchant-lsmod.c index a3069ee..efd3138 100644 --- a/tests/enchant-lsmod.c +++ b/tests/enchant-lsmod.c @@ -34,6 +34,17 @@ #include "enchant.h" static void +describe_dict (const char * const lang_tag, + const char * const provider_name, + const char * const provider_desc, + const char * const provider_file, + void * ud) +{ + (void)ud; + printf ("%s: %s = %s (%s)\n", lang_tag, provider_name, provider_desc, provider_file); +} + +static void enumerate_dicts (const char * name, const char * desc, const char * file, @@ -48,11 +59,48 @@ main (int argc, char **argv) { EnchantBroker *broker; EnchantDict *dict; + char * lang_tag = NULL; - broker = enchant_broker_init (); + int mode = 0, i; + + for (i = 1; i < argc; i++) { + if (!strcmp (argv[i], "-lang")) { + if (i < argc) { + lang_tag = argv[i+1]; + i++; + } + mode = 1; + } else if (!strcmp (argv[i], "-h") || !strcmp(argv[i], "-help")) { + printf ("%s [-lang language_tag] [-h] [-v]\n", argv[0]); + return 0; + } else if (!strcmp (argv[i], "-v")) { + printf ("%s %s\n", argv[0], VERSION); + return 0; + } + } - enchant_broker_describe (broker, enumerate_dicts, NULL); + broker = enchant_broker_init (); + if (mode == 0) { + enchant_broker_describe (broker, enumerate_dicts, NULL); + } else if (mode == 1) { + + if (!lang_tag) { + printf ("Error: language tag not specified\n"); + return 1; + } + + dict = enchant_broker_request_dict (broker, lang_tag); + + if (!dict) { + printf ("No dictionary available for '%s'\n", lang_tag); + return 1; + } else { + enchant_dict_describe (dict, describe_dict, NULL); + enchant_broker_free_dict (broker, dict); + } + } + enchant_broker_free (broker); return 0; |