about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--iconv/gconv.h4
-rw-r--r--iconv/skeleton.c7
3 files changed, 15 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 6bb155e912..d533c38105 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2000-06-12  Ulrich Drepper  <drepper@redhat.com>
+
+	* iconv/gconv.h (__gconv_trans_context_fct): Remove two
+	parameters.
+	* iconv/skeleton.c (FUNCTION_NAME): Call __trans_context_fct if it
+	exists.
+
 2000-06-12  Jes Sorensen  <jes@linuxcare.com>
 
 	* sysdeps/unix/sysv/linux/ia64/kernel_stat.h: New file.
diff --git a/iconv/gconv.h b/iconv/gconv.h
index 5717ddbea0..2bba133d0c 100644
--- a/iconv/gconv.h
+++ b/iconv/gconv.h
@@ -87,9 +87,7 @@ typedef int (*__gconv_trans_fct) (struct __gconv_step *step,
 typedef int (*__gconv_trans_context_fct) (struct __gconv_trans_data *data,
 					  __const unsigned char *,
 					  __const unsigned char *,
-					  __const unsigned char *,
-					  unsigned char *, unsigned char *,
-					  unsigned char *);
+					  unsigned char *, unsigned char *);
 
 /* Function to query module about supported encoded character sets.  */
 typedef int (*__gconv_trans_query_fct) (__const char **, size_t *);
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index dca2c7f7a6..d64d7599b4 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -412,6 +412,13 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 	    }
 #endif
 
+	  /* Give the transliteration module the chance to store the
+	     original text and the result in case it needs a context.  */
+	  if (data->__trans.__trans_context_fct != NULL)
+	    DL_CALL_FCT (data->__trans.__trans_context_fct,
+			 (data->__trans.__data, inptr, *inptrp,
+			  outstart, outbuf));
+
 	  /* We finished one use of the loops.  */
 	  ++data->__invocation_counter;