diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-11-20 09:16:41 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-11-20 09:16:41 +0000 |
commit | 17427edd1fc510ae6eb7903cc8664e15500490d6 (patch) | |
tree | 0c0e4922611172e6ab93ee76dd882902eeee7d82 /iconv/gconv_conf.c | |
parent | 1eab136137fe8b27f7c8ef2d4bee4c07c1821be3 (diff) | |
download | glibc-17427edd1fc510ae6eb7903cc8664e15500490d6.tar.gz glibc-17427edd1fc510ae6eb7903cc8664e15500490d6.tar.xz glibc-17427edd1fc510ae6eb7903cc8664e15500490d6.zip |
Update.
2000-11-20 Ulrich Drepper <drepper@redhat.com> * csu/gmon-start.c: Always have prototype for __gmon_start. * csu/version.c: Add prototypes for __libc_print_version and __libc_main. * iconv/gconv.c: Include gconv_int.h and gconv.h. * iconv/gconv.h (struct __gconv_step): Remove const from __from_name and __to_name. * iconv/gconv_builtin.h: Add ASCII module definitions. * iconv/gconv_conf.c (__gconv_path_elem): Remove const. (add_module): Add cast to avoid warning. Rework construction of strings for new module. * iconv/gconv_db.c (__gconv_alias_compare): Make s1 and s2 const. (derivation_compare): Likewise. * iconv/gconv_dl.c (do_release_shlib): Remove const from nodep. (__gconv_release_shlib): Cast do_release_shlib as parameter for twalk. * iconv/gconv_int.h (__gconv_path_elem): Remove const. (struct gconv_alias): Remove const from fromname and toname. * iconv/gconv_simple.c: Include gconv_builtin.h to get prototypes for loop functions. (internal_ucs4_loop): Use correct const-ness. (ucs4_internal_loop): Likewise. (internal_ucs4le_loop): Likewise. (ucs4le_internal_loop_single): Likewise. * iconv/gconv_trans.c (__gconv_transliterate): Make from_idx, from_tbl, to_idx, to_tbl, winbuf, winbufend const. Change casts in assignments appropriately. (struct known_trans): Remove const from fname. (trans_compare): Make s1 and s2 const. * iconv/loop.c (LOOPFC): Make outend parameter const. Add cast to avoid warning. * iconv/skeleton.c: Remove cast in calls of loop functions. * iconvdata/gconv-modules: Remove US-ASCII definitions. * iconvdata/iso646.c: Remove US_ASCII support. * include/set-hooks.h (DEFINE_HOOK): Also generate prototype. * include/unistd.h: Add __libc_check_standard_fds prototype. * string/bits/string2.h (__mempcpy_args): Add const to casts. * sysdeps/generic/initfini.c: Add prototypes for dummy, _init, and _fini. * sysdeps/generic/libc-start.c: Add prototype for __libc_start_main. * sysdeps/i386/i486/bits/string.h (strcmp): Add const to casts. * sysdeps/unix/sysv/linux/dl-osinfo.h (dl_fatal): Add cast to avoid warning. * sysdeps/unix/sysv/linux/init-first.c: Add prototypes for __libc_init_first and _dl_start. * sysdeps/unix/sysv/linux/mips/clone.S: Fix comments.
Diffstat (limited to 'iconv/gconv_conf.c')
-rw-r--r-- | iconv/gconv_conf.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c index 57c832d6a9..a9b458130a 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -23,6 +23,7 @@ #include <errno.h> #include <limits.h> #include <search.h> +#include <stddef.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -38,7 +39,7 @@ static const char default_gconv_path[] = GCONV_PATH; /* The path elements, as determined by the __gconv_get_path function. All path elements end in a slash. */ -const struct path_elem *__gconv_path_elem; +struct path_elem *__gconv_path_elem; /* Maximum length of a single path element in __gconv_path_elem. */ size_t __gconv_max_path_elem_len; @@ -283,7 +284,7 @@ add_module (char *rp, const char *directory, size_t dir_len, void **modules, /* See whether we must add the ending. */ need_ext = 0; - if (wp - module < sizeof (gconv_module_ext) + if (wp - module < (ptrdiff_t) sizeof (gconv_module_ext) || memcmp (wp - sizeof (gconv_module_ext), gconv_module_ext, sizeof (gconv_module_ext)) != 0) /* We must add the module extension. */ @@ -304,23 +305,19 @@ add_module (char *rp, const char *directory, size_t dir_len, void **modules, { char *tmp; - new_module->from_string = memcpy ((char *) new_module - + sizeof (struct gconv_module), - from, to - from); + new_module->from_string = tmp = (char *) (new_module + 1); + tmp = __mempcpy (tmp, from, to - from); - new_module->to_string = memcpy ((char *) new_module->from_string - + (to - from), to, module - to); + new_module->to_string = tmp; + tmp = __mempcpy (tmp, to, module - to); new_module->cost_hi = cost_hi; new_module->cost_lo = modcounter; - new_module->module_name = (char *) new_module->to_string + (module - to); + new_module->module_name = tmp; - if (dir_len == 0) - tmp = (char *) new_module->module_name; - else - tmp = __mempcpy ((char *) new_module->module_name, - directory, dir_len); + if (dir_len != 0) + tmp = __mempcpy (tmp, directory, dir_len); tmp = __mempcpy (tmp, module, wp - module); |