summary refs log tree commit diff
path: root/iconv/skeleton.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconv/skeleton.c')
-rw-r--r--iconv/skeleton.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index 8dbebb81ac..854cc70bee 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -379,6 +379,8 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 
       do
 	{
+	  struct __gconv_trans_data *trans;
+
 	  /* Remember the start value for this round.  */
 	  inptr = *inptrp;
 	  /* The outbuf buffer is empty.  */
@@ -429,10 +431,10 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 
 	  /* 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));
+	  for (trans = data->__trans; trans != NULL; trans = trans->__next)
+	    if (trans->__trans_context_fct != NULL)
+	      DL_CALL_FCT (trans->__trans_context_fct,
+			   (trans->__data, inptr, *inptrp, outstart, outbuf));
 
 	  /* We finished one use of the loops.  */
 	  ++data->__invocation_counter;