mirror of git://sourceware.org/git/glibc.git
Update.
* 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:
parent
475361200b
commit
f2b98f97eb
30
ChangeLog
30
ChangeLog
|
|
@ -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>
|
2002-02-05 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* elf/rtld.c (_dl_start_final): Determine load address to locate
|
* elf/rtld.c (_dl_start_final): Determine load address to locate
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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 *);
|
int (*setfct) (const char *, struct __netgrent *);
|
||||||
void (*endfct) (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 *known = NULL;
|
||||||
struct name_list *needed = NULL;
|
struct name_list *needed = NULL;
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
@ -328,7 +328,7 @@ innetgr (const char *netgroup, const char *host, const char *user,
|
||||||
{
|
{
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
|
|
||||||
while ((*getfct) (&entry, buffer, sizeof buffer)
|
while ((*getfct) (&entry, buffer, sizeof buffer, &errno)
|
||||||
== NSS_STATUS_SUCCESS)
|
== NSS_STATUS_SUCCESS)
|
||||||
{
|
{
|
||||||
if (entry.type == group_val)
|
if (entry.type == group_val)
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
|
@ -28,11 +28,9 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "charmap-dir.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. */
|
/* The data type of a charmap directory being traversed. */
|
||||||
struct charmap_dir
|
struct charmap_dir
|
||||||
{
|
{
|
||||||
|
|
@ -58,8 +56,8 @@ charmap_opendir (const char *directory)
|
||||||
dir = opendir (directory);
|
dir = opendir (directory);
|
||||||
if (dir == NULL)
|
if (dir == NULL)
|
||||||
{
|
{
|
||||||
error (1, errno, gettext ("cannot read character map directory `%s'"),
|
WITH_CUR_LOCALE (error (1, errno, gettext ("\
|
||||||
directory);
|
cannot read character map directory `%s'"), directory));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <error.h>
|
||||||
|
|
||||||
#include "error.h"
|
#include "localedef.h"
|
||||||
#include "linereader.h"
|
#include "linereader.h"
|
||||||
#include "charmap.h"
|
#include "charmap.h"
|
||||||
#include "charmap-dir.h"
|
#include "charmap-dir.h"
|
||||||
|
|
@ -43,8 +44,6 @@
|
||||||
#include "charmap-kw.h"
|
#include "charmap-kw.h"
|
||||||
|
|
||||||
|
|
||||||
extern void *xmalloc (size_t __n);
|
|
||||||
|
|
||||||
/* Prototypes for local functions. */
|
/* Prototypes for local functions. */
|
||||||
static struct charmap_t *parse_charmap (struct linereader *cmfile,
|
static struct charmap_t *parse_charmap (struct linereader *cmfile,
|
||||||
int verbose, int be_quiet);
|
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);
|
result = parse_charmap (cmfile, verbose, be_quiet);
|
||||||
|
|
||||||
if (result == NULL && !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);
|
result = parse_charmap (cmfile, verbose, be_quiet);
|
||||||
|
|
||||||
if (result == NULL)
|
if (result == NULL)
|
||||||
error (4, errno, _("default character map file `%s' not found"),
|
WITH_CUR_LOCALE (error (4, errno, _("\
|
||||||
DEFAULT_CHARMAP);
|
default character map file `%s' not found"), DEFAULT_CHARMAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Test of ASCII compatibility of locale encoding.
|
/* 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');
|
while (*p++ != '\0');
|
||||||
|
|
||||||
if (failed)
|
if (failed)
|
||||||
fprintf (stderr, _("\
|
WITH_CUR_LOCALE (fprintf (stderr, _("\
|
||||||
character map `%s' is not ASCII compatible, locale not ISO C compliant\n"),
|
character map `%s' is not ASCII compatible, locale not ISO C compliant\n"),
|
||||||
result->code_set_name);
|
result->code_set_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
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 (result->mb_cur_min > result->mb_cur_max)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: <mb_cur_max> must be greater than <mb_cur_min>\n"),
|
%s: <mb_cur_max> must be greater than <mb_cur_min>\n"),
|
||||||
cmfile->fname);
|
cmfile->fname));
|
||||||
|
|
||||||
result->mb_cur_min = result->mb_cur_max;
|
result->mb_cur_min = result->mb_cur_max;
|
||||||
}
|
}
|
||||||
|
|
@ -829,14 +829,16 @@ only WIDTH definitions are allowed to follow the CHARMAP definition"));
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
error (5, 0, _("%s: error in state machine"), __FILE__);
|
WITH_CUR_LOCALE (error (5, 0, _("%s: error in state machine"),
|
||||||
|
__FILE__));
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state != 91 && !be_quiet)
|
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);
|
lr_close (cmfile);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -128,8 +129,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (address == NULL)
|
if (address == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
if (! be_quiet)
|
||||||
error (0, 0, _("No definition for %s category found"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_ADDRESS");
|
No definition for %s category found"), "LC_ADDRESS"));
|
||||||
address_startup (NULL, locale, 0);
|
address_startup (NULL, locale, 0);
|
||||||
address = locale->categories[LC_ADDRESS].address;
|
address = locale->categories[LC_ADDRESS].address;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -139,8 +140,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (address->postal_fmt == NULL)
|
if (address->postal_fmt == NULL)
|
||||||
{
|
{
|
||||||
if (! nothing)
|
if (! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_ADDRESS", "postal_fmt");
|
"LC_ADDRESS", "postal_fmt"));
|
||||||
/* Use as the default value the value of the i18n locale. */
|
/* 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";
|
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;
|
const char *cp = address->postal_fmt;
|
||||||
|
|
||||||
if (*cp == '\0')
|
if (*cp == '\0')
|
||||||
error (0, 0, _("%s: field `%s' must not be empty"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
|
||||||
"LC_ADDRESS", "postal_fmt");
|
"LC_ADDRESS", "postal_fmt"));
|
||||||
else
|
else
|
||||||
while (*cp != '\0')
|
while (*cp != '\0')
|
||||||
{
|
{
|
||||||
|
|
@ -163,9 +164,9 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
++cp;
|
++cp;
|
||||||
if (strchr ("afdbshNtreCzTSc%", *cp) == NULL)
|
if (strchr ("afdbshNtreCzTSc%", *cp) == NULL)
|
||||||
{
|
{
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: invalid escape `%%%c' sequence in field `%s'"),
|
%s: invalid escape `%%%c' sequence in field `%s'"),
|
||||||
"LC_ADDRESS", *cp, "postal_fmt");
|
"LC_ADDRESS", *cp, "postal_fmt"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -177,7 +178,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (address->cat == NULL) \
|
if (address->cat == NULL) \
|
||||||
{ \
|
{ \
|
||||||
if (verbose && ! nothing) \
|
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 = ""; \
|
address->cat = ""; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -194,16 +196,16 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (address->lang_term == NULL)
|
if (address->lang_term == NULL)
|
||||||
{
|
{
|
||||||
if (verbose && ! nothing)
|
if (verbose && ! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"), "LC_ADDRESS",
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"lang_term");
|
"LC_ADDRESS", "lang_term"));
|
||||||
address->lang_term = "";
|
address->lang_term = "";
|
||||||
cnt = sizeof (iso639) / sizeof (iso639[0]);
|
cnt = sizeof (iso639) / sizeof (iso639[0]);
|
||||||
}
|
}
|
||||||
else if (address->lang_term[0] == '\0')
|
else if (address->lang_term[0] == '\0')
|
||||||
{
|
{
|
||||||
if (verbose)
|
if (verbose)
|
||||||
error (0, 0, _("%s: field `%s' must not be empty"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
|
||||||
"LC_ADDRESS", "lang_term");
|
"LC_ADDRESS", "lang_term"));
|
||||||
cnt = sizeof (iso639) / sizeof (iso639[0]);
|
cnt = sizeof (iso639) / sizeof (iso639[0]);
|
||||||
}
|
}
|
||||||
else
|
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)
|
if (strcmp (address->lang_term, iso639[cnt].term) == 0)
|
||||||
break;
|
break;
|
||||||
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
|
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: terminology language code `%s' not defined"),
|
%s: terminology language code `%s' not defined"),
|
||||||
"LC_ADDRESS", address->lang_term);
|
"LC_ADDRESS", address->lang_term));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (address->lang_ab == NULL)
|
if (address->lang_ab == NULL)
|
||||||
{
|
{
|
||||||
if (verbose && ! nothing)
|
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 = "";
|
address->lang_ab = "";
|
||||||
}
|
}
|
||||||
else if (address->lang_ab[0] == '\0')
|
else if (address->lang_ab[0] == '\0')
|
||||||
{
|
{
|
||||||
if (verbose)
|
if (verbose)
|
||||||
error (0, 0, _("%s: field `%s' must not be empty"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
|
||||||
"LC_ADDRESS", "lang_ab");
|
"LC_ADDRESS", "lang_ab"));
|
||||||
}
|
}
|
||||||
else
|
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)
|
if (strcmp (address->lang_ab, iso639[cnt].ab) == 0)
|
||||||
break;
|
break;
|
||||||
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
|
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: language abbreviation `%s' not defined"),
|
%s: language abbreviation `%s' not defined"),
|
||||||
"LC_ADDRESS", address->lang_ab);
|
"LC_ADDRESS", address->lang_ab));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (strcmp (iso639[cnt].ab, address->lang_ab) != 0)
|
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"),
|
%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)
|
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')
|
else if (address->lang_lib[0] == '\0')
|
||||||
{
|
{
|
||||||
if (verbose)
|
if (verbose)
|
||||||
error (0, 0, _("%s: field `%s' must not be empty"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
|
||||||
"LC_ADDRESS", "lang_lib");
|
"LC_ADDRESS", "lang_lib"));
|
||||||
}
|
}
|
||||||
else
|
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)
|
if (strcmp (address->lang_lib, iso639[cnt].lib) == 0)
|
||||||
break;
|
break;
|
||||||
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
|
if (cnt == sizeof (iso639) / sizeof (iso639[0]))
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: language abbreviation `%s' not defined"),
|
%s: language abbreviation `%s' not defined"),
|
||||||
"LC_ADDRESS", address->lang_lib);
|
"LC_ADDRESS", address->lang_lib));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (strcmp (iso639[cnt].ab, address->lang_ab) != 0)
|
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",
|
%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 (address->country_num == 0)
|
||||||
{
|
{
|
||||||
if (verbose && ! nothing)
|
if (verbose && ! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_ADDRESS", "country_num");
|
"LC_ADDRESS", "country_num"));
|
||||||
cnt = sizeof (iso3166) / sizeof (iso3166[0]);
|
cnt = sizeof (iso3166) / sizeof (iso3166[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -292,34 +295,36 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (cnt == sizeof (iso3166) / sizeof (iso3166[0]))
|
if (cnt == sizeof (iso3166) / sizeof (iso3166[0]))
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: numeric country code `%d' not valid"),
|
%s: numeric country code `%d' not valid"),
|
||||||
"LC_ADDRESS", address->country_num);
|
"LC_ADDRESS", address->country_num));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (address->country_ab2 == NULL)
|
if (address->country_ab2 == NULL)
|
||||||
{
|
{
|
||||||
if (verbose && ! nothing)
|
if (verbose && ! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_ADDRESS", "country_ab2");
|
"LC_ADDRESS", "country_ab2"));
|
||||||
address->country_ab2 = " ";
|
address->country_ab2 = " ";
|
||||||
}
|
}
|
||||||
else if (cnt != sizeof (iso3166) / sizeof (iso3166[0])
|
else if (cnt != sizeof (iso3166) / sizeof (iso3166[0])
|
||||||
&& strcmp (address->country_ab2, iso3166[cnt].ab2) != 0)
|
&& strcmp (address->country_ab2, iso3166[cnt].ab2) != 0)
|
||||||
error (0, 0, _("%s: `%s' value does not match `%s' value"),
|
WITH_CUR_LOCALE (error (0, 0,
|
||||||
"LC_ADDRESS", "country_ab2", "country_num");
|
_("%s: `%s' value does not match `%s' value"),
|
||||||
|
"LC_ADDRESS", "country_ab2", "country_num"));
|
||||||
|
|
||||||
if (address->country_ab3 == NULL)
|
if (address->country_ab3 == NULL)
|
||||||
{
|
{
|
||||||
if (verbose && ! nothing)
|
if (verbose && ! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_ADDRESS", "country_ab3");
|
"LC_ADDRESS", "country_ab3"));
|
||||||
address->country_ab3 = " ";
|
address->country_ab3 = " ";
|
||||||
}
|
}
|
||||||
else if (cnt != sizeof (iso3166) / sizeof (iso3166[0])
|
else if (cnt != sizeof (iso3166) / sizeof (iso3166[0])
|
||||||
&& strcmp (address->country_ab3, iso3166[cnt].ab3) != 0)
|
&& strcmp (address->country_ab3, iso3166[cnt].ab3) != 0)
|
||||||
error (0, 0, _("%s: `%s' value does not match `%s' value"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_ADDRESS", "country_ab3", "country_num");
|
%s: `%s' value does not match `%s' value"),
|
||||||
|
"LC_ADDRESS", "country_ab3", "country_num"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,11 @@
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "charmap.h"
|
#include "charmap.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "linereader.h"
|
#include "linereader.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
#include "localedef.h"
|
|
||||||
#include "elem-hash.h"
|
#include "elem-hash.h"
|
||||||
|
|
||||||
/* Uncomment the following line in the production version. */
|
/* 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. */
|
/* No data, no check. */
|
||||||
if (! be_quiet)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1531,9 +1532,9 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
&& ((sect->rules[i] & sort_position)
|
&& ((sect->rules[i] & sort_position)
|
||||||
!= (collate->sections->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"),
|
%s: `position' must be used for a specific level in all sections or none"),
|
||||||
"LC_COLLATE");
|
"LC_COLLATE"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1554,9 +1555,10 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
{
|
{
|
||||||
if (runp->weights[i].w[j]->weights == NULL)
|
if (runp->weights[i].w[j]->weights == NULL)
|
||||||
{
|
{
|
||||||
error_at_line (0, 0, runp->file, runp->line,
|
WITH_CUR_LOCALE (error_at_line (0, 0, runp->file,
|
||||||
_("symbol `%s' not defined"),
|
runp->line,
|
||||||
runp->weights[i].w[j]->name);
|
_("symbol `%s' not defined"),
|
||||||
|
runp->weights[i].w[j]->name));
|
||||||
|
|
||||||
need_undefined = 1;
|
need_undefined = 1;
|
||||||
runp->weights[i].w[j] = &collate->undefined;
|
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
|
/* This should not happen. It means that we have
|
||||||
to symbols with the same byte sequence. It is
|
to symbols with the same byte sequence. It is
|
||||||
of course an error. */
|
of course an error. */
|
||||||
error_at_line (0, 0, (*eptr)->file, (*eptr)->line,
|
WITH_CUR_LOCALE (error_at_line (0, 0, (*eptr)->file,
|
||||||
_("symbol `%s' has the same encoding as"),
|
(*eptr)->line,
|
||||||
(*eptr)->name);
|
_("\
|
||||||
error_at_line (0, 0, runp->file, runp->line,
|
symbol `%s' has the same encoding as"), (*eptr)->name);
|
||||||
_("symbol `%s'"), runp->name);
|
error_at_line (0, 0, runp->file,
|
||||||
|
runp->line,
|
||||||
|
_("symbol `%s'"),
|
||||||
|
runp->name));
|
||||||
goto dont_insert;
|
goto dont_insert;
|
||||||
}
|
}
|
||||||
else if (c < 0)
|
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
|
/* This should not happen. It means that we have
|
||||||
two symbols with the same byte sequence. It is
|
two symbols with the same byte sequence. It is
|
||||||
of course an error. */
|
of course an error. */
|
||||||
error_at_line (0, 0, (*eptr)->file, (*eptr)->line,
|
WITH_CUR_LOCALE (error_at_line (0, 0, (*eptr)->file,
|
||||||
_("symbol `%s' has the same encoding as"),
|
(*eptr)->line,
|
||||||
(*eptr)->name);
|
_("\
|
||||||
error_at_line (0, 0, runp->file, runp->line,
|
symbol `%s' has the same encoding as"), (*eptr)->name);
|
||||||
_("symbol `%s'"), runp->name);
|
error_at_line (0, 0, runp->file,
|
||||||
|
runp->line,
|
||||||
|
_("symbol `%s'"),
|
||||||
|
runp->name));
|
||||||
goto dont_insertwc;
|
goto dont_insertwc;
|
||||||
}
|
}
|
||||||
else if (c < 0)
|
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
|
/* This seems not to be enforced by recent standards. Don't
|
||||||
emit an error, simply append UNDEFINED at the end. */
|
emit an error, simply append UNDEFINED at the end. */
|
||||||
if (0)
|
if (0)
|
||||||
error (0, 0, _("no definition of `UNDEFINED'"));
|
WITH_CUR_LOCALE (error (0, 0, _("no definition of `UNDEFINED'")));
|
||||||
|
|
||||||
/* Add UNDEFINED at the end. */
|
/* Add UNDEFINED at the end. */
|
||||||
collate->undefined.mborder =
|
collate->undefined.mborder =
|
||||||
|
|
@ -3389,8 +3397,8 @@ error while adding equivalent collating symbol"));
|
||||||
}
|
}
|
||||||
else if (state == 3)
|
else if (state == 3)
|
||||||
{
|
{
|
||||||
error (0, 0, _("%s: missing `reorder-end' keyword"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_COLLATE");
|
%s: missing `reorder-end' keyword"), "LC_COLLATE"));
|
||||||
state = 4;
|
state = 4;
|
||||||
}
|
}
|
||||||
else if (state != 2 && state != 4)
|
else if (state != 2 && state != 4)
|
||||||
|
|
@ -3739,11 +3747,11 @@ error while adding equivalent collating symbol"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (state == 3)
|
else if (state == 3)
|
||||||
error (0, 0, _("%s: missing `reorder-end' keyword"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_COLLATE");
|
%s: missing `reorder-end' keyword"), "LC_COLLATE"));
|
||||||
else if (state == 5)
|
else if (state == 5)
|
||||||
error (0, 0, _("%s: missing `reorder-sections-end' keyword"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_COLLATE");
|
%s: missing `reorder-sections-end' keyword"), "LC_COLLATE"));
|
||||||
}
|
}
|
||||||
arg = lr_token (ldfile, charmap, result, NULL, verbose);
|
arg = lr_token (ldfile, charmap, result, NULL, verbose);
|
||||||
if (arg->tok == tok_eof)
|
if (arg->tok == tok_eof)
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
||||||
|
|
||||||
|
|
@ -33,13 +33,13 @@
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "charmap.h"
|
#include "charmap.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "langinfo.h"
|
#include "langinfo.h"
|
||||||
#include "linereader.h"
|
#include "linereader.h"
|
||||||
#include "locfile-token.h"
|
#include "locfile-token.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
#include "localedef.h"
|
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
|
@ -413,7 +413,8 @@ ctype_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (ctype == NULL)
|
if (ctype == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
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_startup (NULL, locale, charmap, NULL, 0);
|
||||||
ctype = locale->categories[LC_CTYPE].ctype;
|
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 (ctype->codeset_name == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
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//";
|
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];
|
uint32_t value = ctype->charnames[cnt];
|
||||||
|
|
||||||
if (!be_quiet)
|
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'"),
|
character L'\\u%0*x' in class `%s' must be in class `%s'"),
|
||||||
value > 0xffff ? 8 : 4, value,
|
value > 0xffff ? 8 : 4,
|
||||||
valid_table[cls1].name,
|
value,
|
||||||
valid_table[cls2].name);
|
valid_table[cls1].name,
|
||||||
|
valid_table[cls2].name));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -473,11 +476,12 @@ character L'\\u%0*x' in class `%s' must be in class `%s'"),
|
||||||
uint32_t value = ctype->charnames[cnt];
|
uint32_t value = ctype->charnames[cnt];
|
||||||
|
|
||||||
if (!be_quiet)
|
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'"),
|
character L'\\u%0*x' in class `%s' must not be in class `%s'"),
|
||||||
value > 0xffff ? 8 : 4, value,
|
value > 0xffff ? 8 : 4,
|
||||||
valid_table[cls1].name,
|
value,
|
||||||
valid_table[cls2].name);
|
valid_table[cls1].name,
|
||||||
|
valid_table[cls2].name));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -486,8 +490,8 @@ character L'\\u%0*x' in class `%s' must not be in class `%s'"),
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
error (5, 0, _("internal error in %s, line %u"),
|
WITH_CUR_LOCALE (error (5, 0, _("\
|
||||||
__FUNCTION__, __LINE__);
|
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);
|
snprintf (buf, sizeof buf, "\\%Zo", cnt);
|
||||||
|
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
character '%s' in class `%s' must be in class `%s'"),
|
character '%s' in class `%s' must be in class `%s'"),
|
||||||
buf, valid_table[cls1].name,
|
buf,
|
||||||
valid_table[cls2].name);
|
valid_table[cls1].name,
|
||||||
|
valid_table[cls2].name));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -530,10 +535,11 @@ character '%s' in class `%s' must be in class `%s'"),
|
||||||
snprintf (buf, sizeof buf, "\\%Zo", cnt);
|
snprintf (buf, sizeof buf, "\\%Zo", cnt);
|
||||||
|
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
character '%s' in class `%s' must not be in class `%s'"),
|
character '%s' in class `%s' must not be in class `%s'"),
|
||||||
buf, valid_table[cls1].name,
|
buf,
|
||||||
valid_table[cls2].name);
|
valid_table[cls1].name,
|
||||||
|
valid_table[cls2].name));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -542,8 +548,8 @@ character '%s' in class `%s' must not be in class `%s'"),
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
error (5, 0, _("internal error in %s, line %u"),
|
WITH_CUR_LOCALE (error (5, 0, _("\
|
||||||
__FUNCTION__, __LINE__);
|
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)))
|
& BITw (tok_blank)) == 0)))
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("<SP> character not in class `%s'"),
|
WITH_CUR_LOCALE (error (0, 0, _("<SP> character not in class `%s'"),
|
||||||
valid_table[cnt].name);
|
valid_table[cnt].name));
|
||||||
}
|
}
|
||||||
else if (((cnt = BITPOS (tok_punct),
|
else if (((cnt = BITPOS (tok_punct),
|
||||||
(ELEM (ctype, class_collection, , space_value)
|
(ELEM (ctype, class_collection, , space_value)
|
||||||
|
|
@ -571,8 +577,9 @@ character '%s' in class `%s' must not be in class `%s'"),
|
||||||
!= 0)))
|
!= 0)))
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("<SP> character must not be in class `%s'"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
valid_table[cnt].name);
|
<SP> character must not be in class `%s'"),
|
||||||
|
valid_table[cnt].name));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ELEM (ctype, class_collection, , space_value) |= BITw (tok_print);
|
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 (space_seq == NULL || space_seq->nbytes != 1)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
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),
|
else if (((cnt = BITPOS (tok_space),
|
||||||
(ctype->class256_collection[space_seq->bytes[0]]
|
(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)))
|
& BIT (tok_blank)) == 0)))
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("<SP> character not in class `%s'"),
|
WITH_CUR_LOCALE (error (0, 0, _("<SP> character not in class `%s'"),
|
||||||
valid_table[cnt].name);
|
valid_table[cnt].name));
|
||||||
}
|
}
|
||||||
else if (((cnt = BITPOS (tok_punct),
|
else if (((cnt = BITPOS (tok_punct),
|
||||||
(ctype->class256_collection[space_seq->bytes[0]]
|
(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)))
|
& BIT (tok_graph)) != 0)))
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("<SP> character must not be in class `%s'"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
valid_table[cnt].name);
|
<SP> character must not be in class `%s'"),
|
||||||
|
valid_table[cnt].name));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ctype->class256_collection[space_seq->bytes[0]] |= BIT (tok_print);
|
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);
|
assert (ctype->mbdigits_act == ctype->wcdigits_act);
|
||||||
ctype->wcdigits_act -= ctype->mbdigits_act % 10;
|
ctype->wcdigits_act -= ctype->mbdigits_act % 10;
|
||||||
ctype->mbdigits_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.
|
/* 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)
|
if (ctype->mbdigits[cnt] == NULL)
|
||||||
{
|
{
|
||||||
/* Hum, this ain't good. */
|
/* Hum, this ain't good. */
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
no input digits defined and none of the standard names in the charmap"));
|
no input digits defined and none of the standard names in the charmap")));
|
||||||
|
|
||||||
ctype->mbdigits[cnt] = obstack_alloc (&((struct charmap_t *) charmap)->mem_pool,
|
ctype->mbdigits[cnt] = obstack_alloc (&((struct charmap_t *) charmap)->mem_pool,
|
||||||
sizeof (struct charseq) + 1);
|
sizeof (struct charseq) + 1);
|
||||||
|
|
@ -810,8 +820,8 @@ no input digits defined and none of the standard names in the charmap"));
|
||||||
|
|
||||||
if (!warned)
|
if (!warned)
|
||||||
{
|
{
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
not all characters used in `outdigit' are available in the charmap"));
|
not all characters used in `outdigit' are available in the charmap")));
|
||||||
warned = 1;
|
warned = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -827,8 +837,8 @@ not all characters used in `outdigit' are available in the charmap"));
|
||||||
{
|
{
|
||||||
if (!warned)
|
if (!warned)
|
||||||
{
|
{
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
not all characters used in `outdigit' are available in the repertoire"));
|
not all characters used in `outdigit' are available in the repertoire")));
|
||||||
warned = 1;
|
warned = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1227,9 +1237,9 @@ ctype_class_new (struct linereader *lr, struct locale_ctype_t *ctype,
|
||||||
|
|
||||||
if (ctype->nr_charclass == MAX_NR_CHARCLASS)
|
if (ctype->nr_charclass == MAX_NR_CHARCLASS)
|
||||||
/* Exit code 2 is prescribed in P1003.2b. */
|
/* 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"),
|
implementation limit: no more than %Zd character classes allowed"),
|
||||||
MAX_NR_CHARCLASS);
|
MAX_NR_CHARCLASS));
|
||||||
|
|
||||||
ctype->classnames[ctype->nr_charclass++] = name;
|
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)
|
if (ctype->map_collection_nr == MAX_NR_CHARMAP)
|
||||||
/* Exit code 2 is prescribed in P1003.2b. */
|
/* 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"),
|
implementation limit: no more than %d character maps allowed"),
|
||||||
MAX_NR_CHARMAP);
|
MAX_NR_CHARMAP));
|
||||||
|
|
||||||
ctype->mapnames[cnt] = name;
|
ctype->mapnames[cnt] = name;
|
||||||
|
|
||||||
|
|
@ -2824,10 +2834,11 @@ with character code range values one must use the absolute ellipsis `...'"));
|
||||||
{
|
{
|
||||||
lr_error (ldfile, _("\
|
lr_error (ldfile, _("\
|
||||||
%s: duplicate `default_missing' definition"), "LC_CTYPE");
|
%s: duplicate `default_missing' definition"), "LC_CTYPE");
|
||||||
error_at_line (0, 0, ctype->default_missing_file,
|
WITH_CUR_LOCALE (error_at_line (0, 0,
|
||||||
ctype->default_missing_lineno,
|
ctype->default_missing_file,
|
||||||
_("\
|
ctype->default_missing_lineno,
|
||||||
previous definition was here"));
|
_("\
|
||||||
|
previous definition was here")));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -3001,14 +3012,14 @@ set_class_defaults (struct locale_ctype_t *ctype,
|
||||||
if (seq == NULL)
|
if (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined in charmap while needed as default value"),
|
%s: character `%s' not defined in charmap while needed as default value"),
|
||||||
"LC_CTYPE", tmp);
|
"LC_CTYPE", tmp));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", tmp);
|
"LC_CTYPE", tmp));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= bit;
|
ctype->class256_collection[seq->bytes[0]] |= bit;
|
||||||
|
|
||||||
|
|
@ -3085,14 +3096,14 @@ set_class_defaults (struct locale_ctype_t *ctype,
|
||||||
if (seq == NULL)
|
if (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", "<space>");
|
"LC_CTYPE", "<space>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<space>");
|
"LC_CTYPE", "<space>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
|
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 (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", "<form-feed>");
|
"LC_CTYPE", "<form-feed>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<form-feed>");
|
"LC_CTYPE", "<form-feed>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
|
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 (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
character `%s' not defined while needed as default value"),
|
character `%s' not defined while needed as default value"),
|
||||||
"<newline>");
|
"<newline>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<newline>");
|
"LC_CTYPE", "<newline>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
|
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 (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", "<carriage-return>");
|
"LC_CTYPE", "<carriage-return>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<carriage-return>");
|
"LC_CTYPE", "<carriage-return>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
|
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 (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", "<tab>");
|
"LC_CTYPE", "<tab>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<tab>");
|
"LC_CTYPE", "<tab>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
|
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 (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", "<vertical-tab>");
|
"LC_CTYPE", "<vertical-tab>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<vertical-tab>");
|
"LC_CTYPE", "<vertical-tab>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_space);
|
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 (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", "<space>");
|
"LC_CTYPE", "<space>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<space>");
|
"LC_CTYPE", "<space>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_blank);
|
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 (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", "<tab>");
|
"LC_CTYPE", "<tab>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<tab>");
|
"LC_CTYPE", "<tab>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_blank);
|
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 (seq == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", "<space>");
|
"LC_CTYPE", "<space>"));
|
||||||
}
|
}
|
||||||
else if (seq->nbytes != 1)
|
else if (seq->nbytes != 1)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' in charmap not representable with one byte"),
|
%s: character `%s' in charmap not representable with one byte"),
|
||||||
"LC_CTYPE", "<space>");
|
"LC_CTYPE", "<space>"));
|
||||||
else
|
else
|
||||||
ctype->class256_collection[seq->bytes[0]] |= BIT (tok_print);
|
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 (seq_from == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", tmp);
|
"LC_CTYPE", tmp));
|
||||||
}
|
}
|
||||||
else if (seq_from->nbytes != 1)
|
else if (seq_from->nbytes != 1)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' needed as default value not representable with one byte"),
|
%s: character `%s' needed as default value not representable with one byte"),
|
||||||
"LC_CTYPE", tmp);
|
"LC_CTYPE", tmp));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -3384,16 +3395,16 @@ character `%s' not defined while needed as default value"),
|
||||||
if (seq_to == NULL)
|
if (seq_to == NULL)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' not defined while needed as default value"),
|
%s: character `%s' not defined while needed as default value"),
|
||||||
"LC_CTYPE", tmp);
|
"LC_CTYPE", tmp));
|
||||||
}
|
}
|
||||||
else if (seq_to->nbytes != 1)
|
else if (seq_to->nbytes != 1)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: character `%s' needed as default value not representable with one byte"),
|
%s: character `%s' needed as default value not representable with one byte"),
|
||||||
"LC_CTYPE", tmp);
|
"LC_CTYPE", tmp));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
/* The index [0] is determined by the order of the
|
/* 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 != 10)
|
||||||
{
|
{
|
||||||
if (ctype->outdigits_act != 0)
|
if (ctype->outdigits_act != 0)
|
||||||
error (0,0, _("%s: field `%s' does not contain exactly ten entries"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_CTYPE", "outdigit");
|
%s: field `%s' does not contain exactly ten entries"),
|
||||||
|
"LC_CTYPE", "outdigit"));
|
||||||
|
|
||||||
for (cnt = ctype->outdigits_act; cnt < 10; ++cnt)
|
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)
|
if (ctype->mboutdigits[cnt] == NULL)
|
||||||
{
|
{
|
||||||
/* Provide a replacement. */
|
/* Provide a replacement. */
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
no output digits defined and none of the standard names in the charmap"));
|
no output digits defined and none of the standard names in the charmap")));
|
||||||
|
|
||||||
ctype->mboutdigits[cnt] = obstack_alloc (&((struct charmap_t *) charmap)->mem_pool,
|
ctype->mboutdigits[cnt] = obstack_alloc (&((struct charmap_t *) charmap)->mem_pool,
|
||||||
sizeof (struct charseq)
|
sizeof (struct charseq)
|
||||||
|
|
@ -3736,9 +3748,9 @@ translit_flatten (struct locale_ctype_t *ctype,
|
||||||
|
|
||||||
if (other == NULL)
|
if (other == NULL)
|
||||||
{
|
{
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: transliteration data from locale `%s' not available"),
|
%s: transliteration data from locale `%s' not available"),
|
||||||
"LC_CTYPE", copy_locale);
|
"LC_CTYPE", copy_locale));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -3832,9 +3844,10 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
|
||||||
wctype_table_finalize (&t);
|
wctype_table_finalize (&t);
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
fprintf (stderr, _("%s: table for class \"%s\": %lu bytes\n"),
|
WITH_CUR_LOCALE (fprintf (stderr, _("\
|
||||||
"LC_CTYPE", ctype->classnames[nr],
|
%s: table for class \"%s\": %lu bytes\n"),
|
||||||
(unsigned long int) t.result_size);
|
"LC_CTYPE", ctype->classnames[nr],
|
||||||
|
(unsigned long int) t.result_size));
|
||||||
|
|
||||||
ctype->class_3level[nr].iov_base = t.result;
|
ctype->class_3level[nr].iov_base = t.result;
|
||||||
ctype->class_3level[nr].iov_len = t.result_size;
|
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);
|
wctrans_table_finalize (&t);
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
fprintf (stderr, _("%s: table for map \"%s\": %lu bytes\n"),
|
WITH_CUR_LOCALE (fprintf (stderr, _("\
|
||||||
"LC_CTYPE", ctype->mapnames[nr],
|
%s: table for map \"%s\": %lu bytes\n"),
|
||||||
(unsigned long int) t.result_size);
|
"LC_CTYPE", ctype->mapnames[nr],
|
||||||
|
(unsigned long int) t.result_size));
|
||||||
|
|
||||||
ctype->map_3level[nr].iov_base = t.result;
|
ctype->map_3level[nr].iov_base = t.result;
|
||||||
ctype->map_3level[nr].iov_len = t.result_size;
|
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);
|
wcwidth_table_finalize (&t);
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
fprintf (stderr, _("%s: table for width: %lu bytes\n"),
|
WITH_CUR_LOCALE (fprintf (stderr, _("%s: table for width: %lu bytes\n"),
|
||||||
"LC_CTYPE", (unsigned long int) t.result_size);
|
"LC_CTYPE", (unsigned long int) t.result_size));
|
||||||
|
|
||||||
ctype->width.iov_base = t.result;
|
ctype->width.iov_base = t.result;
|
||||||
ctype->width.iov_len = t.result_size;
|
ctype->width.iov_len = t.result_size;
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -130,8 +131,8 @@ identification_finish (struct localedef_t *locale,
|
||||||
if (identification == NULL)
|
if (identification == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
if (! be_quiet)
|
||||||
error (0, 0, _("No definition for %s category found"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_IDENTIFICATION");
|
No definition for %s category found"), "LC_IDENTIFICATION"));
|
||||||
identification_startup (NULL, locale, 0);
|
identification_startup (NULL, locale, 0);
|
||||||
identification
|
identification
|
||||||
= locale->categories[LC_IDENTIFICATION].identification;
|
= locale->categories[LC_IDENTIFICATION].identification;
|
||||||
|
|
@ -143,8 +144,8 @@ identification_finish (struct localedef_t *locale,
|
||||||
if (identification->cat == NULL) \
|
if (identification->cat == NULL) \
|
||||||
{ \
|
{ \
|
||||||
if (verbose && ! nothing) \
|
if (verbose && ! nothing) \
|
||||||
error (0, 0, _("%s: field `%s' not defined"), \
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
|
||||||
"LC_IDENTIFICATION", #cat); \
|
"LC_IDENTIFICATION", #cat)); \
|
||||||
identification->cat = ""; \
|
identification->cat = ""; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -167,8 +168,9 @@ identification_finish (struct localedef_t *locale,
|
||||||
if (num != LC_ALL && identification->category[num] == NULL)
|
if (num != LC_ALL && identification->category[num] == NULL)
|
||||||
{
|
{
|
||||||
if (verbose && ! nothing)
|
if (verbose && ! nothing)
|
||||||
error (0, 0, _("%s: no identification for category `%s'"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_IDENTIFICATION", category_name[num]);
|
%s: no identification for category `%s'"),
|
||||||
|
"LC_IDENTIFICATION", category_name[num]));
|
||||||
identification->category[num] = "";
|
identification->category[num] = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -91,8 +92,8 @@ measurement_finish (struct localedef_t *locale,
|
||||||
if (measurement == NULL)
|
if (measurement == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
if (! be_quiet)
|
||||||
error (0, 0, _("No definition for %s category found"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_MEASUREMENT");
|
No definition for %s category found"), "LC_MEASUREMENT"));
|
||||||
measurement_startup (NULL, locale, 0);
|
measurement_startup (NULL, locale, 0);
|
||||||
measurement = locale->categories[LC_MEASUREMENT].measurement;
|
measurement = locale->categories[LC_MEASUREMENT].measurement;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -102,16 +103,16 @@ measurement_finish (struct localedef_t *locale,
|
||||||
if (measurement->measurement == 0)
|
if (measurement->measurement == 0)
|
||||||
{
|
{
|
||||||
if (! nothing)
|
if (! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_MEASUREMENT", "measurement");
|
"LC_MEASUREMENT", "measurement"));
|
||||||
/* Use as the default value the value of the i18n locale. */
|
/* Use as the default value the value of the i18n locale. */
|
||||||
measurement->measurement = 1;
|
measurement->measurement = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (measurement->measurement > 3)
|
if (measurement->measurement > 3)
|
||||||
error (0, 0, _("%s: invalid value for field `%s'"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: invalid value for field `%s'"),
|
||||||
"LC_MEASUREMENT", "measurement");
|
"LC_MEASUREMENT", "measurement"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
||||||
|
|
||||||
|
|
@ -29,8 +29,8 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "linereader.h"
|
|
||||||
#include "localedef.h"
|
#include "localedef.h"
|
||||||
|
#include "linereader.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -95,8 +95,8 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (messages == NULL)
|
if (messages == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
if (! be_quiet)
|
||||||
error (0, 0, _("No definition for %s category found"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_MESSAGES");
|
No definition for %s category found"), "LC_MESSAGES"));
|
||||||
messages_startup (NULL, locale, 0);
|
messages_startup (NULL, locale, 0);
|
||||||
messages = locale->categories[LC_MESSAGES].messages;
|
messages = locale->categories[LC_MESSAGES].messages;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -112,15 +112,16 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (messages->yesexpr == NULL)
|
if (messages->yesexpr == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet && ! nothing)
|
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]";
|
messages->yesexpr = "^[yY]";
|
||||||
}
|
}
|
||||||
else if (messages->yesexpr[0] == '\0')
|
else if (messages->yesexpr[0] == '\0')
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: value for field `%s' must not be an empty string"),
|
%s: value for field `%s' must not be an empty string"),
|
||||||
"LC_MESSAGES", "yesexpr");
|
"LC_MESSAGES", "yesexpr"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -134,9 +135,9 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
char errbuf[BUFSIZ];
|
char errbuf[BUFSIZ];
|
||||||
|
|
||||||
(void) regerror (result, &re, 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"),
|
%s: no correct regular expression for field `%s': %s"),
|
||||||
"LC_MESSAGES", "yesexpr", errbuf);
|
"LC_MESSAGES", "yesexpr", errbuf));
|
||||||
}
|
}
|
||||||
else if (result != 0)
|
else if (result != 0)
|
||||||
regfree (&re);
|
regfree (&re);
|
||||||
|
|
@ -145,15 +146,16 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (messages->noexpr == NULL)
|
if (messages->noexpr == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet && ! nothing)
|
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]";
|
messages->noexpr = "^[nN]";
|
||||||
}
|
}
|
||||||
else if (messages->noexpr[0] == '\0')
|
else if (messages->noexpr[0] == '\0')
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: value for field `%s' must not be an empty string"),
|
%s: value for field `%s' must not be an empty string"),
|
||||||
"LC_MESSAGES", "noexpr");
|
"LC_MESSAGES", "noexpr"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -167,9 +169,9 @@ messages_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
char errbuf[BUFSIZ];
|
char errbuf[BUFSIZ];
|
||||||
|
|
||||||
(void) regerror (result, &re, 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"),
|
%s: no correct regular expression for field `%s': %s"),
|
||||||
"LC_MESSAGES", "noexpr", errbuf);
|
"LC_MESSAGES", "noexpr", errbuf));
|
||||||
}
|
}
|
||||||
else if (result != 0)
|
else if (result != 0)
|
||||||
regfree (&re);
|
regfree (&re);
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
||||||
|
|
||||||
|
|
@ -30,8 +30,8 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "linereader.h"
|
|
||||||
#include "localedef.h"
|
#include "localedef.h"
|
||||||
|
#include "linereader.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -191,8 +191,8 @@ monetary_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (monetary == NULL)
|
if (monetary == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
if (! be_quiet)
|
||||||
error (0, 0, _("No definition for %s category found"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_MONETARY");
|
No definition for %s category found"), "LC_MONETARY"));
|
||||||
monetary_startup (NULL, locale, 0);
|
monetary_startup (NULL, locale, 0);
|
||||||
monetary = locale->categories[LC_MONETARY].monetary;
|
monetary = locale->categories[LC_MONETARY].monetary;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -203,8 +203,8 @@ monetary_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (monetary->cat == NULL) \
|
if (monetary->cat == NULL) \
|
||||||
{ \
|
{ \
|
||||||
if (! be_quiet && ! nothing) \
|
if (! be_quiet && ! nothing) \
|
||||||
error (0, 0, _("%s: field `%s' not defined"), \
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
|
||||||
"LC_MONETARY", #cat); \
|
"LC_MONETARY", #cat)); \
|
||||||
monetary->cat = initval; \
|
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 (strlen (monetary->int_curr_symbol) != 4)
|
||||||
{
|
{
|
||||||
if (! be_quiet && ! nothing)
|
if (! be_quiet && ! nothing)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: value of field `int_curr_symbol' has wrong length"),
|
%s: value of field `int_curr_symbol' has wrong length"),
|
||||||
"LC_MONETARY");
|
"LC_MONETARY"));
|
||||||
}
|
}
|
||||||
else if (bsearch (monetary->int_curr_symbol, valid_int_curr,
|
else if (bsearch (monetary->int_curr_symbol, valid_int_curr,
|
||||||
NR_VALID_INT_CURR, sizeof (const char *),
|
NR_VALID_INT_CURR, sizeof (const char *),
|
||||||
(comparison_fn_t) curr_strcmp) == NULL
|
(comparison_fn_t) curr_strcmp) == NULL
|
||||||
&& !be_quiet)
|
&& !be_quiet)
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: value of field `int_curr_symbol' does \
|
%s: value of field `int_curr_symbol' does \
|
||||||
not correspond to a valid name in ISO 4217"),
|
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
|
/* 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 (monetary->mon_decimal_point == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet && ! nothing)
|
if (! be_quiet && ! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_MONETARY", "mon_decimal_point");
|
"LC_MONETARY", "mon_decimal_point"));
|
||||||
monetary->mon_decimal_point = ".";
|
monetary->mon_decimal_point = ".";
|
||||||
}
|
}
|
||||||
else if (monetary->mon_decimal_point[0] == '\0' && ! be_quiet && ! nothing)
|
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"),
|
%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')
|
if (monetary->mon_decimal_point_wc == L'\0')
|
||||||
monetary->mon_decimal_point_wc = L'.';
|
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 (monetary->mon_grouping_len == 0)
|
||||||
{
|
{
|
||||||
if (! be_quiet && ! nothing)
|
if (! be_quiet && ! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_MONETARY", "mon_grouping");
|
"LC_MONETARY", "mon_grouping"));
|
||||||
|
|
||||||
monetary->mon_grouping = (char *) "\177";
|
monetary->mon_grouping = (char *) "\177";
|
||||||
monetary->mon_grouping_len = 1;
|
monetary->mon_grouping_len = 1;
|
||||||
|
|
@ -269,15 +269,15 @@ not correspond to a valid name in ISO 4217"),
|
||||||
if (monetary->cat == -2) \
|
if (monetary->cat == -2) \
|
||||||
{ \
|
{ \
|
||||||
if (! be_quiet && ! nothing) \
|
if (! be_quiet && ! nothing) \
|
||||||
error (0, 0, _("%s: field `%s' not defined"), \
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \
|
||||||
"LC_MONETARY", #cat); \
|
"LC_MONETARY", #cat)); \
|
||||||
monetary->cat = initval; \
|
monetary->cat = initval; \
|
||||||
} \
|
} \
|
||||||
else if ((monetary->cat < min || monetary->cat > max) \
|
else if ((monetary->cat < min || monetary->cat > max) \
|
||||||
&& !be_quiet && !nothing) \
|
&& !be_quiet && !nothing) \
|
||||||
error (0, 0, _(" \
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: value for field `%s' must be in range %d...%d"), \
|
%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 (int_frac_digits, -128, 127, -1);
|
||||||
TEST_ELEM (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; \
|
monetary->cat = monetary->alt; \
|
||||||
else if ((monetary->cat < min || monetary->cat > max) && !be_quiet \
|
else if ((monetary->cat < min || monetary->cat > max) && !be_quiet \
|
||||||
&& ! nothing) \
|
&& ! nothing) \
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: value for field `%s' must be in range %d...%d"), \
|
%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_cs_precedes, p_cs_precedes, -1, 1);
|
||||||
TEST_ELEM (int_p_sep_by_space, p_sep_by_space, -1, 2);
|
TEST_ELEM (int_p_sep_by_space, p_sep_by_space, -1, 2);
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -91,7 +92,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
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_startup (NULL, locale, 0);
|
||||||
name = locale->categories[LC_NAME].name;
|
name = locale->categories[LC_NAME].name;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -101,7 +103,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (name->name_fmt == NULL)
|
if (name->name_fmt == NULL)
|
||||||
{
|
{
|
||||||
if (! nothing)
|
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. */
|
/* Use as the default value the value of the i18n locale. */
|
||||||
name->name_fmt = "%p%t%g%t%m%t%f";
|
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;
|
const char *cp = name->name_fmt;
|
||||||
|
|
||||||
if (*cp == '\0')
|
if (*cp == '\0')
|
||||||
error (0, 0, _("%s: field `%s' must not be empty"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
|
||||||
"LC_NAME", "name_fmt");
|
"LC_NAME", "name_fmt"));
|
||||||
else
|
else
|
||||||
while (*cp != '\0')
|
while (*cp != '\0')
|
||||||
{
|
{
|
||||||
|
|
@ -124,9 +127,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
++cp;
|
++cp;
|
||||||
if (strchr ("dfFgGlomMpsSt", *cp) == NULL)
|
if (strchr ("dfFgGlomMpsSt", *cp) == NULL)
|
||||||
{
|
{
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: invalid escape sequence in field `%s'"),
|
%s: invalid escape sequence in field `%s'"), "LC_NAME", "name_fmt"));
|
||||||
"LC_NAME", "name_fmt");
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -138,7 +140,8 @@ name_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (name->cat == NULL) \
|
if (name->cat == NULL) \
|
||||||
{ \
|
{ \
|
||||||
if (verbose && ! nothing) \
|
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 = ""; \
|
name->cat = ""; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
||||||
|
|
||||||
|
|
@ -27,8 +27,8 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "linereader.h"
|
|
||||||
#include "localedef.h"
|
#include "localedef.h"
|
||||||
|
#include "linereader.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -96,8 +96,8 @@ numeric_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (numeric == NULL)
|
if (numeric == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
if (! be_quiet)
|
||||||
error (0, 0, _("No definition for %s category found"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_NUMERIC");
|
No definition for %s category found"), "LC_NUMERIC"));
|
||||||
numeric_startup (NULL, locale, 0);
|
numeric_startup (NULL, locale, 0);
|
||||||
numeric = locale->categories[LC_NUMERIC].numeric;
|
numeric = locale->categories[LC_NUMERIC].numeric;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -110,21 +110,22 @@ numeric_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (numeric->decimal_point == NULL)
|
if (numeric->decimal_point == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet && ! nothing)
|
if (! be_quiet && ! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_NUMERIC", "decimal_point");
|
"LC_NUMERIC", "decimal_point"));
|
||||||
numeric->decimal_point = ".";
|
numeric->decimal_point = ".";
|
||||||
}
|
}
|
||||||
else if (numeric->decimal_point[0] == '\0' && ! be_quiet && ! nothing)
|
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"),
|
%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')
|
if (numeric->decimal_point_wc == L'\0')
|
||||||
numeric->decimal_point_wc = L'.';
|
numeric->decimal_point_wc = L'.';
|
||||||
|
|
||||||
if (numeric->grouping_len == 0 && ! be_quiet && ! nothing)
|
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"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -88,7 +89,8 @@ paper_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (paper == NULL)
|
if (paper == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
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_startup (NULL, locale, 0);
|
||||||
paper = locale->categories[LC_PAPER].paper;
|
paper = locale->categories[LC_PAPER].paper;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -98,7 +100,8 @@ paper_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (paper->height == 0)
|
if (paper->height == 0)
|
||||||
{
|
{
|
||||||
if (! nothing)
|
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. */
|
/* Use as default values the values from the i18n locale. */
|
||||||
paper->height = 297;
|
paper->height = 297;
|
||||||
}
|
}
|
||||||
|
|
@ -106,7 +109,8 @@ paper_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (paper->width == 0)
|
if (paper->width == 0)
|
||||||
{
|
{
|
||||||
if (! nothing)
|
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. */
|
/* Use as default values the values from the i18n locale. */
|
||||||
paper->width = 210;
|
paper->width = 210;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -91,8 +92,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (telephone == NULL)
|
if (telephone == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
if (! be_quiet)
|
||||||
error (0, 0, _("No definition for %s category found"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_TELEPHONE");
|
No definition for %s category found"), "LC_TELEPHONE"));
|
||||||
telephone_startup (NULL, locale, 0);
|
telephone_startup (NULL, locale, 0);
|
||||||
telephone = locale->categories[LC_TELEPHONE].telephone;
|
telephone = locale->categories[LC_TELEPHONE].telephone;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -102,8 +103,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (telephone->tel_int_fmt == NULL)
|
if (telephone->tel_int_fmt == NULL)
|
||||||
{
|
{
|
||||||
if (! nothing)
|
if (! nothing)
|
||||||
error (0, 0, _("%s: field `%s' not defined"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
|
||||||
"LC_TELEPHONE", "tel_int_fmt");
|
"LC_TELEPHONE", "tel_int_fmt"));
|
||||||
/* Use as the default value the value of the i18n locale. */
|
/* Use as the default value the value of the i18n locale. */
|
||||||
telephone->tel_int_fmt = "+%c %a %l";
|
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;
|
const char *cp = telephone->tel_int_fmt;
|
||||||
|
|
||||||
if (*cp == '\0')
|
if (*cp == '\0')
|
||||||
error (0, 0, _("%s: field `%s' must not be empty"),
|
WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
|
||||||
"LC_TELEPHONE", "tel_int_fmt");
|
"LC_TELEPHONE", "tel_int_fmt"));
|
||||||
else
|
else
|
||||||
while (*cp != '\0')
|
while (*cp != '\0')
|
||||||
{
|
{
|
||||||
|
|
@ -123,9 +124,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
{
|
{
|
||||||
if (strchr ("aAlc", *++cp) == NULL)
|
if (strchr ("aAlc", *++cp) == NULL)
|
||||||
{
|
{
|
||||||
error (0, 0, _("\
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
%s: invalid escape sequence in field `%s'"),
|
%s: invalid escape sequence in field `%s'"), "LC_TELEPHONE", "tel_int_fmt"));
|
||||||
"LC_TELEPHONE", "tel_int_fmt");
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -147,8 +147,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
{
|
{
|
||||||
if (strchr ("aAlc", *++cp) == NULL)
|
if (strchr ("aAlc", *++cp) == NULL)
|
||||||
{
|
{
|
||||||
error (0, 0, _("%s: invalid escape sequence in field `%s'"),
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"LC_TELEPHONE", "tel_dom_fmt");
|
%s: invalid escape sequence in field `%s'"), "LC_TELEPHONE", "tel_dom_fmt"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -160,7 +160,8 @@ telephone_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (telephone->cat == NULL) \
|
if (telephone->cat == NULL) \
|
||||||
{ \
|
{ \
|
||||||
if (verbose && ! nothing) \
|
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 = ""; \
|
telephone->cat = ""; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
|
||||||
|
|
||||||
|
|
@ -30,8 +30,8 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "linereader.h"
|
|
||||||
#include "localedef.h"
|
#include "localedef.h"
|
||||||
|
#include "linereader.h"
|
||||||
#include "localeinfo.h"
|
#include "localeinfo.h"
|
||||||
#include "locfile.h"
|
#include "locfile.h"
|
||||||
|
|
||||||
|
|
@ -157,7 +157,8 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (time == NULL)
|
if (time == NULL)
|
||||||
{
|
{
|
||||||
if (! be_quiet)
|
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_startup (NULL, locale, 0);
|
||||||
time = locale->categories[LC_TIME].time;
|
time = locale->categories[LC_TIME].time;
|
||||||
nothing = 1;
|
nothing = 1;
|
||||||
|
|
@ -172,7 +173,8 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
int i; \
|
int i; \
|
||||||
\
|
\
|
||||||
if (! be_quiet && ! nothing) \
|
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) \
|
for (i = 0; i < sizeof (initval) / sizeof (initval[0]); ++i) \
|
||||||
time->cat[i] = initval[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 (time->cat == NULL) \
|
||||||
{ \
|
{ \
|
||||||
if (! be_quiet && ! nothing) \
|
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; \
|
time->cat = initval; \
|
||||||
}
|
}
|
||||||
|
|
@ -242,10 +245,9 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (*str != '+' && *str != '-')
|
if (*str != '+' && *str != '-')
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0,
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
_("%s: direction flag in string %Zd in `era' field"
|
%s: direction flag in string %Zd in `era' field is not '+' nor '-'"),
|
||||||
" is not '+' nor '-'"),
|
"LC_TIME", idx + 1));
|
||||||
"LC_TIME", idx + 1);
|
|
||||||
/* Default arbitrarily to '+'. */
|
/* Default arbitrarily to '+'. */
|
||||||
time->era_entries[idx].direction = '+';
|
time->era_entries[idx].direction = '+';
|
||||||
}
|
}
|
||||||
|
|
@ -254,10 +256,9 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (*++str != ':')
|
if (*++str != ':')
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0,
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
_("%s: direction flag in string %Zd in `era' field"
|
%s: direction flag in string %Zd in `era' field is not a single character"),
|
||||||
" is not a single character"),
|
"LC_TIME", idx + 1));
|
||||||
"LC_TIME", idx + 1);
|
|
||||||
(void) strsep (&str, ":");
|
(void) strsep (&str, ":");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -268,17 +269,17 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
if (endp == str)
|
if (endp == str)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("%s: invalid number for offset in string %Zd in"
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
" `era' field"),
|
%s: invalid number for offset in string %Zd in `era' field"),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
(void) strsep (&str, ":");
|
(void) strsep (&str, ":");
|
||||||
}
|
}
|
||||||
else if (*endp != ':')
|
else if (*endp != ':')
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("%s: garbage at end of offset value in"
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
" string %Zd in `era' field"),
|
%s: garbage at end of offset value in string %Zd in `era' field"),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
(void) strsep (&str, ":");
|
(void) strsep (&str, ":");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -327,18 +328,18 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
{
|
{
|
||||||
invalid_start_date:
|
invalid_start_date:
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("%s: invalid starting date in string %Zd in"
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
" `era' field"),
|
%s: invalid starting date in string %Zd in `era' field"),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
(void) strsep (&str, ":");
|
(void) strsep (&str, ":");
|
||||||
}
|
}
|
||||||
else if (*endp != ':')
|
else if (*endp != ':')
|
||||||
{
|
{
|
||||||
garbage_start_date:
|
garbage_start_date:
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("%s: garbage at end of starting date "
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"in string %Zd in `era' field "),
|
%s: garbage at end of starting date in string %Zd in `era' field "),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
(void) strsep (&str, ":");
|
(void) strsep (&str, ":");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -355,9 +356,9 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
&& time->era_entries[idx].start_date[2] == 29
|
&& time->era_entries[idx].start_date[2] == 29
|
||||||
&& !__isleap (time->era_entries[idx].start_date[0])))
|
&& !__isleap (time->era_entries[idx].start_date[0])))
|
||||||
&& !be_quiet)
|
&& !be_quiet)
|
||||||
error (0, 0, _("%s: starting date is invalid in"
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
" string %Zd in `era' field"),
|
%s: starting date is invalid in string %Zd in `era' field"),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -404,18 +405,18 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
{
|
{
|
||||||
invalid_stop_date:
|
invalid_stop_date:
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("%s: invalid stopping date in string %Zd in"
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
" `era' field"),
|
%s: invalid stopping date in string %Zd in `era' field"),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
(void) strsep (&str, ":");
|
(void) strsep (&str, ":");
|
||||||
}
|
}
|
||||||
else if (*endp != ':')
|
else if (*endp != ':')
|
||||||
{
|
{
|
||||||
garbage_stop_date:
|
garbage_stop_date:
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("%s: garbage at end of stopping date "
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
"in string %Zd in `era' field"),
|
%s: garbage at end of stopping date in string %Zd in `era' field"),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
(void) strsep (&str, ":");
|
(void) strsep (&str, ":");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -432,17 +433,17 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
&& time->era_entries[idx].stop_date[2] == 29
|
&& time->era_entries[idx].stop_date[2] == 29
|
||||||
&& !__isleap (time->era_entries[idx].stop_date[0])))
|
&& !__isleap (time->era_entries[idx].stop_date[0])))
|
||||||
&& !be_quiet)
|
&& !be_quiet)
|
||||||
error (0, 0, _("%s: stopping date is invalid in"
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
" string %Zd in `era' field"),
|
%s: stopping date is invalid in string %Zd in `era' field"),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (str == NULL || *str == '\0')
|
if (str == NULL || *str == '\0')
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("%s: missing era name in string %Zd in `era'"
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
" field"), "LC_TIME", idx + 1);
|
%s: missing era name in string %Zd in `era' field"), "LC_TIME", idx + 1));
|
||||||
time->era_entries[idx].name =
|
time->era_entries[idx].name =
|
||||||
time->era_entries[idx].format = "";
|
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 (str == NULL || *str == '\0')
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, 0, _("%s: missing era format in string %Zd"
|
WITH_CUR_LOCALE (error (0, 0, _("\
|
||||||
" in `era' field"),
|
%s: missing era format in string %Zd in `era' field"),
|
||||||
"LC_TIME", idx + 1);
|
"LC_TIME", idx + 1));
|
||||||
time->era_entries[idx].name =
|
time->era_entries[idx].name =
|
||||||
time->era_entries[idx].format = "";
|
time->era_entries[idx].format = "";
|
||||||
}
|
}
|
||||||
|
|
@ -482,33 +483,33 @@ time_finish (struct localedef_t *locale, const struct charmap_t *charmap)
|
||||||
time->week_1stday = 19971130;
|
time->week_1stday = 19971130;
|
||||||
|
|
||||||
if (time->week_1stweek > time->week_ndays)
|
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"),
|
%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')
|
if (time->first_weekday == '\0')
|
||||||
/* The definition does not specify this so the default is used. */
|
/* The definition does not specify this so the default is used. */
|
||||||
time->first_weekday = 1;
|
time->first_weekday = 1;
|
||||||
else if (time->first_weekday > time->week_ndays)
|
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"),
|
%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')
|
if (time->first_workday == '\0')
|
||||||
/* The definition does not specify this so the default is used. */
|
/* The definition does not specify this so the default is used. */
|
||||||
time->first_workday = 1;
|
time->first_workday = 1;
|
||||||
else if (time->first_workday > time->week_ndays)
|
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"),
|
%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')
|
if (time->cal_direction == '\0')
|
||||||
/* The definition does not specify this so the default is used. */
|
/* The definition does not specify this so the default is used. */
|
||||||
time->cal_direction = 1;
|
time->cal_direction = 1;
|
||||||
else if (time->cal_direction > 3)
|
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"),
|
%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
|
/* XXX We don't perform any tests on the timezone value since this is
|
||||||
simply useless, stupid $&$!@... */
|
simply useless, stupid $&$!@... */
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
|
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
|
||||||
|
|
||||||
|
|
@ -29,18 +29,12 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "charmap.h"
|
#include "charmap.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "linereader.h"
|
#include "linereader.h"
|
||||||
#include "localedef.h"
|
|
||||||
#include "locfile.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. */
|
/* Prototypes for local functions. */
|
||||||
static struct token *get_toplvl_escape (struct linereader *lr);
|
static struct token *get_toplvl_escape (struct linereader *lr);
|
||||||
static struct token *get_symname (struct linereader *lr);
|
static struct token *get_symname (struct linereader *lr);
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper, <drepper@gnu.org>.
|
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...) \
|
#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))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,10 +31,11 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <error.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#include "error.h"
|
#include "localedef.h"
|
||||||
#include "charmap.h"
|
#include "charmap.h"
|
||||||
#include "locfile.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
|
defines error code 3 for this situation so I think it must be
|
||||||
a fatal error (see P1003.2 4.35.8). */
|
a fatal error (see P1003.2 4.35.8). */
|
||||||
if (sysconf (_SC_2_LOCALEDEF) < 0)
|
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. */
|
/* Process charmap file. */
|
||||||
charmap = charmap_read (charmap_file, verbose, be_quiet, 1);
|
charmap = charmap_read (charmap_file, verbose, be_quiet, 1);
|
||||||
|
|
@ -202,7 +204,8 @@ main (int argc, char *argv[])
|
||||||
|
|
||||||
/* Now read the locale file. */
|
/* Now read the locale file. */
|
||||||
if (locfile_read (&global, charmap) != 0)
|
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. */
|
/* Perhaps we saw some `copy' instructions. */
|
||||||
while (1)
|
while (1)
|
||||||
|
|
@ -217,8 +220,8 @@ main (int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (locfile_read (runp, charmap) != 0)
|
if (locfile_read (runp, charmap) != 0)
|
||||||
error (4, errno, _("cannot open locale definition file `%s'"),
|
WITH_CUR_LOCALE (error (4, errno, _("\
|
||||||
runp->name);
|
cannot open locale definition file `%s'"), runp->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check the categories we processed in source form. */
|
/* 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 (error_message_count == 0 || force_output != 0)
|
||||||
{
|
{
|
||||||
if (cannot_write_why != 0)
|
if (cannot_write_why != 0)
|
||||||
error (4, cannot_write_why, _("cannot write output files to `%s'"),
|
WITH_CUR_LOCALE (error (4, cannot_write_why, _("\
|
||||||
output_path);
|
cannot write output files to `%s'"), output_path));
|
||||||
else
|
else
|
||||||
write_all_categories (locales, charmap, output_path);
|
write_all_categories (locales, charmap, output_path);
|
||||||
}
|
}
|
||||||
else
|
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. */
|
/* This exit status is prescribed by POSIX.2 4.35.7. */
|
||||||
exit (error_message_count != 0);
|
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)
|
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 (copy_locale != NULL)
|
||||||
{
|
{
|
||||||
if (runp->categories[locale].generic != NULL)
|
if (runp->categories[locale].generic != NULL)
|
||||||
error (5, 0, _("cannot add already read locale `%s' a second time"),
|
WITH_CUR_LOCALE (error (5, 0, _("\
|
||||||
name);
|
cannot add already read locale `%s' a second time"), name));
|
||||||
else
|
else
|
||||||
runp->categories[locale].generic =
|
runp->categories[locale].generic =
|
||||||
copy_locale->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
|
if ((result->avail & (1 << locale)) == 0
|
||||||
&& locfile_read (result, charmap) != 0)
|
&& locfile_read (result, charmap) != 0)
|
||||||
error (4, errno, _("cannot open locale definition file `%s'"),
|
WITH_CUR_LOCALE (error (4, errno, _("\
|
||||||
result->name);
|
cannot open locale definition file `%s'"), result->name));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -536,8 +541,8 @@ load_locale (int locale, const char *name, const char *repertoire_name,
|
||||||
|
|
||||||
if ((result->avail & (1 << locale)) == 0
|
if ((result->avail & (1 << locale)) == 0
|
||||||
&& locfile_read (result, charmap) != 0)
|
&& locfile_read (result, charmap) != 0)
|
||||||
error (4, errno, _("cannot open locale definition file `%s'"),
|
WITH_CUR_LOCALE (error (4, errno, _("\
|
||||||
result->name);
|
cannot open locale definition file `%s'"), result->name));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
/* Get the basic locale definitions. */
|
/* Get the basic locale definitions. */
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "repertoire.h"
|
#include "repertoire.h"
|
||||||
|
|
||||||
|
|
@ -122,6 +123,19 @@ extern void *xrealloc (void *__p, size_t __n);
|
||||||
extern char *xstrdup (const char *__str);
|
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. */
|
/* Mark given locale as to be read. */
|
||||||
extern struct localedef_t *add_to_readlist (int locale, const char *name,
|
extern struct localedef_t *add_to_readlist (int locale, const char *name,
|
||||||
const char *repertoire_name,
|
const char *repertoire_name,
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
|
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 (fd == -1)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, save_err, _("\
|
WITH_CUR_LOCALE (error (0, save_err, _("\
|
||||||
cannot open output file `%s' for category `%s'"),
|
cannot open output file `%s' for category `%s'"), fname, category));
|
||||||
fname, category);
|
|
||||||
free (fname);
|
free (fname);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -593,8 +592,8 @@ cannot open output file `%s' for category `%s'"),
|
||||||
if (writev (fd, &vec[cnt], step) < 0)
|
if (writev (fd, &vec[cnt], step) < 0)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, errno, _("failure while writing data for category `%s'"),
|
WITH_CUR_LOCALE (error (0, errno, _("\
|
||||||
category);
|
failure while writing data for category `%s'"), category));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -690,9 +689,8 @@ cannot open output file `%s' for category `%s'"),
|
||||||
if (rename (tmp_fname, fname) < 0)
|
if (rename (tmp_fname, fname) < 0)
|
||||||
{
|
{
|
||||||
if (!be_quiet)
|
if (!be_quiet)
|
||||||
error (0, errno, _("\
|
WITH_CUR_LOCALE (error (0, errno, _("\
|
||||||
cannot create output file `%s' for category `%s'"),
|
cannot create output file `%s' for category `%s'"), fname, category));
|
||||||
fname, category);
|
|
||||||
}
|
}
|
||||||
free (tmp_fname);
|
free (tmp_fname);
|
||||||
free (other_fname);
|
free (other_fname);
|
||||||
|
|
|
||||||
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
|
@ -30,11 +30,11 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "localedef.h"
|
||||||
#include "linereader.h"
|
#include "linereader.h"
|
||||||
#include "charmap.h"
|
#include "charmap.h"
|
||||||
#include "repertoire.h"
|
#include "repertoire.h"
|
||||||
#include "simple-hash.h"
|
#include "simple-hash.h"
|
||||||
#include "localedef.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* Simple keyword hashing for the repertoiremap. */
|
/* 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)
|
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);
|
lr_close (repfile);
|
||||||
|
|
||||||
if (tsearch (result, &known, &repertoire_compare) == NULL)
|
if (tsearch (result, &known, &repertoire_compare) == NULL)
|
||||||
/* Something went wrong. */
|
/* Something went wrong. */
|
||||||
error (0, errno, _("cannot safe new repertoire map"));
|
WITH_CUR_LOCALE (error (0, errno, _("cannot safe new repertoire map")));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -339,7 +340,8 @@ repertoire_complain (const char *name)
|
||||||
{
|
{
|
||||||
if (tfind (name, &unavailable, (__compar_fn_t) strcmp) == NULL)
|
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. */
|
/* Remember that we reported this map. */
|
||||||
tsearch (name, &unavailable, (__compar_fn_t) strcmp);
|
tsearch (name, &unavailable, (__compar_fn_t) strcmp);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue