summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDom Lachowicz <domlachowicz@gmail.com>2003-10-27 14:10:34 +0000
committerDom Lachowicz <domlachowicz@gmail.com>2003-10-27 14:10:34 +0000
commit6bed8d5ce297b8c5e377d24cc24dd789927d7bfd (patch)
treea6dfad11709d3aad5cfdbde648fc3d0131febca5
parentb639aa621df0b1818269cde1bcff85ed4d854bc5 (diff)
downloadenchant-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.c42
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;