--- a/src/locale/iconv.c +++ b/src/locale/iconv.c @@ -48,6 +48,7 @@ static const unsigned char charmaps[] = "utf16\0\0\312" "ucs4\0utf32\0\0\313" "ucs2\0\0\314" +#ifdef FULL_ICONV "eucjp\0\0\320" "shiftjis\0sjis\0cp932\0\0\321" "iso2022jp\0\0\322" @@ -56,6 +57,7 @@ static const unsigned char charmaps[] = "gb2312\0\0\332" "big5\0bigfive\0cp950\0big5hkscs\0\0\340" "euckr\0ksc5601\0ksx1001\0cp949\0\0\350" +#endif #include "codepages.h" ; @@ -66,6 +68,7 @@ static const unsigned short legacy_chars #include "legacychars.h" }; +#ifdef FULL_ICONV static const unsigned short jis0208[84][94] = { #include "jis0208.h" }; @@ -85,6 +88,7 @@ static const unsigned short hkscs[] = { static const unsigned short ksc[93][94] = { #include "ksc.h" }; +#endif static const unsigned short rev_jis[] = { #include "revjis.h" @@ -205,6 +209,7 @@ static unsigned legacy_map(const unsigne return x < 256 ? x : legacy_chars[x-256]; } +#ifdef FULL_ICONV static unsigned uni_to_jis(unsigned c) { unsigned nel = sizeof rev_jis / sizeof *rev_jis; @@ -223,6 +228,7 @@ static unsigned uni_to_jis(unsigned c) } } } +#endif size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restrict out, size_t *restrict outb) { @@ -319,6 +325,7 @@ size_t iconv(iconv_t cd, char **restrict } type = scd->state; continue; +#ifdef FULL_ICONV case SHIFT_JIS: if (c < 128) break; if (c-0xa1 <= 0xdf-0xa1) { @@ -518,6 +525,7 @@ size_t iconv(iconv_t cd, char **restrict c = ksc[c][d]; if (!c) goto ilseq; break; +#endif default: if (!c) break; c = legacy_map(map, c); @@ -559,6 +567,7 @@ size_t iconv(iconv_t cd, char **restrict } } goto subst; +#ifdef FULL_ICONV case SHIFT_JIS: if (c < 128) goto revout; if (c == 0xa5) { @@ -632,6 +641,7 @@ size_t iconv(iconv_t cd, char **restrict *(*out)++ = 'B'; *outb -= 8; break; +#endif case UCS2: totype = UCS2BE; case UCS2BE: --- a/src/locale/codepages.h +++ b/src/locale/codepages.h @@ -129,6 +129,7 @@ "\340\204\43\316\100\344\34\144\316\71\350\244\243\316\72\354\264\343\316\73" "\21\361\44\317\74\364\30\145\17\124\146\345\243\317\76\374\134\304\327\77" +#ifdef FULL_ICONV "cp1250\0" "windows1250\0" "\0\40" @@ -239,6 +240,7 @@ "\20\105\163\330\64\324\324\145\315\65\330\144\243\315\66\334\334\145\330\67" "\340\204\43\316\100\344\224\143\316\71\350\244\243\316\72\205\265\343\316\73" "\21\305\203\330\74\364\330\145\317\75\370\344\243\317\76\374\340\65\362\77" +#endif "koi8r\0" "\0\40"