about summary refs log tree commit diff
path: root/iconvdata/sjis.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/sjis.c')
-rw-r--r--iconvdata/sjis.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c
index 285f24fdaf..4561779d44 100644
--- a/iconvdata/sjis.c
+++ b/iconvdata/sjis.c
@@ -4409,6 +4409,20 @@ static const char from_ucs4_extra[0x100][2] =
     outptr += 4;							      \
   }
 #define LOOP_NEED_FLAGS
+#define ONEBYTE_BODY \
+  {									      \
+    if (c < 0x80)							      \
+      {									      \
+	if (c == 0x5c)							      \
+	  return 0xa5;							      \
+	if (c == 0x7e)							      \
+	  return 0x203e;						      \
+	return c;							      \
+      }									      \
+    if (c >= 0xa1 && c <= 0xdf)						      \
+      return 0xfec0 + c;						      \
+    return WEOF;							      \
+  }
 #include <iconv/loop.c>