From 1911b455dc562a3b6d6ae71a2517097044f98f5e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 27 Dec 2005 15:06:33 +0000 Subject: [PATCH] * iconv/gconv_trans.c (__gconv_transliterate): Demangle step __fct before calling it. 2005-12-27 David S. Miller * sysdeps/unix/sysv/linux/sparc/Versions: Add new errlist-compat entry for up to 134 errnos. --- ChangeLog | 10 ++++++++++ iconv/gconv_trans.c | 10 ++++++++-- sysdeps/unix/sysv/linux/sparc/Versions | 7 +++++-- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 36091ff..321172a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-12-27 Jakub Jelinek + + * iconv/gconv_trans.c (__gconv_transliterate): Demangle step __fct + before calling it. + +2005-12-27 David S. Miller + + * sysdeps/unix/sysv/linux/sparc/Versions: Add new errlist-compat + entry for up to 134 errnos. + 2005-12-26 Ulrich Drepper * Versions.def: Add GLIBC_2.4 for libpthread. diff --git a/iconv/gconv_trans.c b/iconv/gconv_trans.c index e54c184..9e04e64 100644 --- a/iconv/gconv_trans.c +++ b/iconv/gconv_trans.c @@ -54,6 +54,12 @@ __gconv_transliterate (struct __gconv_step *step, winbuf = (const uint32_t *) *inbufp; winbufend = (const uint32_t *) inbufend; + __gconv_fct fct = step->__fct; +#ifdef PTR_DEMANGLE + if (step->__shlib_handle != NULL) + PTR_DEMANGLE (fct); +#endif + /* If there is no transliteration information in the locale don't do anything and return the error. */ size = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_TRANSLIT_TAB_SIZE); @@ -119,7 +125,7 @@ __gconv_transliterate (struct __gconv_step *step, /* Try this input text. */ toinptr = (const unsigned char *) &to_tbl[idx2]; outptr = *outbufstart; - res = DL_CALL_FCT (step->__fct, + res = DL_CALL_FCT (fct, (step, step_data, &toinptr, (const unsigned char *) &to_tbl[idx2 + len], &outptr, NULL, 0, 0)); @@ -204,7 +210,7 @@ __gconv_transliterate (struct __gconv_step *step, ? __GCONV_EMPTY_INPUT : __GCONV_INCOMPLETE_INPUT); outptr = *outbufstart; - res = DL_CALL_FCT (step->__fct, + res = DL_CALL_FCT (fct, (step, step_data, &toinptr, (const unsigned char *) (default_missing + len), &outptr, NULL, 0, 0)); diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions index 03d1d87..be3d2b9 100644 --- a/sysdeps/unix/sysv/linux/sparc/Versions +++ b/sysdeps/unix/sysv/linux/sparc/Versions @@ -1,8 +1,7 @@ libc { # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk. # When you get an error from errlist-compat.awk, you need to add a new - # version here. Don't do this blindly, since this means changing the ABI - # for all GNU/Linux configurations. + # version here. GLIBC_2.0 { #errlist-compat 127 @@ -16,6 +15,10 @@ libc { #errlist-compat 128 _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; } + GLIBC_2.4 { + #errlist-compat 134 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } } librt { GLIBC_2.3 { -- 2.7.4