summary refs log tree commit diff
path: root/iconv/loop.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-08-25 22:13:09 +0000
committerUlrich Drepper <drepper@redhat.com>2000-08-25 22:13:09 +0000
commitb572c2da318d45e89bec5425692be84a2ac27ed4 (patch)
tree2a71538bcc87638e30a7b6f47092a2a3645c5cb3 /iconv/loop.c
parent0cdb4983fc3d3b97bebf8c466bdef6226b610996 (diff)
downloadglibc-b572c2da318d45e89bec5425692be84a2ac27ed4.tar.gz
glibc-b572c2da318d45e89bec5425692be84a2ac27ed4.tar.xz
glibc-b572c2da318d45e89bec5425692be84a2ac27ed4.zip
Update.
2000-08-25  Ulrich Drepper  <drepper@redhat.com>

	* locales/i18n (default_missing): Change back to only U003F.
Diffstat (limited to 'iconv/loop.c')
-rw-r--r--iconv/loop.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/iconv/loop.c b/iconv/loop.c
index 9d168d84e9..3a2779ed4a 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -170,7 +170,8 @@
 
 /* To make it easier for the writers of the modules, we define a macro
    to test whether we have to ignore errors.  */
-#define ignore_errors_p() (flags & __GCONV_IGNORE_ERRORS)
+#define ignore_errors_p() \
+  (irreversible != NULL && (flags & __GCONV_IGNORE_ERRORS))
 
 
 /* Error handling with transliteration/transcription function use and
@@ -181,6 +182,12 @@
     struct __gconv_trans_data *trans;					      \
 									      \
     result = __GCONV_ILLEGAL_INPUT;					      \
+									      \
+    if (irreversible == NULL)						      \
+      /* This means we are in call from __gconv_transliterate.  In this	      \
+	 case we are not doing any error recovery outself.  */		      \
+      break;								      \
+									      \
     /* First try the transliteration methods.  */			      \
     for (trans = step_data->__trans; trans != NULL; trans = trans->__next)    \
       {									      \
@@ -197,7 +204,7 @@
     /* Next see whether we have to ignore the error.  If not, stop.  */	      \
     if (! ignore_errors_p ())						      \
       break;								      \
-    									      \
+									      \
     /* When we come here it means we ignore the character.  */		      \
     ++*irreversible;							      \
     inptr += Incr;							      \