about summary refs log tree commit diff
path: root/iconv/gconv_db.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-08-29 21:14:05 +0000
committerUlrich Drepper <drepper@redhat.com>2000-08-29 21:14:05 +0000
commitc7c3b0e907efac218b329ebbe3fc7432ec4415c5 (patch)
tree9d7b90e399e6ee1e87e49dec92ec47f4476352f3 /iconv/gconv_db.c
parent4dadd40cc72ddee017ebd0d278671398485dcbb6 (diff)
downloadglibc-c7c3b0e907efac218b329ebbe3fc7432ec4415c5.tar.gz
glibc-c7c3b0e907efac218b329ebbe3fc7432ec4415c5.tar.xz
glibc-c7c3b0e907efac218b329ebbe3fc7432ec4415c5.zip
Update.
2000-08-29  Akira Higuchi  <a@kondara.org>

	* iconv/gconv_db.c (increment_counter): Reset __init_fct, __fct,
	and __end_fct fields of struct __gconv_step.
	* iconv/Makefile (tests): Add iconv-bug2.
	* iconv/iconv-bug2.c: New file.

	* iconvdata/euc-kr.c (BODY for FROM_LOOP): Pass 'inend - inptr'
	instead of 'inptr - inend' to ksc5601_to_ucs4.

	* iconvdata/sjis.c (BODY for FROM_LOOP): Allow 0x7f character.

	* iconvdata/iso-2022-cn.c (BODY for FROM_LOOP): If an incomplete
	character or shift sequence is found at the end of the input
	string, return__GCONV_INCOMPLETE_INPUT instead of
	__GCONV_EMPTY_INPUT.
	* iconvdata/iso-2022-jp.c (BODY for FROM_LOOP): Likewise.
	* iconvdata/iso-2022-kr.c (BODY for FROM_LOOP): Likewise.

	* iconvdata/iso-2022-jp.c (BODY for FROM_LOOP): Return
	__GCONV_ILLEGAL_INPUT for 8bit characters.
Diffstat (limited to 'iconv/gconv_db.c')
-rw-r--r--iconv/gconv_db.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index 0caf310b91..50cedd6256 100644
--- a/iconv/gconv_db.c
+++ b/iconv/gconv_db.c
@@ -305,6 +305,15 @@ increment_counter (struct __gconv_step *steps, size_t nsteps)
 	    result = __GCONV_NOCONV;
 	    break;
 	  }
+
+	steps[cnt].__init_fct = steps[cnt].__shlib_handle->init_fct;
+	steps[cnt].__fct = steps[cnt].__shlib_handle->fct;
+	steps[cnt].__end_fct = steps[cnt].__shlib_handle->end_fct;
+
+	if (steps[cnt].__end_fct != NULL)
+	  DL_CALL_FCT (steps[cnt].__end_fct, &steps[cnt]);
+	if (steps[cnt].__init_fct != NULL)
+	  DL_CALL_FCT (steps[cnt].__init_fct, &steps[cnt]);
       }
   return result;
 }