aboutsummaryrefslogtreecommitdiff
path: root/iconv/gconv_conf.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-11-20 09:16:41 +0000
committerUlrich Drepper <drepper@redhat.com>2000-11-20 09:16:41 +0000
commit17427edd1fc510ae6eb7903cc8664e15500490d6 (patch)
tree0c0e4922611172e6ab93ee76dd882902eeee7d82 /iconv/gconv_conf.c
parent1eab136137fe8b27f7c8ef2d4bee4c07c1821be3 (diff)
downloadglibc-17427edd1fc510ae6eb7903cc8664e15500490d6.tar
glibc-17427edd1fc510ae6eb7903cc8664e15500490d6.tar.gz
glibc-17427edd1fc510ae6eb7903cc8664e15500490d6.tar.bz2
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.c23
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);