* inet/getnetgrent_r.c (innetgr): Add int* parameter to getfct
	definition and pass &errno in use of this variable.
	Reported by Simon Wilkinson <simon@sxw.org.uk> [PR libc/2911].

2002-02-04  Andreas Schwab  <schwab@suse.de>

	* locale/programs/localedef.h (WITH_CUR_LOCALE): Define.
	* locale/programs/charmap-dir.c: Wrap calls that output messages
	with WITH_CUR_LOCALE.  Include "localedef.h" first.
	* locale/programs/charmap.c: Likewise.
	* locale/programs/ld-address.c: Likewise.
	* locale/programs/ld-collate.c: Likewise.
	* locale/programs/ld-ctype.c: Likewise.
	* locale/programs/ld-identification.c: Likewise.
	* locale/programs/ld-measurement.c: Likewise.
	* locale/programs/ld-messages.c: Likewise.
	* locale/programs/ld-monetary.c: Likewise.
	* locale/programs/ld-name.c: Likewise.
	* locale/programs/ld-numeric.c: Likewise.
	* locale/programs/ld-paper.c: Likewise.
	* locale/programs/ld-telephone.c: Likewise.
	* locale/programs/ld-time.c: Likewise.
	* locale/programs/linereader.c: Likewise.
	* locale/programs/linereader.h: Likewise.
	* locale/programs/localedef.c: Likewise.
	* locale/programs/locfile.c: Likewise.
	* locale/programs/repertoire.c: Likewise.

2002-02-05  Ulrich Drepper  <drepper@redhat.com>
This commit is contained in:
Ulrich Drepper 2002-02-05 23:29:24 +00:00
parent 475361200b
commit f2b98f97eb
22 changed files with 453 additions and 368 deletions

View File

@ -1,3 +1,33 @@
2002-02-05 Ulrich Drepper <drepper@redhat.com>
* inet/getnetgrent_r.c (innetgr): Add int* parameter to getfct
definition and pass &errno in use of this variable.
Reported by Simon Wilkinson <simon@sxw.org.uk> [PR libc/2911].
2002-02-04 Andreas Schwab <schwab@suse.de>
* locale/programs/localedef.h (WITH_CUR_LOCALE): Define.
* locale/programs/charmap-dir.c: Wrap calls that output messages
with WITH_CUR_LOCALE. Include "localedef.h" first.
* locale/programs/charmap.c: Likewise.
* locale/programs/ld-address.c: Likewise.
* locale/programs/ld-collate.c: Likewise.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/ld-identification.c: Likewise.
* locale/programs/ld-measurement.c: Likewise.
* locale/programs/ld-messages.c: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-name.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/ld-paper.c: Likewise.
* locale/programs/ld-telephone.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* locale/programs/linereader.c: Likewise.
* locale/programs/linereader.h: Likewise.
* locale/programs/localedef.c: Likewise.
* locale/programs/locfile.c: Likewise.
* locale/programs/repertoire.c: Likewise.
2002-02-05 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (_dl_start_final): Determine load address to locate

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -298,7 +298,7 @@ innetgr (const char *netgroup, const char *host, const char *user,
{
int (*setfct) (const char *, struct __netgrent *);
void (*endfct) (struct __netgrent *);
int (*getfct) (struct __netgrent *, char *, size_t);
int (*getfct) (struct __netgrent *, char *, size_t, int *);
struct name_list *known = NULL;
struct name_list *needed = NULL;
int result = 0;
@ -328,7 +328,7 @@ innetgr (const char *netgroup, const char *host, const char *user,
{
char buffer[1024];
while ((*getfct) (&entry, buffer, sizeof buffer)
while ((*getfct) (&entry, buffer, sizeof buffer, &errno)
== NSS_STATUS_SUCCESS)
{
if (entry.type == group_val)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2000,2001 Free Software Foundation, Inc.
/* Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -28,11 +28,9 @@
#include <unistd.h>
#include <sys/stat.h>
#include "localedef.h"
#include "charmap-dir.h"
extern void *xmalloc (size_t n);
extern void *xrealloc (void *p, size_t n);
/* The data type of a charmap directory being traversed. */
struct charmap_dir
{
@ -58,8 +56,8 @@ charmap_opendir (const char *directory)
dir = opendir (directory);
if (dir == NULL)
{
error (1, errno, gettext ("cannot read character map directory `%s'"),
directory);
WITH_CUR_LOCALE (error (1, errno, gettext ("\
cannot read character map directory `%s'"), directory));
return NULL;
}

View File

@ -29,8 +29,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <error.h>
#include "error.h"
#include "localedef.h"
#include "linereader.h"
#include "charmap.h"
#include "charmap-dir.h"
@ -43,8 +44,6 @@
#include "charmap-kw.h"
extern void *xmalloc (size_t __n);
/* Prototypes for local functions. */
static struct charmap_t *parse_charmap (struct linereader *cmfile,
int verbose, int be_quiet);
@ -133,7 +132,8 @@ charmap_read (const char *filename, int verbose, int be_quiet, int use_default)
result = parse_charmap (cmfile, verbose, be_quiet);
if (result == NULL && !be_quiet)
error (0, errno, _("character map file `%s' not found"), filename);
WITH_CUR_LOCALE (error (0, errno, _("\
character map file `%s' not found"), filename));
}
}
@ -190,8 +190,8 @@ charmap_read (const char *filename, int verbose, int be_quiet, int use_default)
result = parse_charmap (cmfile, verbose, be_quiet);
if (result == NULL)
error (4, errno, _("default character map file `%s' not found"),
DEFAULT_CHARMAP);
WITH_CUR_LOCALE (error (4, errno, _("\
default character map file `%s' not found"), DEFAULT_CHARMAP));
}
/* Test of ASCII compatibility of locale encoding.
@ -247,9 +247,9 @@ charmap_read (const char *filename, int verbose, int be_quiet, int use_default)
while (*p++ != '\0');
if (failed)
fprintf (stderr, _("\
WITH_CUR_LOCALE (fprintf (stderr, _("\
character map `%s' is not ASCII compatible, locale not ISO C compliant\n"),
result->code_set_name);
result->code_set_name));
}
return result;
@ -324,9 +324,9 @@ parse_charmap (struct linereader *cmfile, int verbose, int be_quiet)
if (result->mb_cur_min > result->mb_cur_max)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: <mb_cur_max> must be greater than <mb_cur_min>\n"),
cmfile->fname);
cmfile->fname));
result->mb_cur_min = result->mb_cur_max;
}
@ -829,14 +829,16 @@ only WIDTH definitions are allowed to follow the CHARMAP definition"));
continue;
default:
error (5, 0, _("%s: error in state machine"), __FILE__);
WITH_CUR_LOCALE (error (5, 0, _("%s: error in state machine"),
__FILE__));
/* NOTREACHED */
}
break;
}
if (state != 91 && !be_quiet)
error (0, 0, _("%s: premature end of file"), cmfile->fname);
WITH_CUR_LOCALE (error (0, 0, _("%s: premature end of file"),
cmfile->fname));
lr_close (cmfile);

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -29,6 +29,7 @@
#include <assert.h>
#include "localedef.h"
#include "localeinfo.h"
#include "locfile.h"
@ -128,8 +129,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (address == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"),
"LC_ADDRESS");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_ADDRESS"));
address_startup (NULL, locale, 0);
address = locale->categories[LC_ADDRESS].address;
nothing = 1;
@ -139,8 +140,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (address->postal_fmt == NULL)
{
if (! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "postal_fmt");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "postal_fmt"));
/* Use as the default value the value of the i18n locale. */
address->postal_fmt = "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N";
}
@ -151,8 +152,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
const char *cp = address->postal_fmt;
if (*cp == '\0')
error (0, 0, _("%s: field `%s' must not be empty"),
"LC_ADDRESS", "postal_fmt");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
"LC_ADDRESS", "postal_fmt"));
else
while (*cp != '\0')
{
@ -163,9 +164,9 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
++cp;
if (strchr ("afdbshNtreCzTSc%", *cp) == NULL)
{
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: invalid escape `%%%c' sequence in field `%s'"),
"LC_ADDRESS", *cp, "postal_fmt");
"LC_ADDRESS", *cp, "postal_fmt"));
break;
}
}
@ -177,7 +178,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (address->cat == NULL) \
{ \
if (verbose && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), "LC_ADDRESS", #cat); \
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
"LC_ADDRESS", #cat)); \
address->cat = ""; \
}
@ -194,16 +196,16 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (address->lang_term == NULL)
{
if (verbose && ! nothing)
error (0, 0, _("%s: field `%s' not defined"), "LC_ADDRESS",
"lang_term");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "lang_term"));
address->lang_term = "";
cnt = sizeof (iso639) / sizeof (iso639[0]);
}
else if (address->lang_term[0] == '\0')
{
if (verbose)
error (0, 0, _("%s: field `%s' must not be empty"),
"LC_ADDRESS", "lang_term");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
"LC_ADDRESS", "lang_term"));
cnt = sizeof (iso639) / sizeof (iso639[0]);
}
else
@ -213,22 +215,23 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (strcmp (address->lang_term, iso639[cnt].term) == 0)
break;
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: terminology language code `%s' not defined"),
"LC_ADDRESS", address->lang_term);
"LC_ADDRESS", address->lang_term));
}
if (address->lang_ab == NULL)
{
if (verbose && ! nothing)
error (0, 0, _("%s: field `%s' not defined"), "LC_ADDRESS", "lang_ab");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "lang_ab"));
address->lang_ab = "";
}
else if (address->lang_ab[0] == '\0')
{
if (verbose)
error (0, 0, _("%s: field `%s' must not be empty"),
"LC_ADDRESS", "lang_ab");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
"LC_ADDRESS", "lang_ab"));
}
else
{
@ -239,15 +242,15 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (strcmp (address->lang_ab, iso639[cnt].ab) == 0)
break;
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: language abbreviation `%s' not defined"),
"LC_ADDRESS", address->lang_ab);
"LC_ADDRESS", address->lang_ab));
}
else
if (strcmp (iso639[cnt].ab, address->lang_ab) != 0)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: `%s' value does not match `%s' value"),
"LC_ADDRESS", "lang_ab", "lang_term");
"LC_ADDRESS", "lang_ab", "lang_term"));
}
if (address->lang_lib == NULL)
@ -256,8 +259,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
else if (address->lang_lib[0] == '\0')
{
if (verbose)
error (0, 0, _("%s: field `%s' must not be empty"),
"LC_ADDRESS", "lang_lib");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
"LC_ADDRESS", "lang_lib"));
}
else
{
@ -267,22 +270,22 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (strcmp (address->lang_lib, iso639[cnt].lib) == 0)
break;
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: language abbreviation `%s' not defined"),
"LC_ADDRESS", address->lang_lib);
"LC_ADDRESS", address->lang_lib));
}
else
if (strcmp (iso639[cnt].ab, address->lang_ab) != 0)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: `%s' value does not match `%s' value"), "LC_ADDRESS", "lang_lib",
helper == 1 ? "lang_term" : "lang_ab");
helper == 1 ? "lang_term" : "lang_ab"));
}
if (address->country_num == 0)
{
if (verbose && ! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "country_num");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "country_num"));
cnt = sizeof (iso3166) / sizeof (iso3166[0]);
}
else
@ -292,34 +295,36 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
break;
if (cnt == sizeof (iso3166) / sizeof (iso3166[0]))
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: numeric country code `%d' not valid"),
"LC_ADDRESS", address->country_num);
"LC_ADDRESS", address->country_num));
}
if (address->country_ab2 == NULL)
{
if (verbose && ! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "country_ab2");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "country_ab2"));
address->country_ab2 = " ";
}
else if (cnt != sizeof (iso3166) / sizeof (iso3166[0])
&& strcmp (address->country_ab2, iso3166[cnt].ab2) != 0)
error (0, 0, _("%s: `%s' value does not match `%s' value"),
"LC_ADDRESS", "country_ab2", "country_num");
WITH_CUR_LOCALE (error (0, 0,
_("%s: `%s' value does not match `%s' value"),
"LC_ADDRESS", "country_ab2", "country_num"));
if (address->country_ab3 == NULL)
{
if (verbose && ! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "country_ab3");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_ADDRESS", "country_ab3"));
address->country_ab3 = " ";
}
else if (cnt != sizeof (iso3166) / sizeof (iso3166[0])
&& strcmp (address->country_ab3, iso3166[cnt].ab3) != 0)
error (0, 0, _("%s: `%s' value does not match `%s' value"),
"LC_ADDRESS", "country_ab3", "country_num");
WITH_CUR_LOCALE (error (0, 0, _("\
%s: `%s' value does not match `%s' value"),
"LC_ADDRESS", "country_ab3", "country_num"));
}

View File

@ -27,11 +27,11 @@
#include <wchar.h>
#include <sys/param.h>
#include "localedef.h"
#include "charmap.h"
#include "localeinfo.h"
#include "linereader.h"
#include "locfile.h"
#include "localedef.h"
#include "elem-hash.h"
/* Uncomment the following line in the production version. */
@ -1516,7 +1516,8 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
{
/* No data, no check. */
if (! be_quiet)
error (0, 0, _("No definition for %s category found"), "LC_COLLATE");
WITH_CUR_LOCALE (error (0, 0, _("No definition for %s category found"),
"LC_COLLATE"));
return;
}
@ -1531,9 +1532,9 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
&& ((sect->rules[i] & sort_position)
!= (collate->sections->rules[i] & sort_position)))
{
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: `position' must be used for a specific level in all sections or none"),
"LC_COLLATE");
"LC_COLLATE"));
break;
}
@ -1554,9 +1555,10 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
{
if (runp->weights[i].w[j]->weights == NULL)
{
error_at_line (0, 0, runp->file, runp->line,
_("symbol `%s' not defined"),
runp->weights[i].w[j]->name);
WITH_CUR_LOCALE (error_at_line (0, 0, runp->file,
runp->line,
_("symbol `%s' not defined"),
runp->weights[i].w[j]->name));
need_undefined = 1;
runp->weights[i].w[j] = &collate->undefined;
@ -1629,11 +1631,14 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
/* This should not happen. It means that we have
to symbols with the same byte sequence. It is
of course an error. */
error_at_line (0, 0, (*eptr)->file, (*eptr)->line,
_("symbol `%s' has the same encoding as"),
(*eptr)->name);
error_at_line (0, 0, runp->file, runp->line,
_("symbol `%s'"), runp->name);
WITH_CUR_LOCALE (error_at_line (0, 0, (*eptr)->file,
(*eptr)->line,
_("\
symbol `%s' has the same encoding as"), (*eptr)->name);
error_at_line (0, 0, runp->file,
runp->line,
_("symbol `%s'"),
runp->name));
goto dont_insert;
}
else if (c < 0)
@ -1732,11 +1737,14 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
/* This should not happen. It means that we have
two symbols with the same byte sequence. It is
of course an error. */
error_at_line (0, 0, (*eptr)->file, (*eptr)->line,
_("symbol `%s' has the same encoding as"),
(*eptr)->name);
error_at_line (0, 0, runp->file, runp->line,
_("symbol `%s'"), runp->name);
WITH_CUR_LOCALE (error_at_line (0, 0, (*eptr)->file,
(*eptr)->line,
_("\
symbol `%s' has the same encoding as"), (*eptr)->name);
error_at_line (0, 0, runp->file,
runp->line,
_("symbol `%s'"),
runp->name));
goto dont_insertwc;
}
else if (c < 0)
@ -1777,7 +1785,7 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
/* This seems not to be enforced by recent standards. Don't
emit an error, simply append UNDEFINED at the end. */
if (0)
error (0, 0, _("no definition of `UNDEFINED'"));
WITH_CUR_LOCALE (error (0, 0, _("no definition of `UNDEFINED'")));
/* Add UNDEFINED at the end. */
collate->undefined.mborder =
@ -3389,8 +3397,8 @@ error while adding equivalent collating symbol"));
}
else if (state == 3)
{
error (0, 0, _("%s: missing `reorder-end' keyword"),
"LC_COLLATE");
WITH_CUR_LOCALE (error (0, 0, _("\
%s: missing `reorder-end' keyword"), "LC_COLLATE"));
state = 4;
}
else if (state != 2 && state != 4)
@ -3739,11 +3747,11 @@ error while adding equivalent collating symbol"));
}
}
else if (state == 3)
error (0, 0, _("%s: missing `reorder-end' keyword"),
"LC_COLLATE");
WITH_CUR_LOCALE (error (0, 0, _("\
%s: missing `reorder-end' keyword"), "LC_COLLATE"));
else if (state == 5)
error (0, 0, _("%s: missing `reorder-sections-end' keyword"),
"LC_COLLATE");
WITH_CUR_LOCALE (error (0, 0, _("\
%s: missing `reorder-sections-end' keyword"), "LC_COLLATE"));
}
arg = lr_token (ldfile, charmap, result, NULL, verbose);
if (arg->tok == tok_eof)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@ -33,13 +33,13 @@
#include <wctype.h>
#include <sys/uio.h>
#include "localedef.h"
#include "charmap.h"
#include "localeinfo.h"
#include "langinfo.h"
#include "linereader.h"
#include "locfile-token.h"
#include "locfile.h"
#include "localedef.h"
#include <assert.h>
@ -413,7 +413,8 @@ ctype_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (ctype == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"), "LC_CTYPE");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_CTYPE"));
ctype_startup (NULL, locale, charmap, NULL, 0);
ctype = locale->categories[LC_CTYPE].ctype;
}
@ -431,7 +432,8 @@ ctype_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (ctype->codeset_name == NULL)
{
if (! be_quiet)
error (0, 0, _("No character set name specified in charmap"));
WITH_CUR_LOCALE (error (0, 0, _("\
No character set name specified in charmap")));
ctype->codeset_name = "//UNKNOWN//";
}
@ -459,11 +461,12 @@ ctype_finish (struct localedef_t *locale, const struct charmap_t *charmap)
uint32_t value = ctype->charnames[cnt];
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
character L'\\u%0*x' in class `%s' must be in class `%s'"),
value > 0xffff ? 8 : 4, value,
valid_table[cls1].name,
valid_table[cls2].name);
value > 0xffff ? 8 : 4,
value,
valid_table[cls1].name,
valid_table[cls2].name));
}
break;
@ -473,11 +476,12 @@ character L'\\u%0*x' in class `%s' must be in class `%s'"),
uint32_t value = ctype->charnames[cnt];
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
character L'\\u%0*x' in class `%s' must not be in class `%s'"),
value > 0xffff ? 8 : 4, value,
valid_table[cls1].name,
valid_table[cls2].name);
value > 0xffff ? 8 : 4,
value,
valid_table[cls1].name,
valid_table[cls2].name));
}
break;
@ -486,8 +490,8 @@ character L'\\u%0*x' in class `%s' must not be in class `%s'"),
break;
default:
error (5, 0, _("internal error in %s, line %u"),
__FUNCTION__, __LINE__);
WITH_CUR_LOCALE (error (5, 0, _("\
internal error in %s, line %u"), __FUNCTION__, __LINE__));
}
}
}
@ -515,10 +519,11 @@ character L'\\u%0*x' in class `%s' must not be in class `%s'"),
snprintf (buf, sizeof buf, "\\%Zo", cnt);
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
character '%s' in class `%s' must be in class `%s'"),
buf, valid_table[cls1].name,
valid_table[cls2].name);
buf,
valid_table[cls1].name,
valid_table[cls2].name));
}
break;
@ -530,10 +535,11 @@ character '%s' in class `%s' must be in class `%s'"),
snprintf (buf, sizeof buf, "\\%Zo", cnt);
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
character '%s' in class `%s' must not be in class `%s'"),
buf, valid_table[cls1].name,
valid_table[cls2].name);
buf,
valid_table[cls1].name,
valid_table[cls2].name));
}
break;
@ -542,8 +548,8 @@ character '%s' in class `%s' must not be in class `%s'"),
break;
default:
error (5, 0, _("internal error in %s, line %u"),
__FUNCTION__, __LINE__);
WITH_CUR_LOCALE (error (5, 0, _("\
internal error in %s, line %u"), __FUNCTION__, __LINE__));
}
}
}
@ -559,8 +565,8 @@ character '%s' in class `%s' must not be in class `%s'"),
& BITw (tok_blank)) == 0)))
{
if (!be_quiet)
error (0, 0, _("<SP> character not in class `%s'"),
valid_table[cnt].name);
WITH_CUR_LOCALE (error (0, 0, _("<SP> character not in class `%s'"),
valid_table[cnt].name));
}
else if (((cnt = BITPOS (tok_punct),
(ELEM (ctype, class_collection, , space_value)
@ -571,8 +577,9 @@ character '%s' in class `%s' must not be in class `%s'"),
!= 0)))
{
if (!be_quiet)
error (0, 0, _("<SP> character must not be in class `%s'"),
valid_table[cnt].name);
WITH_CUR_LOCALE (error (0, 0, _("\
<SP> character must not be in class `%s'"),
valid_table[cnt].name));
}
else
ELEM (ctype, class_collection, , space_value) |= BITw (tok_print);
@ -585,7 +592,8 @@ character '%s' in class `%s' must not be in class `%s'"),
if (space_seq == NULL || space_seq->nbytes != 1)
{
if (!be_quiet)
error (0, 0, _("character <SP> not defined in character map"));
WITH_CUR_LOCALE (error (0, 0, _("\
character <SP> not defined in character map")));
}
else if (((cnt = BITPOS (tok_space),
(ctype->class256_collection[space_seq->bytes[0]]
@ -595,8 +603,8 @@ character '%s' in class `%s' must not be in class `%s'"),
& BIT (tok_blank)) == 0)))
{
if (!be_quiet)
error (0, 0, _("<SP> character not in class `%s'"),
valid_table[cnt].name);
WITH_CUR_LOCALE (error (0, 0, _("<SP> character not in class `%s'"),
valid_table[cnt].name));
}
else if (((cnt = BITPOS (tok_punct),
(ctype->class256_collection[space_seq->bytes[0]]
@ -606,8 +614,9 @@ character '%s' in class `%s' must not be in class `%s'"),
& BIT (tok_graph)) != 0)))
{
if (!be_quiet)
error (0, 0, _("<SP> character must not be in class `%s'"),
valid_table[cnt].name);
WITH_CUR_LOCALE (error (0, 0, _("\
<SP> character must not be in class `%s'"),
valid_table[cnt].name));
}
else
ctype->class256_collection[space_seq->bytes[0]] |= BIT (tok_print);
@ -697,7 +706,8 @@ character '%s' in class `%s' must not be in class `%s'"),
assert (ctype->mbdigits_act == ctype->wcdigits_act);
ctype->wcdigits_act -= ctype->mbdigits_act % 10;
ctype->mbdigits_act -= ctype->mbdigits_act % 10;
error (0, 0, _("`digit' category has not entries in groups of ten"));
WITH_CUR_LOCALE (error (0, 0, _("\
`digit' category has not entries in groups of ten")));
}
/* Check the input digits. There must be a multiple of ten available.
@ -745,8 +755,8 @@ character '%s' in class `%s' must not be in class `%s'"),
if (ctype->mbdigits[cnt] == NULL)
{
/* Hum, this ain't good. */
error (0, 0, _("\
no input digits defined and none of the standard names in the charmap"));
WITH_CUR_LOCALE (error (0, 0, _("\
no input digits defined and none of the standard names in the charmap")));
ctype->mbdigits[cnt] = obstack_alloc (&((struct charmap_t *) charmap)->mem_pool,
sizeof (struct charseq) + 1);
@ -810,8 +820,8 @@ no input digits defined and none of the standard names in the charmap"));
if (!warned)
{
error (0, 0, _("\
not all characters used in `outdigit' are available in the charmap"));
WITH_CUR_LOCALE (error (0, 0, _("\
not all characters used in `outdigit' are available in the charmap")));
warned = 1;
}
@ -827,8 +837,8 @@ not all characters used in `outdigit' are available in the charmap"));
{
if (!warned)
{
error (0, 0, _("\
not all characters used in `outdigit' are available in the repertoire"));
WITH_CUR_LOCALE (error (0, 0, _("\
not all characters used in `outdigit' are available in the repertoire")));
warned = 1;
}
@ -1227,9 +1237,9 @@ ctype_class_new (struct linereader *lr, struct locale_ctype_t *ctype,
if (ctype->nr_charclass == MAX_NR_CHARCLASS)
/* Exit code 2 is prescribed in P1003.2b. */
error (2, 0, _("\
WITH_CUR_LOCALE (error (2, 0, _("\
implementation limit: no more than %Zd character classes allowed"),
MAX_NR_CHARCLASS);
MAX_NR_CHARCLASS));
ctype->classnames[ctype->nr_charclass++] = name;
}
@ -1259,9 +1269,9 @@ ctype_map_new (struct linereader *lr, struct locale_ctype_t *ctype,
if (ctype->map_collection_nr == MAX_NR_CHARMAP)
/* Exit code 2 is prescribed in P1003.2b. */
error (2, 0, _("\
WITH_CUR_LOCALE (error (2, 0, _("\
implementation limit: no more than %d character maps allowed"),
MAX_NR_CHARMAP);
MAX_NR_CHARMAP));
ctype->mapnames[cnt] = name;
@ -2824,10 +2834,11 @@ with character code range values one must use the absolute ellipsis `...'"));
{
lr_error (ldfile, _("\
%s: duplicate `default_missing' definition"), "LC_CTYPE");
error_at_line (0, 0, ctype->default_missing_file,
ctype->default_missing_lineno,
_("\
previous definition was here"));
WITH_CUR_LOCALE (error_at_line (0, 0,
ctype->default_missing_file,
ctype->default_missing_lineno,
_("\
previous definition was here")));
}
else
{
@ -3001,14 +3012,14 @@ set_class_defaults (struct locale_ctype_t *ctype,
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined in charmap while needed as default value"),
"LC_CTYPE", tmp);
"LC_CTYPE", tmp));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", tmp);
"LC_CTYPE", tmp));
else
ctype->class256_collection[seq->bytes[0]] |= bit;
@ -3085,14 +3096,14 @@ set_class_defaults (struct locale_ctype_t *ctype,
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", "<space>");
"LC_CTYPE", "<space>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<space>");
"LC_CTYPE", "<space>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
@ -3105,14 +3116,14 @@ set_class_defaults (struct locale_ctype_t *ctype,
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", "<form-feed>");
"LC_CTYPE", "<form-feed>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<form-feed>");
"LC_CTYPE", "<form-feed>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
@ -3126,14 +3137,14 @@ set_class_defaults (struct locale_ctype_t *ctype,
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<newline>");
"<newline>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<newline>");
"LC_CTYPE", "<newline>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
@ -3147,14 +3158,14 @@ character `%s' not defined while needed as default value"),
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", "<carriage-return>");
"LC_CTYPE", "<carriage-return>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<carriage-return>");
"LC_CTYPE", "<carriage-return>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
@ -3168,14 +3179,14 @@ character `%s' not defined while needed as default value"),
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", "<tab>");
"LC_CTYPE", "<tab>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<tab>");
"LC_CTYPE", "<tab>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
@ -3189,14 +3200,14 @@ character `%s' not defined while needed as default value"),
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", "<vertical-tab>");
"LC_CTYPE", "<vertical-tab>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<vertical-tab>");
"LC_CTYPE", "<vertical-tab>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
@ -3229,14 +3240,14 @@ character `%s' not defined while needed as default value"),
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", "<space>");
"LC_CTYPE", "<space>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<space>");
"LC_CTYPE", "<space>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_blank);
@ -3250,14 +3261,14 @@ character `%s' not defined while needed as default value"),
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", "<tab>");
"LC_CTYPE", "<tab>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<tab>");
"LC_CTYPE", "<tab>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_blank);
@ -3317,14 +3328,14 @@ character `%s' not defined while needed as default value"),
if (seq == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", "<space>");
"LC_CTYPE", "<space>"));
}
else if (seq->nbytes != 1)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' in charmap not representable with one byte"),
"LC_CTYPE", "<space>");
"LC_CTYPE", "<space>"));
else
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_print);
@ -3359,16 +3370,16 @@ character `%s' not defined while needed as default value"),
if (seq_from == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", tmp);
"LC_CTYPE", tmp));
}
else if (seq_from->nbytes != 1)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' needed as default value not representable with one byte"),
"LC_CTYPE", tmp);
"LC_CTYPE", tmp));
}
else
{
@ -3384,16 +3395,16 @@ character `%s' not defined while needed as default value"),
if (seq_to == NULL)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
"LC_CTYPE", tmp);
"LC_CTYPE", tmp));
}
else if (seq_to->nbytes != 1)
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: character `%s' needed as default value not representable with one byte"),
"LC_CTYPE", tmp);
"LC_CTYPE", tmp));
}
else
/* The index [0] is determined by the order of the
@ -3425,8 +3436,9 @@ character `%s' not defined while needed as default value"),
if (ctype->outdigits_act != 10)
{
if (ctype->outdigits_act != 0)
error (0,0, _("%s: field `%s' does not contain exactly ten entries"),
"LC_CTYPE", "outdigit");
WITH_CUR_LOCALE (error (0, 0, _("\
%s: field `%s' does not contain exactly ten entries"),
"LC_CTYPE", "outdigit"));
for (cnt = ctype->outdigits_act; cnt < 10; ++cnt)
{
@ -3445,8 +3457,8 @@ character `%s' not defined while needed as default value"),
if (ctype->mboutdigits[cnt] == NULL)
{
/* Provide a replacement. */
error (0, 0, _("\
no output digits defined and none of the standard names in the charmap"));
WITH_CUR_LOCALE (error (0, 0, _("\
no output digits defined and none of the standard names in the charmap")));
ctype->mboutdigits[cnt] = obstack_alloc (&((struct charmap_t *) charmap)->mem_pool,
sizeof (struct charseq)
@ -3736,9 +3748,9 @@ translit_flatten (struct locale_ctype_t *ctype,
if (other == NULL)
{
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: transliteration data from locale `%s' not available"),
"LC_CTYPE", copy_locale);
"LC_CTYPE", copy_locale));
}
else
{
@ -3832,9 +3844,10 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
wctype_table_finalize (&t);
if (verbose)
fprintf (stderr, _("%s: table for class \"%s\": %lu bytes\n"),
"LC_CTYPE", ctype->classnames[nr],
(unsigned long int) t.result_size);
WITH_CUR_LOCALE (fprintf (stderr, _("\
%s: table for class \"%s\": %lu bytes\n"),
"LC_CTYPE", ctype->classnames[nr],
(unsigned long int) t.result_size));
ctype->class_3level[nr].iov_base = t.result;
ctype->class_3level[nr].iov_len = t.result_size;
@ -3900,9 +3913,10 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
wctrans_table_finalize (&t);
if (verbose)
fprintf (stderr, _("%s: table for map \"%s\": %lu bytes\n"),
"LC_CTYPE", ctype->mapnames[nr],
(unsigned long int) t.result_size);
WITH_CUR_LOCALE (fprintf (stderr, _("\
%s: table for map \"%s\": %lu bytes\n"),
"LC_CTYPE", ctype->mapnames[nr],
(unsigned long int) t.result_size));
ctype->map_3level[nr].iov_base = t.result;
ctype->map_3level[nr].iov_len = t.result_size;
@ -4032,8 +4046,8 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
wcwidth_table_finalize (&t);
if (verbose)
fprintf (stderr, _("%s: table for width: %lu bytes\n"),
"LC_CTYPE", (unsigned long int) t.result_size);
WITH_CUR_LOCALE (fprintf (stderr, _("%s: table for width: %lu bytes\n"),
"LC_CTYPE", (unsigned long int) t.result_size));
ctype->width.iov_base = t.result;
ctype->width.iov_len = t.result_size;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -29,6 +29,7 @@
#include <assert.h>
#include "localedef.h"
#include "localeinfo.h"
#include "locfile.h"
@ -130,8 +131,8 @@ identification_finish (struct localedef_t *locale,
if (identification == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"),
"LC_IDENTIFICATION");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_IDENTIFICATION"));
identification_startup (NULL, locale, 0);
identification
= locale->categories[LC_IDENTIFICATION].identification;
@ -143,8 +144,8 @@ identification_finish (struct localedef_t *locale,
if (identification->cat == NULL) \
{ \
if (verbose && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), \
"LC_IDENTIFICATION", #cat); \
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
"LC_IDENTIFICATION", #cat)); \
identification->cat = ""; \
}
@ -167,8 +168,9 @@ identification_finish (struct localedef_t *locale,
if (num != LC_ALL && identification->category[num] == NULL)
{
if (verbose && ! nothing)
error (0, 0, _("%s: no identification for category `%s'"),
"LC_IDENTIFICATION", category_name[num]);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: no identification for category `%s'"),
"LC_IDENTIFICATION", category_name[num]));
identification->category[num] = "";
}
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -28,6 +28,7 @@
#include <assert.h>
#include "localedef.h"
#include "localeinfo.h"
#include "locfile.h"
@ -91,8 +92,8 @@ measurement_finish (struct localedef_t *locale,
if (measurement == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"),
"LC_MEASUREMENT");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_MEASUREMENT"));
measurement_startup (NULL, locale, 0);
measurement = locale->categories[LC_MEASUREMENT].measurement;
nothing = 1;
@ -102,16 +103,16 @@ measurement_finish (struct localedef_t *locale,
if (measurement->measurement == 0)
{
if (! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_MEASUREMENT", "measurement");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_MEASUREMENT", "measurement"));
/* Use as the default value the value of the i18n locale. */
measurement->measurement = 1;
}
else
{
if (measurement->measurement > 3)
error (0, 0, _("%s: invalid value for field `%s'"),
"LC_MEASUREMENT", "measurement");
WITH_CUR_LOCALE (error (0, 0, _("%s: invalid value for field `%s'"),
"LC_MEASUREMENT", "measurement"));
}
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@ -29,8 +29,8 @@
#include <assert.h>
#include "linereader.h"
#include "localedef.h"
#include "linereader.h"
#include "localeinfo.h"
#include "locfile.h"
@ -95,8 +95,8 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (messages == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"),
"LC_MESSAGES");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_MESSAGES"));
messages_startup (NULL, locale, 0);
messages = locale->categories[LC_MESSAGES].messages;
nothing = 1;
@ -112,15 +112,16 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (messages->yesexpr == NULL)
{
if (! be_quiet && ! nothing)
error (0, 0, _("%s: field `%s' undefined"), "LC_MESSAGES", "yesexpr");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' undefined"),
"LC_MESSAGES", "yesexpr"));
messages->yesexpr = "^[yY]";
}
else if (messages->yesexpr[0] == '\0')
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: value for field `%s' must not be an empty string"),
"LC_MESSAGES", "yesexpr");
"LC_MESSAGES", "yesexpr"));
}
else
{
@ -134,9 +135,9 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
char errbuf[BUFSIZ];
(void) regerror (result, &re, errbuf, BUFSIZ);
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: no correct regular expression for field `%s': %s"),
"LC_MESSAGES", "yesexpr", errbuf);
"LC_MESSAGES", "yesexpr", errbuf));
}
else if (result != 0)
regfree (&re);
@ -145,15 +146,16 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (messages->noexpr == NULL)
{
if (! be_quiet && ! nothing)
error (0, 0, _("%s: field `%s' undefined"), "LC_MESSAGES", "noexpr");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' undefined"),
"LC_MESSAGES", "noexpr"));
messages->noexpr = "^[nN]";
}
else if (messages->noexpr[0] == '\0')
{
if (!be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: value for field `%s' must not be an empty string"),
"LC_MESSAGES", "noexpr");
"LC_MESSAGES", "noexpr"));
}
else
{
@ -167,9 +169,9 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
char errbuf[BUFSIZ];
(void) regerror (result, &re, errbuf, BUFSIZ);
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: no correct regular expression for field `%s': %s"),
"LC_MESSAGES", "noexpr", errbuf);
"LC_MESSAGES", "noexpr", errbuf));
}
else if (result != 0)
regfree (&re);

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@ -30,8 +30,8 @@
#include <assert.h>
#include "linereader.h"
#include "localedef.h"
#include "linereader.h"
#include "localeinfo.h"
#include "locfile.h"
@ -191,8 +191,8 @@ monetary_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (monetary == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"),
"LC_MONETARY");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_MONETARY"));
monetary_startup (NULL, locale, 0);
monetary = locale->categories[LC_MONETARY].monetary;
nothing = 1;
@ -203,8 +203,8 @@ monetary_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (monetary->cat == NULL) \
{ \
if (! be_quiet && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), \
"LC_MONETARY", #cat); \
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
"LC_MONETARY", #cat)); \
monetary->cat = initval; \
}
@ -221,18 +221,18 @@ monetary_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (strlen (monetary->int_curr_symbol) != 4)
{
if (! be_quiet && ! nothing)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: value of field `int_curr_symbol' has wrong length"),
"LC_MONETARY");
"LC_MONETARY"));
}
else if (bsearch (monetary->int_curr_symbol, valid_int_curr,
NR_VALID_INT_CURR, sizeof (const char *),
(comparison_fn_t) curr_strcmp) == NULL
&& !be_quiet)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: value of field `int_curr_symbol' does \
not correspond to a valid name in ISO 4217"),
"LC_MONETARY");
"LC_MONETARY"));
}
/* The decimal point must not be empty. This is not said explicitly
@ -241,15 +241,15 @@ not correspond to a valid name in ISO 4217"),
if (monetary->mon_decimal_point == NULL)
{
if (! be_quiet && ! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_MONETARY", "mon_decimal_point");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_MONETARY", "mon_decimal_point"));
monetary->mon_decimal_point = ".";
}
else if (monetary->mon_decimal_point[0] == '\0' && ! be_quiet && ! nothing)
{
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: value for field `%s' must not be the empty string"),
"LC_MONETARY", "mon_decimal_point");
"LC_MONETARY", "mon_decimal_point"));
}
if (monetary->mon_decimal_point_wc == L'\0')
monetary->mon_decimal_point_wc = L'.';
@ -257,8 +257,8 @@ not correspond to a valid name in ISO 4217"),
if (monetary->mon_grouping_len == 0)
{
if (! be_quiet && ! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_MONETARY", "mon_grouping");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_MONETARY", "mon_grouping"));
monetary->mon_grouping = (char *) "\177";
monetary->mon_grouping_len = 1;
@ -269,15 +269,15 @@ not correspond to a valid name in ISO 4217"),
if (monetary->cat == -2) \
{ \
if (! be_quiet && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), \
"LC_MONETARY", #cat); \
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
"LC_MONETARY", #cat)); \
monetary->cat = initval; \
} \
else if ((monetary->cat < min || monetary->cat > max) \
&& !be_quiet && !nothing) \
error (0, 0, _(" \
WITH_CUR_LOCALE (error (0, 0, _("\
%s: value for field `%s' must be in range %d...%d"), \
"LC_MONETARY", #cat, min, max)
"LC_MONETARY", #cat, min, max))
TEST_ELEM (int_frac_digits, -128, 127, -1);
TEST_ELEM (frac_digits, -128, 127, -1);
@ -305,9 +305,9 @@ not correspond to a valid name in ISO 4217"),
monetary->cat = monetary->alt; \
else if ((monetary->cat < min || monetary->cat > max) && !be_quiet \
&& ! nothing) \
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: value for field `%s' must be in range %d...%d"), \
"LC_MONETARY", #cat, min, max)
"LC_MONETARY", #cat, min, max))
TEST_ELEM (int_p_cs_precedes, p_cs_precedes, -1, 1);
TEST_ELEM (int_p_sep_by_space, p_sep_by_space, -1, 2);

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -27,6 +27,7 @@
#include <assert.h>
#include "localedef.h"
#include "localeinfo.h"
#include "locfile.h"
@ -91,7 +92,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (name == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"), "LC_NAME");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_NAME"));
name_startup (NULL, locale, 0);
name = locale->categories[LC_NAME].name;
nothing = 1;
@ -101,7 +103,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (name->name_fmt == NULL)
{
if (! nothing)
error (0, 0, _("%s: field `%s' not defined"), "LC_NAME", "name_fmt");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_NAME", "name_fmt"));
/* Use as the default value the value of the i18n locale. */
name->name_fmt = "%p%t%g%t%m%t%f";
}
@ -112,8 +115,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
const char *cp = name->name_fmt;
if (*cp == '\0')
error (0, 0, _("%s: field `%s' must not be empty"),
"LC_NAME", "name_fmt");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
"LC_NAME", "name_fmt"));
else
while (*cp != '\0')
{
@ -124,9 +127,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
++cp;
if (strchr ("dfFgGlomMpsSt", *cp) == NULL)
{
error (0, 0, _("\
%s: invalid escape sequence in field `%s'"),
"LC_NAME", "name_fmt");
WITH_CUR_LOCALE (error (0, 0, _("\
%s: invalid escape sequence in field `%s'"), "LC_NAME", "name_fmt"));
break;
}
}
@ -138,7 +140,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (name->cat == NULL) \
{ \
if (verbose && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), "LC_NAME", #cat); \
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
"LC_NAME", #cat)); \
name->cat = ""; \
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@ -27,8 +27,8 @@
#include <assert.h>
#include "linereader.h"
#include "localedef.h"
#include "linereader.h"
#include "localeinfo.h"
#include "locfile.h"
@ -96,8 +96,8 @@ numeric_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (numeric == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"),
"LC_NUMERIC");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_NUMERIC"));
numeric_startup (NULL, locale, 0);
numeric = locale->categories[LC_NUMERIC].numeric;
nothing = 1;
@ -110,21 +110,22 @@ numeric_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (numeric->decimal_point == NULL)
{
if (! be_quiet && ! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_NUMERIC", "decimal_point");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_NUMERIC", "decimal_point"));
numeric->decimal_point = ".";
}
else if (numeric->decimal_point[0] == '\0' && ! be_quiet && ! nothing)
{
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: value for field `%s' must not be the empty string"),
"LC_NUMERIC", "decimal_point");
"LC_NUMERIC", "decimal_point"));
}
if (numeric->decimal_point_wc == L'\0')
numeric->decimal_point_wc = L'.';
if (numeric->grouping_len == 0 && ! be_quiet && ! nothing)
error (0, 0, _("%s: field `%s' not defined"), "LC_NUMERIC", "grouping");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_NUMERIC", "grouping"));
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -28,6 +28,7 @@
#include <assert.h>
#include "localedef.h"
#include "localeinfo.h"
#include "locfile.h"
@ -88,7 +89,8 @@ paper_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (paper == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"), "LC_PAPER");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_PAPER"));
paper_startup (NULL, locale, 0);
paper = locale->categories[LC_PAPER].paper;
nothing = 1;
@ -98,7 +100,8 @@ paper_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (paper->height == 0)
{
if (! nothing)
error (0, 0, _("%s: field `%s' not defined"), "LC_PAPER", "height");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_PAPER", "height"));
/* Use as default values the values from the i18n locale. */
paper->height = 297;
}
@ -106,7 +109,8 @@ paper_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (paper->width == 0)
{
if (! nothing)
error (0, 0, _("%s: field `%s' not defined"), "LC_PAPER", "width");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_PAPER", "width"));
/* Use as default values the values from the i18n locale. */
paper->width = 210;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -28,6 +28,7 @@
#include <assert.h>
#include "localedef.h"
#include "localeinfo.h"
#include "locfile.h"
@ -91,8 +92,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (telephone == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"),
"LC_TELEPHONE");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_TELEPHONE"));
telephone_startup (NULL, locale, 0);
telephone = locale->categories[LC_TELEPHONE].telephone;
nothing = 1;
@ -102,8 +103,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (telephone->tel_int_fmt == NULL)
{
if (! nothing)
error (0, 0, _("%s: field `%s' not defined"),
"LC_TELEPHONE", "tel_int_fmt");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
"LC_TELEPHONE", "tel_int_fmt"));
/* Use as the default value the value of the i18n locale. */
telephone->tel_int_fmt = "+%c %a %l";
}
@ -114,8 +115,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
const char *cp = telephone->tel_int_fmt;
if (*cp == '\0')
error (0, 0, _("%s: field `%s' must not be empty"),
"LC_TELEPHONE", "tel_int_fmt");
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
"LC_TELEPHONE", "tel_int_fmt"));
else
while (*cp != '\0')
{
@ -123,9 +124,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
{
if (strchr ("aAlc", *++cp) == NULL)
{
error (0, 0, _("\
%s: invalid escape sequence in field `%s'"),
"LC_TELEPHONE", "tel_int_fmt");
WITH_CUR_LOCALE (error (0, 0, _("\
%s: invalid escape sequence in field `%s'"), "LC_TELEPHONE", "tel_int_fmt"));
break;
}
}
@ -147,8 +147,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
{
if (strchr ("aAlc", *++cp) == NULL)
{
error (0, 0, _("%s: invalid escape sequence in field `%s'"),
"LC_TELEPHONE", "tel_dom_fmt");
WITH_CUR_LOCALE (error (0, 0, _("\
%s: invalid escape sequence in field `%s'"), "LC_TELEPHONE", "tel_dom_fmt"));
break;
}
}
@ -160,7 +160,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (telephone->cat == NULL) \
{ \
if (verbose && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), "LC_TELEPHONE", #cat); \
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
"LC_TELEPHONE", #cat)); \
telephone->cat = ""; \
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@ -30,8 +30,8 @@
#include <assert.h>
#include "linereader.h"
#include "localedef.h"
#include "linereader.h"
#include "localeinfo.h"
#include "locfile.h"
@ -157,7 +157,8 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (time == NULL)
{
if (! be_quiet)
error (0, 0, _("No definition for %s category found"), "LC_TIME");
WITH_CUR_LOCALE (error (0, 0, _("\
No definition for %s category found"), "LC_TIME"));
time_startup (NULL, locale, 0);
time = locale->categories[LC_TIME].time;
nothing = 1;
@ -172,7 +173,8 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
int i; \
\
if (! be_quiet && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), "LC_TIME", #cat); \
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
"LC_TIME", #cat)); \
\
for (i = 0; i < sizeof (initval) / sizeof (initval[0]); ++i) \
time->cat[i] = initval[i]; \
@ -192,7 +194,8 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (time->cat == NULL) \
{ \
if (! be_quiet && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), "LC_TIME", #cat); \
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
"LC_TIME", #cat)); \
\
time->cat = initval; \
}
@ -242,10 +245,9 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (*str != '+' && *str != '-')
{
if (!be_quiet)
error (0, 0,
_("%s: direction flag in string %Zd in `era' field"
" is not '+' nor '-'"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: direction flag in string %Zd in `era' field is not '+' nor '-'"),
"LC_TIME", idx + 1));
/* Default arbitrarily to '+'. */
time->era_entries[idx].direction = '+';
}
@ -254,10 +256,9 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (*++str != ':')
{
if (!be_quiet)
error (0, 0,
_("%s: direction flag in string %Zd in `era' field"
" is not a single character"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: direction flag in string %Zd in `era' field is not a single character"),
"LC_TIME", idx + 1));
(void) strsep (&str, ":");
}
else
@ -268,17 +269,17 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (endp == str)
{
if (!be_quiet)
error (0, 0, _("%s: invalid number for offset in string %Zd in"
" `era' field"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: invalid number for offset in string %Zd in `era' field"),
"LC_TIME", idx + 1));
(void) strsep (&str, ":");
}
else if (*endp != ':')
{
if (!be_quiet)
error (0, 0, _("%s: garbage at end of offset value in"
" string %Zd in `era' field"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: garbage at end of offset value in string %Zd in `era' field"),
"LC_TIME", idx + 1));
(void) strsep (&str, ":");
}
else
@ -327,18 +328,18 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
{
invalid_start_date:
if (!be_quiet)
error (0, 0, _("%s: invalid starting date in string %Zd in"
" `era' field"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: invalid starting date in string %Zd in `era' field"),
"LC_TIME", idx + 1));
(void) strsep (&str, ":");
}
else if (*endp != ':')
{
garbage_start_date:
if (!be_quiet)
error (0, 0, _("%s: garbage at end of starting date "
"in string %Zd in `era' field "),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: garbage at end of starting date in string %Zd in `era' field "),
"LC_TIME", idx + 1));
(void) strsep (&str, ":");
}
else
@ -355,9 +356,9 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
&& time->era_entries[idx].start_date[2] == 29
&& !__isleap (time->era_entries[idx].start_date[0])))
&& !be_quiet)
error (0, 0, _("%s: starting date is invalid in"
" string %Zd in `era' field"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: starting date is invalid in string %Zd in `era' field"),
"LC_TIME", idx + 1));
}
}
@ -404,18 +405,18 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
{
invalid_stop_date:
if (!be_quiet)
error (0, 0, _("%s: invalid stopping date in string %Zd in"
" `era' field"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: invalid stopping date in string %Zd in `era' field"),
"LC_TIME", idx + 1));
(void) strsep (&str, ":");
}
else if (*endp != ':')
{
garbage_stop_date:
if (!be_quiet)
error (0, 0, _("%s: garbage at end of stopping date "
"in string %Zd in `era' field"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: garbage at end of stopping date in string %Zd in `era' field"),
"LC_TIME", idx + 1));
(void) strsep (&str, ":");
}
else
@ -432,17 +433,17 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
&& time->era_entries[idx].stop_date[2] == 29
&& !__isleap (time->era_entries[idx].stop_date[0])))
&& !be_quiet)
error (0, 0, _("%s: stopping date is invalid in"
" string %Zd in `era' field"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: stopping date is invalid in string %Zd in `era' field"),
"LC_TIME", idx + 1));
}
}
if (str == NULL || *str == '\0')
{
if (!be_quiet)
error (0, 0, _("%s: missing era name in string %Zd in `era'"
" field"), "LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: missing era name in string %Zd in `era' field"), "LC_TIME", idx + 1));
time->era_entries[idx].name =
time->era_entries[idx].format = "";
}
@ -453,9 +454,9 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
if (str == NULL || *str == '\0')
{
if (!be_quiet)
error (0, 0, _("%s: missing era format in string %Zd"
" in `era' field"),
"LC_TIME", idx + 1);
WITH_CUR_LOCALE (error (0, 0, _("\
%s: missing era format in string %Zd in `era' field"),
"LC_TIME", idx + 1));
time->era_entries[idx].name =
time->era_entries[idx].format = "";
}
@ -482,33 +483,33 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
time->week_1stday = 19971130;
if (time->week_1stweek > time->week_ndays)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: third operand for value of field `%s' must not be larger than %d"),
"LC_TIME", "week", 7);
"LC_TIME", "week", 7));
if (time->first_weekday == '\0')
/* The definition does not specify this so the default is used. */
time->first_weekday = 1;
else if (time->first_weekday > time->week_ndays)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: values of field `%s' must not be larger than %d"),
"LC_TIME", "first_weekday", 7);
"LC_TIME", "first_weekday", 7));
if (time->first_workday == '\0')
/* The definition does not specify this so the default is used. */
time->first_workday = 1;
else if (time->first_workday > time->week_ndays)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: values of field `%s' must not be larger than %d"),
"LC_TIME", "first_workday", 7);
"LC_TIME", "first_workday", 7));
if (time->cal_direction == '\0')
/* The definition does not specify this so the default is used. */
time->cal_direction = 1;
else if (time->cal_direction > 3)
error (0, 0, _("\
WITH_CUR_LOCALE (error (0, 0, _("\
%s: values for field `%s' must not be larger than %d"),
"LC_TIME", "cal_direction", 3);
"LC_TIME", "cal_direction", 3));
/* XXX We don't perform any tests on the timezone value since this is
simply useless, stupid $&$!@... */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
@ -29,18 +29,12 @@
#include <stdlib.h>
#include <string.h>
#include "localedef.h"
#include "charmap.h"
#include "error.h"
#include "linereader.h"
#include "localedef.h"
#include "locfile.h"
/* Prototypes for a few program-wide used functions. */
extern void *xmalloc (size_t __n);
extern void *xrealloc (void *__p, size_t __n);
extern char *xstrdup (const char *__str);
/* Prototypes for local functions. */
static struct token *get_toplvl_escape (struct linereader *lr);
static struct token *get_symname (struct linereader *lr);

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>.
@ -98,7 +98,7 @@ extern struct token *lr_token (struct linereader *lr,
#define lr_error(lr, fmt, args...) \
error_at_line (0, 0, lr->fname, lr->lineno, fmt, ## args)
WITH_CUR_LOCALE (error_at_line (0, 0, lr->fname, lr->lineno, fmt, ## args))

View File

@ -31,10 +31,11 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <error.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include "error.h"
#include "localedef.h"
#include "charmap.h"
#include "locfile.h"
@ -189,7 +190,8 @@ main (int argc, char *argv[])
defines error code 3 for this situation so I think it must be
a fatal error (see P1003.2 4.35.8). */
if (sysconf (_SC_2_LOCALEDEF) < 0)
error (3, 0, _("FATAL: system does not define `_POSIX2_LOCALEDEF'"));
WITH_CUR_LOCALE (error (3, 0, _("\
FATAL: system does not define `_POSIX2_LOCALEDEF'")));
/* Process charmap file. */
charmap = charmap_read (charmap_file, verbose, be_quiet, 1);
@ -202,7 +204,8 @@ main (int argc, char *argv[])
/* Now read the locale file. */
if (locfile_read (&global, charmap) != 0)
error (4, errno, _("cannot open locale definition file `%s'"), input_file);
WITH_CUR_LOCALE (error (4, errno, _("\
cannot open locale definition file `%s'"), input_file));
/* Perhaps we saw some `copy' instructions. */
while (1)
@ -217,8 +220,8 @@ main (int argc, char *argv[])
break;
if (locfile_read (runp, charmap) != 0)
error (4, errno, _("cannot open locale definition file `%s'"),
runp->name);
WITH_CUR_LOCALE (error (4, errno, _("\
cannot open locale definition file `%s'"), runp->name));
}
/* Check the categories we processed in source form. */
@ -229,13 +232,14 @@ main (int argc, char *argv[])
if (error_message_count == 0 || force_output != 0)
{
if (cannot_write_why != 0)
error (4, cannot_write_why, _("cannot write output files to `%s'"),
output_path);
WITH_CUR_LOCALE (error (4, cannot_write_why, _("\
cannot write output files to `%s'"), output_path));
else
write_all_categories (locales, charmap, output_path);
}
else
error (4, 0, _("no output file produced because warning were issued"));
WITH_CUR_LOCALE (error (4, 0, _("\
no output file produced because warning were issued")));
/* This exit status is prescribed by POSIX.2 4.35.7. */
exit (error_message_count != 0);
@ -485,13 +489,14 @@ add_to_readlist (int locale, const char *name, const char *repertoire_name,
}
if (generate && (runp->needed & (1 << locale)) != 0)
error (5, 0, _("circular dependencies between locale definitions"));
WITH_CUR_LOCALE (error (5, 0, _("\
circular dependencies between locale definitions")));
if (copy_locale != NULL)
{
if (runp->categories[locale].generic != NULL)
error (5, 0, _("cannot add already read locale `%s' a second time"),
name);
WITH_CUR_LOCALE (error (5, 0, _("\
cannot add already read locale `%s' a second time"), name));
else
runp->categories[locale].generic =
copy_locale->categories[locale].generic;
@ -516,8 +521,8 @@ find_locale (int locale, const char *name, const char *repertoire_name,
if ((result->avail & (1 << locale)) == 0
&& locfile_read (result, charmap) != 0)
error (4, errno, _("cannot open locale definition file `%s'"),
result->name);
WITH_CUR_LOCALE (error (4, errno, _("\
cannot open locale definition file `%s'"), result->name));
return result;
}
@ -536,8 +541,8 @@ load_locale (int locale, const char *name, const char *repertoire_name,
if ((result->avail & (1 << locale)) == 0
&& locfile_read (result, charmap) != 0)
error (4, errno, _("cannot open locale definition file `%s'"),
result->name);
WITH_CUR_LOCALE (error (4, errno, _("\
cannot open locale definition file `%s'"), result->name));
return result;
}

View File

@ -24,6 +24,7 @@
/* Get the basic locale definitions. */
#include <locale.h>
#include <stddef.h>
#include <errno.h>
#include "repertoire.h"
@ -122,6 +123,19 @@ extern void *xrealloc (void *__p, size_t __n);
extern char *xstrdup (const char *__str);
/* Wrapper to switch LC_CTYPE back to the locale specified in the
environment for output. */
#define WITH_CUR_LOCALE(stmt) \
do { \
int saved_errno = errno; \
const char *cur_locale_ = setlocale (LC_CTYPE, NULL); \
setlocale (LC_CTYPE, ""); \
errno = saved_errno; \
stmt; \
setlocale (LC_CTYPE, cur_locale_); \
} while (0)
/* Mark given locale as to be read. */
extern struct localedef_t *add_to_readlist (int locale, const char *name,
const char *repertoire_name,

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
@ -568,9 +568,8 @@ write_locale_data (const char *output_path, const char *category,
if (fd == -1)
{
if (!be_quiet)
error (0, save_err, _("\
cannot open output file `%s' for category `%s'"),
fname, category);
WITH_CUR_LOCALE (error (0, save_err, _("\
cannot open output file `%s' for category `%s'"), fname, category));
free (fname);
return;
}
@ -593,8 +592,8 @@ cannot open output file `%s' for category `%s'"),
if (writev (fd, &vec[cnt], step) < 0)
{
if (!be_quiet)
error (0, errno, _("failure while writing data for category `%s'"),
category);
WITH_CUR_LOCALE (error (0, errno, _("\
failure while writing data for category `%s'"), category));
break;
}
}
@ -690,9 +689,8 @@ cannot open output file `%s' for category `%s'"),
if (rename (tmp_fname, fname) < 0)
{
if (!be_quiet)
error (0, errno, _("\
cannot create output file `%s' for category `%s'"),
fname, category);
WITH_CUR_LOCALE (error (0, errno, _("\
cannot create output file `%s' for category `%s'"), fname, category));
}
free (tmp_fname);
free (other_fname);

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -30,11 +30,11 @@
#include <string.h>
#include <unistd.h>
#include "localedef.h"
#include "linereader.h"
#include "charmap.h"
#include "repertoire.h"
#include "simple-hash.h"
#include "localedef.h"
/* Simple keyword hashing for the repertoiremap. */
@ -322,13 +322,14 @@ argument to <%s> must be a single character"),
}
if (state != 2 && state != 90 && !be_quiet)
error (0, 0, _("%s: premature end of file"), repfile->fname);
WITH_CUR_LOCALE (error (0, 0, _("%s: premature end of file"),
repfile->fname));
lr_close (repfile);
if (tsearch (result, &known, &repertoire_compare) == NULL)
/* Something went wrong. */
error (0, errno, _("cannot safe new repertoire map"));
WITH_CUR_LOCALE (error (0, errno, _("cannot safe new repertoire map")));
return result;
}
@ -339,7 +340,8 @@ repertoire_complain (const char *name)
{
if (tfind (name, &unavailable, (__compar_fn_t) strcmp) == NULL)
{
error (0, errno, _("repertoire map file `%s' not found"), name);
WITH_CUR_LOCALE (error (0, errno, _("\
repertoire map file `%s' not found"), name));
/* Remember that we reported this map. */
tsearch (name, &unavailable, (__compar_fn_t) strcmp);