about summary refs log tree commit diff
path: root/iconvdata/euckr.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/euckr.c')
-rw-r--r--iconvdata/euckr.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/iconvdata/euckr.c b/iconvdata/euckr.c
index 1a2ff89568..61046b392b 100644
--- a/iconvdata/euckr.c
+++ b/iconvdata/euckr.c
@@ -28,13 +28,11 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
 {
   if (ch > 0x7f)
     {
-      uint16_t idx = 0;
-
-      if (ucs4_to_ksc5601 (ch, &idx))
-	idx |= 0x8080;
-
-      cp[0] = (unsigned char) (idx / 256);
-      cp[1] = (unsigned char) (idx & 0xff);
+      if (ucs4_to_ksc5601 (ch, cp, 2) != UNKNOWN_10646_CHAR)
+	{
+	  cp[0] |= 0x80;
+	  cp[1] |= 0x80;
+	}
     }
   /* XXX Think about 0x5c ; '\'.  */
   else
@@ -89,14 +87,14 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
 	/* Two-byte character.  First test whether the next character	      \
 	   is also available.  */					      \
 	ch = ksc5601_to_ucs4 (&inptr,					      \
-			      NEED_LENGTH_TEST ? inptr - inbufend : 2, x080); \
+			      NEED_LENGTH_TEST ? inptr - inend : 2, 0x80);    \
 	if (NEED_LENGTH_TEST && ch == 0)				      \
 	  {								      \
 	    /* The second character is not available.  */		      \
 	    result = GCONV_INCOMPLETE_INPUT;				      \
 	    break;							      \
 	  }								      \
-	if (ch == UNKNOWN_10646_CHAR))					      \
+	if (ch == UNKNOWN_10646_CHAR)					      \
 	  {								      \
 	    /* This is an illegal character.  */			      \
 	    result = GCONV_ILLEGAL_INPUT;				      \