diff options
Diffstat (limited to 'iconv')
-rw-r--r-- | iconv/gconv_cache.c | 15 | ||||
-rw-r--r-- | iconv/gconv_conf.c | 4 | ||||
-rw-r--r-- | iconv/gconv_open.c | 5 |
3 files changed, 18 insertions, 6 deletions
diff --git a/iconv/gconv_cache.c b/iconv/gconv_cache.c index 9b695c377d..9a8a20816c 100644 --- a/iconv/gconv_cache.c +++ b/iconv/gconv_cache.c @@ -1,5 +1,5 @@ /* Cache handling for iconv modules. - Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001. @@ -209,7 +209,18 @@ find_module (const char *directory, const char *filename, /* Call the init function. */ if (result->__init_fct != NULL) - status = DL_CALL_FCT (result->__init_fct, (result)); + { + __gconv_init_fct init_fct = result->__init_fct; +#ifdef PTR_DEMANGLE + PTR_DEMANGLE (init_fct); +#endif + status = DL_CALL_FCT (init_fct, (result)); + +#ifdef PTR_MANGLE + if (result->__btowc_fct != NULL) + PTR_MANGLE (result->__btowc_fct); +#endif + } } return status; diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c index 858d40998b..37179518ba 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -1,5 +1,5 @@ /* Handle configuration data. - Copyright (C) 1997,98,99,2000,2001,2002,2003 Free Software Foundation, Inc. + Copyright (C) 1997-2003, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -78,7 +78,7 @@ static struct gconv_module builtin_modules[] = #undef BUILTIN_ALIAS }; -static const char *builtin_aliases[] = +static const char *const builtin_aliases[] = { #define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, BtowcFct, \ MinF, MaxF, MinT, MaxT) diff --git a/iconv/gconv_open.c b/iconv/gconv_open.c index b23ab44e4e..95f3203394 100644 --- a/iconv/gconv_open.c +++ b/iconv/gconv_open.c @@ -71,7 +71,8 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle, { /* It's the builtin transliteration handling. We only support it for working on the internal encoding. */ - static const char *internal_trans_names[1] = { "INTERNAL" }; + static const char *const internal_trans_names[1] + = { "INTERNAL" }; struct trans_struct *lastp = NULL; struct trans_struct *runp; @@ -90,7 +91,7 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle, /* We leave the `name' field zero to signal that this is an internal transliteration step. */ - newp->csnames = internal_trans_names; + newp->csnames = (const char **) internal_trans_names; newp->ncsnames = 1; newp->trans_fct = __gconv_transliterate; |