diff options
Diffstat (limited to 'iconvdata/ibm932.c')
-rw-r--r-- | iconvdata/ibm932.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/iconvdata/ibm932.c b/iconvdata/ibm932.c index 4fb1582e79..8f05581c13 100644 --- a/iconvdata/ibm932.c +++ b/iconvdata/ibm932.c @@ -94,10 +94,16 @@ } \ else \ { \ - if (res == 0xa5) \ + if (res == 0x1c) \ + res = 0x1a; \ + else if (res == 0x7f) \ + res = 0x1c; \ + else if (res == 0xa5) \ res = 0x5c; \ else if (res == 0x203e) \ res = 0x7e; \ + else if (res == 0x1a) \ + res = 0x7f; \ put32 (outptr, res); \ outptr += 4; \ inptr++; \ @@ -111,10 +117,16 @@ uint32_t res = __ibm932sb_to_ucs4[c]; \ if (res == 0 && c != 0) \ return WEOF; \ - if (res == 0xa5) \ + if (res == 0x1c) \ + res = 0x1a; \ + else if (res == 0x7f) \ + res = 0x1c; \ + else if (res == 0xa5) \ res = 0x5c; \ else if (res == 0x203e) \ res = 0x7e; \ + else if (res == 0x1a) \ + res = 0x7f; \ return res; \ } #include <iconv/loop.c> |