summary refs log tree commit diff
path: root/iconvdata/cp1255.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/cp1255.c')
-rw-r--r--iconvdata/cp1255.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/iconvdata/cp1255.c b/iconvdata/cp1255.c
index 19edb27a66..6cccf526e6 100644
--- a/iconvdata/cp1255.c
+++ b/iconvdata/cp1255.c
@@ -321,6 +321,15 @@ static const struct { unsigned int idx; unsigned int len; } comp_table[8] = {
   }
 #define LOOP_NEED_FLAGS
 #define EXTRA_LOOP_DECLS	, int *statep
+#define ONEBYTE_BODY \
+  {									      \
+    if (c < 0x80)							      \
+      return c;								      \
+    uint32_t ch = to_ucs4[c - 0x80];					      \
+    if (ch == L'\0' || (ch >= 0x05d0 && ch <= 0x05f2))			      \
+      return WEOF;							      \
+    return ch;								      \
+  }
 #include <iconv/loop.c>