aboutsummaryrefslogtreecommitdiff
path: root/iconvdata/ansi_x3.110.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/ansi_x3.110.c')
-rw-r--r--iconvdata/ansi_x3.110.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c
index 08746cf..b20e12a 100644
--- a/iconvdata/ansi_x3.110.c
+++ b/iconvdata/ansi_x3.110.c
@@ -404,7 +404,7 @@ static const char from_ucs4[][2] =
\
if (__builtin_expect (ch >= 0xc1, 0) && ch <= 0xcf) \
{ \
- /* Composed character. First test whether the next character \
+ /* Composed character. First test whether the next byte \
is also available. */ \
uint32_t ch2; \
\
@@ -449,6 +449,15 @@ static const char from_ucs4[][2] =
inptr += incr; \
}
#define LOOP_NEED_FLAGS
+#define ONEBYTE_BODY \
+ { \
+ uint32_t ch = to_ucs4[c]; \
+ \
+ if (__builtin_expect (ch == 0, 0) && c != '\0') \
+ return WEOF; \
+ else \
+ return ch; \
+ }
#include <iconv/loop.c>