summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--iconvdata/ksc5601.h7
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ec2c846214..459de93a83 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-06-05  Ulrich Drepper  <drepper@redhat.com>
+
+	* iconvdata/ksc5601.h (ksc5601_to_ucs4): Undo *s in all cases of
+	an error.
+
 2000-06-04  Ulrich Drepper  <drepper@redhat.com>
 
 	* iconv/gconv_dl.c (do_release_shlib): Don't reset reference
diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h
index d0b1b0cab6..7fbd41f571 100644
--- a/iconvdata/ksc5601.h
+++ b/iconvdata/ksc5601.h
@@ -72,14 +72,15 @@ ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
 
   if (idx >= 1410 && idx < 1410 + KSC5601_HANGUL)
     return (__ksc5601_hangul_to_ucs[idx - 1410]
-	    ?: ((*s) -= 2, __UNKNOWN_10646_CHAR));
+	    ?: (*s -= 2, __UNKNOWN_10646_CHAR));
   else if (idx >= 3854)
     /* Hanja : row 42 - row 93 : 3854 = 94 * (42-1) */
    return (__ksc5601_hanja_to_ucs[idx - 3854]
-	   ?: ((*s) -= 2, __UNKNOWN_10646_CHAR));
+	   ?: (*s -= 2, __UNKNOWN_10646_CHAR));
   else if (idx <= 1114)
-    return __ksc5601_sym_to_ucs[idx] ?: ((*s) -= 2, __UNKNOWN_10646_CHAR);
+    return __ksc5601_sym_to_ucs[idx] ?: (*s -= 2, __UNKNOWN_10646_CHAR);
 
+  *s -= 2;
   return __UNKNOWN_10646_CHAR;
 }