aboutsummaryrefslogtreecommitdiff
path: root/wcsmbs/wcsmbsload.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-08-29 06:50:10 +0000
committerUlrich Drepper <drepper@redhat.com>2002-08-29 06:50:10 +0000
commit01beb5b9ff8fb38f6517837b42eea8f5ff7060d9 (patch)
tree5c1b871d23c7d13cf5f6cdcbccb13c1ca281e09c /wcsmbs/wcsmbsload.c
parent653e58951271cf55a3b2d778ea02107b9ea44d78 (diff)
downloadglibc-01beb5b9ff8fb38f6517837b42eea8f5ff7060d9.zip
glibc-01beb5b9ff8fb38f6517837b42eea8f5ff7060d9.tar.gz
glibc-01beb5b9ff8fb38f6517837b42eea8f5ff7060d9.tar.bz2
Update.
2002-08-28 Ulrich Drepper <drepper@redhat.com> * include/wchar.h: Declare __mbsrtowcs_l. * wcsmbs/Makefile (routines): Add mbsrtowcs_l. * wcsmbs/mbsrtowcs.c: Add support for compilation with USE_IN_EXTENDED_LOCALE_MODEL. * wcsmbs/mbsrtowcs_l: New file. * wcsmbs/wcsmbsload.c (__wcsmbs_to_wc): Renamed from to_wc. Don't define as static. Change all uses. (__wcsmbs_getfct): Renamed from getfct. Don't define as static. Change all callers. * wcsmbs/wcsmbsload.h: Declare __wcsmbs_to_wc and __wcsmbs_getfct. * time/strftime.c: When translating for the extended locale model use the _l functions. * time/Makefile (tests): Add tst-ftime_l. * time/tst-ftime_l.c: New file.
Diffstat (limited to 'wcsmbs/wcsmbsload.c')
-rw-r--r--wcsmbs/wcsmbsload.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/wcsmbs/wcsmbsload.c b/wcsmbs/wcsmbsload.c
index c096804..fc846c7 100644
--- a/wcsmbs/wcsmbsload.c
+++ b/wcsmbs/wcsmbsload.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.
@@ -26,7 +26,6 @@
#include <locale/localeinfo.h>
#include <wcsmbsload.h>
#include <bits/libc-lock.h>
-#include <iconv/gconv_int.h>
/* Last loaded locale for LC_CTYPE. We initialize for the C locale
@@ -36,7 +35,7 @@ const struct locale_data *__wcsmbs_last_locale = &_nl_C_LC_CTYPE;
/* These are the descriptions for the default conversion functions. */
-static struct __gconv_step to_wc =
+struct __gconv_step __wcsmbs_to_wc attribute_hidden =
{
.__shlib_handle = NULL,
.__modname = NULL,
@@ -76,15 +75,16 @@ static struct __gconv_step to_mb =
/* For the default locale we only have to handle ANSI_X3.4-1968. */
struct gconv_fcts __wcsmbs_gconv_fcts =
{
- .towc = &to_wc,
+ .towc = &__wcsmbs_to_wc,
.towc_nsteps = 1,
.tomb = &to_mb,
.tomb_nsteps = 1
};
-static inline struct __gconv_step *
-getfct (const char *to, const char *from, size_t *nstepsp)
+struct __gconv_step *
+attribute_hidden
+__wcsmbs_getfct (const char *to, const char *from, size_t *nstepsp)
{
size_t nsteps;
struct __gconv_step *result;
@@ -167,7 +167,7 @@ __wcsmbs_load_conv (const struct locale_data *new_category)
if (new_category->name == _nl_C_name) /* Yes, pointer comparison. */
{
failed:
- __wcsmbs_gconv_fcts.towc = &to_wc;
+ __wcsmbs_gconv_fcts.towc = &__wcsmbs_to_wc;
__wcsmbs_gconv_fcts.tomb = &to_mb;
}
else
@@ -185,7 +185,7 @@ __wcsmbs_load_conv (const struct locale_data *new_category)
if (__wcsmbs_gconv_fcts.tomb != &to_mb)
__gconv_close_transform (__wcsmbs_gconv_fcts.tomb,
__wcsmbs_gconv_fcts.tomb_nsteps);
- if (__wcsmbs_gconv_fcts.towc != &to_wc)
+ if (__wcsmbs_gconv_fcts.towc != &__wcsmbs_to_wc)
__gconv_close_transform (__wcsmbs_gconv_fcts.towc,
__wcsmbs_gconv_fcts.towc_nsteps);
@@ -203,9 +203,11 @@ __wcsmbs_load_conv (const struct locale_data *new_category)
/* It is not necessary to use transliteration in this direction
since the internal character set is supposed to be able to
represent all others. */
- new_towc = getfct ("INTERNAL", complete_name, &new_towc_nsteps);
+ new_towc = __wcsmbs_getfct ("INTERNAL", complete_name,
+ &new_towc_nsteps);
new_tomb = (new_towc != NULL
- ? getfct (complete_name, "INTERNAL", &new_tomb_nsteps)
+ ? __wcsmbs_getfct (complete_name, "INTERNAL",
+ &new_tomb_nsteps)
: NULL);
/* If any of the conversion functions is not available we don't
@@ -262,10 +264,10 @@ int
internal_function
__wcsmbs_named_conv (struct gconv_fcts *copy, const char *name)
{
- copy->towc = getfct ("INTERNAL", name, &copy->towc_nsteps);
+ copy->towc = __wcsmbs_getfct ("INTERNAL", name, &copy->towc_nsteps);
if (copy->towc != NULL)
{
- copy->tomb = getfct (name, "INTERNAL", &copy->tomb_nsteps);
+ copy->tomb = __wcsmbs_getfct (name, "INTERNAL", &copy->tomb_nsteps);
if (copy->tomb == NULL)
__gconv_close_transform (copy->towc, copy->towc_nsteps);
}
@@ -287,11 +289,11 @@ free_mem (void)
__gconv_release_cache (old, nold);
}
- if (__wcsmbs_gconv_fcts.towc != &to_wc)
+ if (__wcsmbs_gconv_fcts.towc != &__wcsmbs_to_wc)
{
struct __gconv_step *old = __wcsmbs_gconv_fcts.towc;
size_t nold = __wcsmbs_gconv_fcts.towc_nsteps;
- __wcsmbs_gconv_fcts.towc = &to_wc;
+ __wcsmbs_gconv_fcts.towc = &__wcsmbs_to_wc;
__wcsmbs_gconv_fcts.towc_nsteps = 1;
__gconv_release_cache (old, nold);
}