diff options
| -rw-r--r-- | ChangeLog | 30 | ||||
| -rw-r--r-- | inet/getnetgrent_r.c | 6 | ||||
| -rw-r--r-- | locale/programs/charmap-dir.c | 10 | ||||
| -rw-r--r-- | locale/programs/charmap.c | 26 | ||||
| -rw-r--r-- | locale/programs/ld-address.c | 87 | ||||
| -rw-r--r-- | locale/programs/ld-collate.c | 56 | ||||
| -rw-r--r-- | locale/programs/ld-ctype.c | 230 | ||||
| -rw-r--r-- | locale/programs/ld-identification.c | 16 | ||||
| -rw-r--r-- | locale/programs/ld-measurement.c | 15 | ||||
| -rw-r--r-- | locale/programs/ld-messages.c | 30 | ||||
| -rw-r--r-- | locale/programs/ld-monetary.c | 44 | ||||
| -rw-r--r-- | locale/programs/ld-name.c | 21 | ||||
| -rw-r--r-- | locale/programs/ld-numeric.c | 19 | ||||
| -rw-r--r-- | locale/programs/ld-paper.c | 12 | ||||
| -rw-r--r-- | locale/programs/ld-telephone.c | 27 | ||||
| -rw-r--r-- | locale/programs/ld-time.c | 101 | ||||
| -rw-r--r-- | locale/programs/linereader.c | 10 | ||||
| -rw-r--r-- | locale/programs/linereader.h | 4 | ||||
| -rw-r--r-- | locale/programs/localedef.c | 35 | ||||
| -rw-r--r-- | locale/programs/localedef.h | 14 | ||||
| -rw-r--r-- | locale/programs/locfile.c | 16 | ||||
| -rw-r--r-- | locale/programs/repertoire.c | 12 |
22 files changed, 453 insertions, 368 deletions
@@ -1,5 +1,35 @@ 2002-02-05 Ulrich Drepper <drepper@redhat.com> + * inet/getnetgrent_r.c (innetgr): Add int* parameter to getfct + definition and pass &errno in use of this variable. + Reported by Simon Wilkinson <simon@sxw.org.uk> [PR libc/2911]. + +2002-02-04 Andreas Schwab <schwab@suse.de> + + * locale/programs/localedef.h (WITH_CUR_LOCALE): Define. + * locale/programs/charmap-dir.c: Wrap calls that output messages + with WITH_CUR_LOCALE. Include "localedef.h" first. + * locale/programs/charmap.c: Likewise. + * locale/programs/ld-address.c: Likewise. + * locale/programs/ld-collate.c: Likewise. + * locale/programs/ld-ctype.c: Likewise. + * locale/programs/ld-identification.c: Likewise. + * locale/programs/ld-measurement.c: Likewise. + * locale/programs/ld-messages.c: Likewise. + * locale/programs/ld-monetary.c: Likewise. + * locale/programs/ld-name.c: Likewise. + * locale/programs/ld-numeric.c: Likewise. + * locale/programs/ld-paper.c: Likewise. + * locale/programs/ld-telephone.c: Likewise. + * locale/programs/ld-time.c: Likewise. + * locale/programs/linereader.c: Likewise. + * locale/programs/linereader.h: Likewise. + * locale/programs/localedef.c: Likewise. + * locale/programs/locfile.c: Likewise. + * locale/programs/repertoire.c: Likewise. + +2002-02-05 Ulrich Drepper <drepper@redhat.com> + * elf/rtld.c (_dl_start_final): Determine load address to locate ehdr with GL(dl_rtld_map).l_map_start. diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c index 4c3a1cadfe..ba1019c1f8 100644 --- a/inet/getnetgrent_r.c +++ b/inet/getnetgrent_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -298,7 +298,7 @@ innetgr (const char *netgroup, const char *host, const char *user, { int (*setfct) (const char *, struct __netgrent *); void (*endfct) (struct __netgrent *); - int (*getfct) (struct __netgrent *, char *, size_t); + int (*getfct) (struct __netgrent *, char *, size_t, int *); struct name_list *known = NULL; struct name_list *needed = NULL; int result = 0; @@ -328,7 +328,7 @@ innetgr (const char *netgroup, const char *host, const char *user, { char buffer[1024]; - while ((*getfct) (&entry, buffer, sizeof buffer) + while ((*getfct) (&entry, buffer, sizeof buffer, &errno) == NSS_STATUS_SUCCESS) { if (entry.type == group_val) diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c index 14cf765632..a7a453552b 100644 --- a/locale/programs/charmap-dir.c +++ b/locale/programs/charmap-dir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000,2001 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -28,11 +28,9 @@ #include <unistd.h> #include <sys/stat.h> +#include "localedef.h" #include "charmap-dir.h" -extern void *xmalloc (size_t n); -extern void *xrealloc (void *p, size_t n); - /* The data type of a charmap directory being traversed. */ struct charmap_dir { @@ -58,8 +56,8 @@ charmap_opendir (const char *directory) dir = opendir (directory); if (dir == NULL) { - error (1, errno, gettext ("cannot read character map directory `%s'"), - directory); + WITH_CUR_LOCALE (error (1, errno, gettext ("\ +cannot read character map directory `%s'"), directory)); return NULL; } diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c index 815a28d419..ee755ba50a 100644 --- a/locale/programs/charmap.c +++ b/locale/programs/charmap.c @@ -29,8 +29,9 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <error.h> -#include "error.h" +#include "localedef.h" #include "linereader.h" #include "charmap.h" #include "charmap-dir.h" @@ -43,8 +44,6 @@ #include "charmap-kw.h" -extern void *xmalloc (size_t __n); - /* Prototypes for local functions. */ static struct charmap_t *parse_charmap (struct linereader *cmfile, int verbose, int be_quiet); @@ -133,7 +132,8 @@ charmap_read (const char *filename, int verbose, int be_quiet, int use_default) result = parse_charmap (cmfile, verbose, be_quiet); if (result == NULL && !be_quiet) - error (0, errno, _("character map file `%s' not found"), filename); + WITH_CUR_LOCALE (error (0, errno, _("\ +character map file `%s' not found"), filename)); } } @@ -190,8 +190,8 @@ charmap_read (const char *filename, int verbose, int be_quiet, int use_default) result = parse_charmap (cmfile, verbose, be_quiet); if (result == NULL) - error (4, errno, _("default character map file `%s' not found"), - DEFAULT_CHARMAP); + WITH_CUR_LOCALE (error (4, errno, _("\ +default character map file `%s' not found"), DEFAULT_CHARMAP)); } /* Test of ASCII compatibility of locale encoding. @@ -247,9 +247,9 @@ charmap_read (const char *filename, int verbose, int be_quiet, int use_default) while (*p++ != '\0'); if (failed) - fprintf (stderr, _("\ + WITH_CUR_LOCALE (fprintf (stderr, _("\ character map `%s' is not ASCII compatible, locale not ISO C compliant\n"), - result->code_set_name); + result->code_set_name)); } return result; @@ -324,9 +324,9 @@ parse_charmap (struct linereader *cmfile, int verbose, int be_quiet) if (result->mb_cur_min > result->mb_cur_max) { if (!be_quiet) - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: <mb_cur_max> must be greater than <mb_cur_min>\n"), - cmfile->fname); + cmfile->fname)); result->mb_cur_min = result->mb_cur_max; } @@ -829,14 +829,16 @@ only WIDTH definitions are allowed to follow the CHARMAP definition")); continue; default: - error (5, 0, _("%s: error in state machine"), __FILE__); + WITH_CUR_LOCALE (error (5, 0, _("%s: error in state machine"), + __FILE__)); /* NOTREACHED */ } break; } if (state != 91 && !be_quiet) - error (0, 0, _("%s: premature end of file"), cmfile->fname); + WITH_CUR_LOCALE (error (0, 0, _("%s: premature end of file"), + cmfile->fname)); lr_close (cmfile); diff --git a/locale/programs/ld-address.c b/locale/programs/ld-address.c index adf6bbeb28..52b91cfc28 100644 --- a/locale/programs/ld-address.c +++ b/locale/programs/ld-address.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -29,6 +29,7 @@ #include <assert.h> +#include "localedef.h" #include "localeinfo.h" #include "locfile.h" @@ -128,8 +129,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) if (address == NULL) { if (! be_quiet) - error (0, 0, _("No definition for %s category found"), - "LC_ADDRESS"); + WITH_CUR_LOCALE (error (0, 0, _("\ +No definition for %s category found"), "LC_ADDRESS")); address_startup (NULL, locale, 0); address = locale->categories[LC_ADDRESS].address; nothing = 1; @@ -139,8 +140,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) if (address->postal_fmt == NULL) { if (! nothing) - error (0, 0, _("%s: field `%s' not defined"), - "LC_ADDRESS", "postal_fmt"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), + "LC_ADDRESS", "postal_fmt")); /* Use as the default value the value of the i18n locale. */ address->postal_fmt = "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"; } @@ -151,8 +152,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) const char *cp = address->postal_fmt; if (*cp == '\0') - error (0, 0, _("%s: field `%s' must not be empty"), - "LC_ADDRESS", "postal_fmt"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"), + "LC_ADDRESS", "postal_fmt")); else while (*cp != '\0') { @@ -163,9 +164,9 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) ++cp; if (strchr ("afdbshNtreCzTSc%", *cp) == NULL) { - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: invalid escape `%%%c' sequence in field `%s'"), - "LC_ADDRESS", *cp, "postal_fmt"); + "LC_ADDRESS", *cp, "postal_fmt")); break; } } @@ -177,7 +178,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) if (address->cat == NULL) \ { \ if (verbose && ! nothing) \ - error (0, 0, _("%s: field `%s' not defined"), "LC_ADDRESS", #cat); \ + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), \ + "LC_ADDRESS", #cat)); \ address->cat = ""; \ } @@ -194,16 +196,16 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) if (address->lang_term == NULL) { if (verbose && ! nothing) - error (0, 0, _("%s: field `%s' not defined"), "LC_ADDRESS", - "lang_term"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), + "LC_ADDRESS", "lang_term")); address->lang_term = ""; cnt = sizeof (iso639) / sizeof (iso639[0]); } else if (address->lang_term[0] == '\0') { if (verbose) - error (0, 0, _("%s: field `%s' must not be empty"), - "LC_ADDRESS", "lang_term"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"), + "LC_ADDRESS", "lang_term")); cnt = sizeof (iso639) / sizeof (iso639[0]); } else @@ -213,22 +215,23 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) if (strcmp (address->lang_term, iso639[cnt].term) == 0) break; if (cnt == sizeof (iso639) / sizeof (iso639[0])) - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: terminology language code `%s' not defined"), - "LC_ADDRESS", address->lang_term); + "LC_ADDRESS", address->lang_term)); } if (address->lang_ab == NULL) { if (verbose && ! nothing) - error (0, 0, _("%s: field `%s' not defined"), "LC_ADDRESS", "lang_ab"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), + "LC_ADDRESS", "lang_ab")); address->lang_ab = ""; } else if (address->lang_ab[0] == '\0') { if (verbose) - error (0, 0, _("%s: field `%s' must not be empty"), - "LC_ADDRESS", "lang_ab"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"), + "LC_ADDRESS", "lang_ab")); } else { @@ -239,15 +242,15 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) if (strcmp (address->lang_ab, iso639[cnt].ab) == 0) break; if (cnt == sizeof (iso639) / sizeof (iso639[0])) - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: language abbreviation `%s' not defined"), - "LC_ADDRESS", address->lang_ab); + "LC_ADDRESS", address->lang_ab)); } else if (strcmp (iso639[cnt].ab, address->lang_ab) != 0) - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: `%s' value does not match `%s' value"), - "LC_ADDRESS", "lang_ab", "lang_term"); + "LC_ADDRESS", "lang_ab", "lang_term")); } if (address->lang_lib == NULL) @@ -256,8 +259,8 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) else if (address->lang_lib[0] == '\0') { if (verbose) - error (0, 0, _("%s: field `%s' must not be empty"), - "LC_ADDRESS", "lang_lib"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"), + "LC_ADDRESS", "lang_lib")); } else { @@ -267,22 +270,22 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) if (strcmp (address->lang_lib, iso639[cnt].lib) == 0) break; if (cnt == sizeof (iso639) / sizeof (iso639[0])) - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: language abbreviation `%s' not defined"), - "LC_ADDRESS", address->lang_lib); + "LC_ADDRESS", address->lang_lib)); } else if (strcmp (iso639[cnt].ab, address->lang_ab) != 0) - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: `%s' value does not match `%s' value"), "LC_ADDRESS", "lang_lib", - helper == 1 ? "lang_term" : "lang_ab"); + helper == 1 ? "lang_term" : "lang_ab")); } if (address->country_num == 0) { if (verbose && ! nothing) - error (0, 0, _("%s: field `%s' not defined"), - "LC_ADDRESS", "country_num"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), + "LC_ADDRESS", "country_num")); cnt = sizeof (iso3166) / sizeof (iso3166[0]); } else @@ -292,34 +295,36 @@ address_finish (struct localedef_t *locale, const struct charmap_t *charmap) break; if (cnt == sizeof (iso3166) / sizeof (iso3166[0])) - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: numeric country code `%d' not valid"), - "LC_ADDRESS", address->country_num); + "LC_ADDRESS", address->country_num)); } if (address->country_ab2 == NULL) { if (verbose && ! nothing) - error (0, 0, _("%s: field `%s' not defined"), - "LC_ADDRESS", "country_ab2"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), + "LC_ADDRESS", "country_ab2")); address->country_ab2 = " "; } else if (cnt != sizeof (iso3166) / sizeof (iso3166[0]) && strcmp (address->country_ab2, iso3166[cnt].ab2) != 0) - error (0, 0, _("%s: `%s' value does not match `%s' value"), - "LC_ADDRESS", "country_ab2", "country_num"); + WITH_CUR_LOCALE (error (0, 0, + _("%s: `%s' value does not match `%s' value"), + "LC_ADDRESS", "country_ab2", "country_num")); if (address->country_ab3 == NULL) { if (verbose && ! nothing) - error (0, 0, _("%s: field `%s' not defined"), - "LC_ADDRESS", "country_ab3"); + WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"), + "LC_ADDRESS", "country_ab3")); address->country_ab3 = " "; } else if (cnt != sizeof (iso3166) / sizeof (iso3166[0]) && strcmp (address->country_ab3, iso3166[cnt].ab3) != 0) - error (0, 0, _("%s: `%s' value does not match `%s' value"), - "LC_ADDRESS", "country_ab3", "country_num"); + WITH_CUR_LOCALE (error (0, 0, _("\ +%s: `%s' value does not match `%s' value"), + "LC_ADDRESS", "country_ab3", "country_num")); } diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 0da1261bd8..b9ea186d31 100644 --- a/locale/programs/ld-collate.c +++ b/locale/programs/ld-collate.c @@ -27,11 +27,11 @@ #include <wchar.h> #include <sys/param.h> +#include "localedef.h" #include "charmap.h" #include "localeinfo.h" #include "linereader.h" #include "locfile.h" -#include "localedef.h" #include "elem-hash.h" /* Uncomment the following line in the production version. */ @@ -1516,7 +1516,8 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap) { /* No data, no check. */ if (! be_quiet) - error (0, 0, _("No definition for %s category found"), "LC_COLLATE"); + WITH_CUR_LOCALE (error (0, 0, _("No definition for %s category found"), + "LC_COLLATE")); return; } @@ -1531,9 +1532,9 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap) && ((sect->rules[i] & sort_position) != (collate->sections->rules[i] & sort_position))) { - error (0, 0, _("\ + WITH_CUR_LOCALE (error (0, 0, _("\ %s: `position' must be used for a specific level in all sections or none"), - "LC_COLLATE"); + "LC_COLLATE")); break; } @@ -1554,9 +1555,10 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap) { if (runp->weights[i].w[j]->weights == NULL) { - error_at_line (0, 0, runp->file, runp->line, - _("symbol `%s' not defined"), - runp->weights[i].w[j]->name); + WITH_CUR_LOCALE (error_at_line (0, 0, runp->file, + runp->line, + _("symbol `%s' not defined"), + runp->weights[i].w[j]->name)); need_undefined = 1; runp->weights[i].w[j] = &collate->undefined; @@ -1629,11 +1631,14 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap) /* This should not happen. It means that we have to symbols with the same byte sequence. It is of course an error. */ - error_at_line (0, 0, (*eptr)->file, (*eptr)->line, - _("symbol `%s' has the same encoding as"), - (*eptr)->name); - error_at_line (0, 0, runp->file, runp->line, - _("symbol `%s'"), runp->name); + WITH_CUR_LOCALE (error_at_line (0, 0, (*eptr)->file, + (*eptr)->line, + _("\ +symbol `%s' has the same encoding as"), (*eptr)->name); + error_at_line (0, 0, runp->file, + runp->line, + _("symbol `%s'"), + runp->name)); goto dont_insert; } else if (c < 0) @@ -1732,11 +1737,14 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap) /* This should not happen. It means that we have two symbols with the same byte sequence. It is of course an error. */ - error_at_line (0, 0, (*eptr)->file, (*eptr)->line, - _("symbol `%s' has the same encoding as"), - (*eptr)->name); - error_at_line (0, 0, runp->file, runp->line, - _("symbol `%s'"), runp->name); + WITH_CUR_LOCALE (error_at_line (0, 0, (*eptr)->file, + (*eptr)->line, + _("\ +symbol `%s' has the same encoding as"), (*eptr)->name); + error_at_line (0, 0, runp->file, + runp->line, + _("symbol `%s'"), + runp->name)); goto dont_insertwc; } else if (c < 0) @@ -1777,7 +1785,7 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap) /* This seems not to be enforced by recent standards. Don't emit an error, simply append UNDEFINED at the end. */ if (0) - error (0, 0, _("no definition of `UNDEFINED'")); + WITH_CUR_LOCALE (error (0, 0, _("no definition of `UNDEFINED'"))); /* Add UNDEFINED at the end. */ collate->undefined.mborder = @@ -3389,8 +3397,8 @@ error while adding equivalent collating symbol")); } else if (state == 3) { - error (0, 0, _("%s: missing `reorder-end' keyword"), - "LC_COLLATE"); + WITH_CUR_LOCALE (error (0, 0, _("\ +%s: missing `reorder-end' keyword"), "LC_COLLATE")); state = 4; } else if (state != 2 && state != 4) @@ -3739,11 +3747,11 @@ error while adding equivalent coll |
