diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-07-17 22:09:30 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-07-17 22:09:30 +0000 |
commit | 8114530a31e03aec4085f79971c2a3b9e940eae3 (patch) | |
tree | b0b003fab3e4416cb3c35281827a377365a04e34 /iconv/gconv_open.c | |
parent | 7f53da19c11c141d4d4d24417b3a72bbaf755d2c (diff) | |
download | glibc-8114530a31e03aec4085f79971c2a3b9e940eae3.tar.gz |
Update.
2000-07-17 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Initialize the __data
field of struct __gconv_trans_data differently. Don't pass NULL to
trans_init_fct. Simplify list append operation.
2000-07-14 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (dcigettext): Call plural_eval on all platforms,
not only those having tsearch.
2000-07-17 Ulrich Drepper <drepper@redhat.com>
* locale/langinfo.h: Add placeholder values in enum for removed
LC_CTYPE entries.
2000-07-17 Jakub Jelinek <jakub@redhat.com>
* elf/dl-addr.c (_dl_addr): Keep searching in the _dl_loaded
chain if the PHDR check fails.
2000-07-17 Mark Kettenis <kettenis@gnu.org>
* nss/getent.c (print_hosts): Make sure we always print a space
between numeric addresses and hostnames.
2000-07-17 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c (chunk_alloc): Use mmap_chunk() only if allowed,
i.e. if n_mmaps_max>0.
2000-07-16 Mark Kettenis <kettenis@gnu.org>
* resolv/netdb.h (AI_V4MAPPED, AI_ALL, AI_ADDRCONFIG): Adjust
values to remove possible clash with other AI_* constants.
(AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST): Define as
hexadecimal constants to stress the fact they're in fact
bit flags.
2000-07-15 Mark Kettenis <kettenis@gnu.org>
* nss/getXXent_r.c [NEED__RES]: Include <resolv.h>.
(SETFUNC_NAME, ENDFUNC_NAME, REENTRANT_GETNAME): Use res_ninit
instead of res_init.
Diffstat (limited to 'iconv/gconv_open.c')
-rw-r--r-- | iconv/gconv_open.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/iconv/gconv_open.c b/iconv/gconv_open.c index bbe732c88a..842bf73566 100644 --- a/iconv/gconv_open.c +++ b/iconv/gconv_open.c @@ -212,13 +212,13 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle, /* Match! Now try the initializer. */ if (runp->trans_init_fct == NULL - || (runp->trans_init_fct (data, steps[cnt].__to_name) + || (runp->trans_init_fct (&data, + steps[cnt].__to_name) == __GCONV_OK)) { /* Append at the end of the list. */ struct __gconv_trans_data *newp; - struct __gconv_trans_data *endp; - struct __gconv_trans_data *lastp; + struct __gconv_trans_data **lastp; newp = (struct __gconv_trans_data *) malloc (sizeof (struct __gconv_trans_data)); @@ -228,18 +228,14 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle, newp->__trans_fct = runp->trans_fct; newp->__trans_context_fct = runp->trans_context_fct; newp->__trans_end_fct = runp->trans_end_fct; - newp->__data = NULL; + newp->__data = data; newp->__next = NULL; - lastp = NULL; - for (endp = result->__data[cnt].__trans; - endp != NULL; endp = endp->__next) - lastp = endp; + lastp = &result->__data[cnt].__trans; + while (*lastp != NULL) + lastp = &(*lastp)->__next; - if (lastp == NULL) - result->__data[cnt].__trans = newp; - else - lastp->__next = newp; + *lastp = newp; } break; } |