aboutsummaryrefslogtreecommitdiff
path: root/argp/argp-parse.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-03-06 12:45:08 +0000
committerUlrich Drepper <drepper@redhat.com>1998-03-06 12:45:08 +0000
commit9184d3db100aff82d081a70442842344da84cf4b (patch)
treea00b4a406480b3afcfcf447bc41aa4bbaeadb830 /argp/argp-parse.c
parentac16e90592f0b9842e193e2ebe0b3756f0b4361d (diff)
downloadglibc-9184d3db100aff82d081a70442842344da84cf4b.zip
glibc-9184d3db100aff82d081a70442842344da84cf4b.tar.gz
glibc-9184d3db100aff82d081a70442842344da84cf4b.tar.bz2
Update.
1998-03-06 12:42 Ulrich Drepper <drepper@cygnus.com> * argp/argp.h (struct argp): Add new field domain. * argp/argp-help.c: Change all gettext calls to dgettext and use domain field from appropriate argp in call. * argp/argp-parse.c: Likewise.
Diffstat (limited to 'argp/argp-parse.c')
-rw-r--r--argp/argp-parse.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/argp/argp-parse.c b/argp/argp-parse.c
index 553dd88..e2ddd6d 100644
--- a/argp/argp-parse.c
+++ b/argp/argp-parse.c
@@ -1,5 +1,5 @@
/* Hierarchial argument parsing, layered over getopt
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -33,9 +33,8 @@
When compiling libc, the _ macro is predefined. */
#ifdef HAVE_LIBINTL_H
# include <libintl.h>
-# define _(msgid) gettext (msgid)
#else
-# define _(msgid) (msgid)
+# define dgettext(domain, msgid) (msgid)
# define gettext(msgid) (msgid)
#endif
#define N_(msgid) (msgid)
@@ -161,7 +160,8 @@ argp_version_parser (int key, char *arg, struct argp_state *state)
else if (argp_program_version)
fprintf (state->out_stream, "%s\n", argp_program_version);
else
- __argp_error (state, _("(PROGRAM ERROR) No version known!?"));
+ __argp_error (state, dgettext (state->root_argp->argp_domain,
+ "(PROGRAM ERROR) No version known!?"));
if (! (state->flags & ARGP_NO_EXIT))
exit (0);
break;
@@ -634,7 +634,8 @@ parser_finalize (struct parser *parser,
{
if (!(parser->state.flags & ARGP_NO_ERRS) && parser->state.err_stream)
fprintf (parser->state.err_stream,
- _("%s: Too many arguments\n"), parser->state.name);
+ dgettext (parser->argp->argp_domain,
+ "%s: Too many arguments\n"), parser->state.name);
err = EBADKEY;
}
@@ -775,7 +776,8 @@ parser_parse_opt (struct parser *parser, int opt, char *val)
static const char bad_key_err[] =
N_("(PROGRAM ERROR) Option should have been recognized!?");
if (group_key == 0)
- __argp_error (&parser->state, "-%c: %s", opt, _(bad_key_err));
+ __argp_error (&parser->state, "-%c: %s", opt,
+ dgettext (parser->argp->argp_domain, bad_key_err));
else
{
struct option *long_opt = parser->long_opts;
@@ -783,9 +785,9 @@ parser_parse_opt (struct parser *parser, int opt, char *val)
long_opt++;
__argp_error (&parser->state, "--%s: %s",
long_opt->name ? long_opt->name : "???",
- _(bad_key_err));
+ dgettext (parser->argp->argp_domain, bad_key_err));
}
- }
+ }
return err;
}
@@ -867,7 +869,7 @@ parser_parse_next (struct parser *parser, int *arg_ebadkey)
err = parser_parse_arg (parser, optarg);
else
err = parser_parse_opt (parser, opt, optarg);
-
+
if (err == EBADKEY)
*arg_ebadkey = (opt == KEY_END || opt == KEY_ARG);