about summary refs log tree commit diff
path: root/iconv/gconv_int.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-01-18 23:15:16 +0000
committerUlrich Drepper <drepper@redhat.com>1999-01-18 23:15:16 +0000
commit2bd608801708e2fa3d0e39f1220604a81a036a78 (patch)
tree8e941c6a4cd4d12302fcaa0a78dd1c6a88dad16f /iconv/gconv_int.h
parent464d646f3e667e42742a995b841080ec7b6a1540 (diff)
downloadglibc-2bd608801708e2fa3d0e39f1220604a81a036a78.tar.gz
glibc-2bd608801708e2fa3d0e39f1220604a81a036a78.tar.xz
glibc-2bd608801708e2fa3d0e39f1220604a81a036a78.zip
Update.
1999-01-18  Ulrich Drepper  <drepper@cygnus.com>

	* iconv/gconv_conf.c (add_module): Complete rewrite.  Use cleverer
	data structures and avoid creating intermediate representations
	first.  Rewrite also all helper functions.
	* iconv/gconv_db.c (find_derivation): Use new data structure for
	module database.
	* iconv/Versions: Remove __gconv_nmodules.
	* iconv/iconv_prog.c: Rewrite generation of charset name list to
	use new data structure.
	* iconv/gconv_int.h (struct gconv_module): Add new elements for
	database data structure.
	(__gconv_modules_db): Update type.
	(__gconv_transform_dummy): Removed.
	* iconv/gconv_builtin.h: Remove dummy transformation.
	* iconv/gconv_simple.c: Remove __gconv_transform_dummy.

	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove
	__syscall_vfork, add vfork.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.

	* Rules: Add dummp.c and dummy.o to common-generated.
Diffstat (limited to 'iconv/gconv_int.h')
-rw-r--r--iconv/gconv_int.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h
index bc67b0b050..c78d0bb98b 100644
--- a/iconv/gconv_int.h
+++ b/iconv/gconv_int.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -75,6 +75,11 @@ struct gconv_module
   int cost_lo;
 
   const char *module_name;
+
+  struct gconv_module *left;	/* Prefix smaller.  */
+  struct gconv_module *same;	/* List of entries with identical prefix.  */
+  struct gconv_module *matching;/* Next node with more specific prefix.  */
+  struct gconv_module *right;	/* Prefix larger.  */
 };
 
 
@@ -85,7 +90,7 @@ extern void *__gconv_alias_db;
 
 /* Array with available modules.  */
 extern size_t __gconv_nmodules;
-extern struct gconv_module **__gconv_modules_db;
+extern struct gconv_module *__gconv_modules_db;
 
 
 /* Return in *HANDLE decriptor for transformation from FROMSET to TOSET.  */
@@ -102,7 +107,7 @@ extern int __gconv_close (gconv_t cd)
    bytes in buffer starting at *OUTBUF.  Return number of written
    characters in *CONVERTED if this pointer is not null.  */
 extern int __gconv (gconv_t __cd, const char **__inbuf, const char *inbufend,
-		    char **__outbuf, char *outbufend, size_t *__converted)
+		    char **__outbuf, char *outbufend, size_t *converted)
      internal_function;
 
 /* Return in *HANDLE a pointer to an array with *NSTEPS elements describing
@@ -152,7 +157,6 @@ extern void __gconv_get_builtin_trans (const char *__name,
 		   const char **__inbuf, const char *__inbufend,	      \
 		   size_t *__written, int __do_flush)
 
-__BUILTIN_TRANS (__gconv_transform_dummy);
 __BUILTIN_TRANS (__gconv_transform_ascii_internal);
 __BUILTIN_TRANS (__gconv_transform_internal_ascii);
 __BUILTIN_TRANS (__gconv_transform_utf8_internal);