summaryrefslogtreecommitdiffstats
path: root/toolchain/musl/patches/900-iconv_size_hack.patch
blob: ad1dc4b109ae442976639871d4babbdc6874e2d6 (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
--- 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"