diff options
author | Dom Lachowicz <domlachowicz@gmail.com> | 2003-10-27 14:10:34 +0000 |
---|---|---|
committer | Dom Lachowicz <domlachowicz@gmail.com> | 2003-10-27 14:10:34 +0000 |
commit | 6bed8d5ce297b8c5e377d24cc24dd789927d7bfd (patch) | |
tree | a6dfad11709d3aad5cfdbde648fc3d0131febca5 | |
parent | b639aa621df0b1818269cde1bcff85ed4d854bc5 (diff) | |
download | enchant-6bed8d5ce297b8c5e377d24cc24dd789927d7bfd.tar.gz |
if no language is specified to enchant-lsmod, use en_US.UTF-8
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@20889 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r-- | tests/enchant-lsmod.c | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/tests/enchant-lsmod.c b/tests/enchant-lsmod.c index 82bf108..9e028f8 100644 --- a/tests/enchant-lsmod.c +++ b/tests/enchant-lsmod.c @@ -28,6 +28,7 @@ * do so, delete this exception statement from your version. */ +#include <glib.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -38,20 +39,20 @@ 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 * user_data) { - (void)ud; - printf ("%s: %s = %s (%s)\n", lang_tag, provider_name, provider_desc, provider_file); + FILE * out = (FILE *)user_data; + fprintf (out, "%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, - void * ud) + void * user_data) { - (void)ud; - printf ("%s: '%s' (%s)\n", name, desc, file); + FILE * out = (FILE *)user_data; + fprintf (out, "%s: '%s' (%s)\n", name, desc, file); } int @@ -65,16 +66,22 @@ main (int argc, char **argv) for (i = 1; i < argc; i++) { if (!strcmp (argv[i], "-lang")) { - if (i < argc) { - lang_tag = argv[i+1]; + if (i < (argc - 1)) { + lang_tag = g_strdup (argv[i+1]); i++; + } else { + lang_tag = g_strdup (g_getenv ("LANG")); } mode = 1; - } else if (!strcmp (argv[i], "-h") || !strcmp(argv[i], "-help")) { - printf ("%s [-lang language_tag] [-h] [-v]\n", argv[0]); + } else if (!strcmp (argv[i], "-h") || !strcmp (argv[i], "-?") || !strcmp(argv[i], "-help")) { + printf ("%s [-lang [language_tag]] [-h] [-v]\n", argv[0]); + if (lang_tag) + g_free (lang_tag); return 0; - } else if (!strcmp (argv[i], "-v")) { + } else if (!strcmp (argv[i], "-v") || !strcmp (argv[i], "-version")) { printf ("%s %s\n", argv[0], VERSION); + if (lang_tag) + g_free (lang_tag); return 0; } } @@ -82,11 +89,11 @@ main (int argc, char **argv) broker = enchant_broker_init (); if (mode == 0) { - enchant_broker_describe (broker, enumerate_dicts, NULL); + enchant_broker_describe (broker, enumerate_dicts, stdout); } else if (mode == 1) { if (!lang_tag) { - printf ("Error: language tag not specified\n"); + printf ("Error: language tag not specified and environment variable $LANG not set\n"); enchant_broker_free (broker); return 1; } @@ -95,14 +102,21 @@ main (int argc, char **argv) if (!dict) { printf ("No dictionary available for '%s'\n", lang_tag); + + if (lang_tag) + g_free (lang_tag); + enchant_broker_free (broker); return 1; } else { - enchant_dict_describe (dict, describe_dict, NULL); + enchant_dict_describe (dict, describe_dict, stdout); enchant_broker_free_dict (broker, dict); } } + if (lang_tag) + g_free (lang_tag); + enchant_broker_free (broker); return 0; |