diff options
Diffstat (limited to 'iconvdata/euc-jisx0213.c')
-rw-r--r-- | iconvdata/euc-jisx0213.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/iconvdata/euc-jisx0213.c b/iconvdata/euc-jisx0213.c index a0062c8..7f56f3c 100644 --- a/iconvdata/euc-jisx0213.c +++ b/iconvdata/euc-jisx0213.c @@ -44,9 +44,14 @@ #define TO_LOOP to_euc_jisx0213 #define DEFINE_INIT 1 #define DEFINE_FINI 1 -#define MIN_NEEDED_FROM 1 -#define MAX_NEEDED_FROM 3 -#define MIN_NEEDED_TO 4 +#define FROM_LOOP_MIN_NEEDED_FROM 1 +#define FROM_LOOP_MAX_NEEDED_FROM 3 +#define FROM_LOOP_MIN_NEEDED_TO 4 +#define FROM_LOOP_MAX_NEEDED_TO 8 +#define TO_LOOP_MIN_NEEDED_FROM 4 +#define TO_LOOP_MAX_NEEDED_FROM 4 +#define TO_LOOP_MIN_NEEDED_TO 1 +#define TO_LOOP_MAX_NEEDED_TO 3 #define PREPARE_LOOP \ int saved_state; \ int *statep = &data->__statep->__count; @@ -92,9 +97,10 @@ /* First define the conversion function from EUC-JISX0213 to UCS-4. */ -#define MIN_NEEDED_INPUT MIN_NEEDED_FROM -#define MAX_NEEDED_INPUT MAX_NEEDED_FROM -#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO +#define MIN_NEEDED_INPUT FROM_LOOP_MIN_NEEDED_FROM +#define MAX_NEEDED_INPUT FROM_LOOP_MAX_NEEDED_FROM +#define MIN_NEEDED_OUTPUT FROM_LOOP_MIN_NEEDED_TO +#define MAX_NEEDED_OUTPUT FROM_LOOP_MAX_NEEDED_TO #define LOOPFCT FROM_LOOP #define BODY \ { \ @@ -195,8 +201,6 @@ break; \ } \ \ - inptr = endp; \ - \ if (ch < 0x80) \ { \ /* It's a combining character. */ \ @@ -206,6 +210,7 @@ /* See whether we have room for two characters. */ \ if (outptr + 8 <= outend) \ { \ + inptr = endp; \ put32 (outptr, u1); \ outptr += 4; \ put32 (outptr, u2); \ @@ -218,6 +223,8 @@ break; \ } \ } \ + \ + inptr = endp; \ } \ } \ else \ @@ -288,9 +295,10 @@ static const struct { 0xa6f5, 0xa6f8 }, /* 0x12678 = 0x12675 U+309A */ }; -#define MIN_NEEDED_INPUT MIN_NEEDED_TO -#define MIN_NEEDED_OUTPUT MIN_NEEDED_FROM -#define MAX_NEEDED_OUTPUT MAX_NEEDED_FROM +#define MIN_NEEDED_INPUT TO_LOOP_MIN_NEEDED_FROM +#define MAX_NEEDED_INPUT TO_LOOP_MAX_NEEDED_FROM +#define MIN_NEEDED_OUTPUT TO_LOOP_MIN_NEEDED_TO +#define MAX_NEEDED_OUTPUT TO_LOOP_MAX_NEEDED_TO #define LOOPFCT TO_LOOP #define BODY \ { \ |