1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
--- a/src/locale/iconv.c
+++ b/src/locale/iconv.c
@@ -39,6 +39,7 @@ static const unsigned char charmaps[] =
"ucs4\0ucs4be\0utf32\0utf32be\0\0\300"
"ucs4le\0utf32le\0\0\303"
"ascii\0usascii\0iso646\0iso646us\0\0\307"
+#ifdef FULL_ICONV
"eucjp\0\0\320"
"shiftjis\0sjis\0\0\321"
"gb18030\0\0\330"
@@ -46,6 +47,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"
;
@@ -53,6 +55,7 @@ static const unsigned short legacy_chars
#include "legacychars.h"
};
+#ifdef FULL_ICONV
static const unsigned short jis0208[84][94] = {
#include "jis0208.h"
};
@@ -72,6 +75,7 @@ static const unsigned short hkscs[] = {
static const unsigned short ksc[93][94] = {
#include "ksc.h"
};
+#endif
static int fuzzycmp(const unsigned char *a, const unsigned char *b)
{
@@ -224,6 +228,7 @@ size_t iconv(iconv_t cd0, char **restric
c = ((c-0xd7c0)<<10) + (d-0xdc00);
}
break;
+#ifdef FULL_ICONV
case SHIFT_JIS:
if (c-0xa1 <= 0xdf-0xa1) {
c += 0xff61-0xa1;
@@ -370,6 +375,7 @@ size_t iconv(iconv_t cd0, char **restric
c = ksc[c][d];
if (!c) goto ilseq;
break;
+#endif
default:
if (c < 128+type) break;
c = legacy_map(map, c);
--- a/src/locale/codepages.h
+++ b/src/locale/codepages.h
@@ -118,6 +118,7 @@
"\0\0\0\100\15\0\344\0\0\0\0\0\0\0\0\0\0\0\0\0\103\270\1\0\0\0\340\1\200\40"
"\230\0\0\0\0\0\44\341\12\0"
+#ifdef FULL_ICONV
"cp1250\0"
"windows1250\0"
"\0\0"
@@ -214,6 +215,7 @@
"\0\0\0\0\0\0\0\0\0\15\0\0\0\0\0\0\0\0\0\0\266\0\0\0\0\102\0\220\13\0"
"\0\234\2\0\0\0\0\0\0\0\0\244\202\13\0\0\0\0\100\15\0\0\0\0\0\0\0\0\0\0"
"\267\0\0\0\0\103\0\240\13\0\0\240\2\0\0\0\0\0\0\0\0\250\62\45\0"
+#endif
"koi8r\0"
"\0\0"
|