1 /*
2 * Copyright (c) 2003, Artem B. Bityuckiy, SoftMine Corporation.
3 * Rights transferred to Franklin Electronic Publishers.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26 #include <stdio.h>
27 #include <iconv.h>
28 #include <errno.h>
29 #include <newlib.h>
30 #include "check.h"
31
32 #if defined(_ICONV_FROM_ENCODING_UTF_8) || \
33 defined(_ICONV_FROM_ENCODING_EUC_JP) || \
34 defined(_ICONV_FROM_ENCODING_SHIFT_JIS) || \
35 defined(_ICONV_FROM_ENCODING_UCS_2_INTERNAL)
36
37 #ifdef _ICONV_FROM_ENCODING_UTF_8
38 static const char utf8[] =
39 {
40 0xe8,0x89,0xb2,0xe3,0x80,0x85,0xe3,0x83,0x86,0xe3,
41 0x82,0xad,0xe3,0x82,0xb9,0xe3,0x83,0x88,0xe3,0x83,
42 0x95,0xe3,0x82,0xa1,0xe3,0x82,0xa4,0xe3,0x83,0xab,
43 0xe9,0x9b,0x86,0x20,0x56,0x65,0x72,0x33,0x2e,0x33,
44 0x20,0x28,0x43,0x29,0x48,0x41,0x54,0x0d,0x0a,0x0d,
45 0x0a,0xe3,0x81,0x93,0xe3,0x81,0xae,0xe3,0x82,0xa2,
46 0xe3,0x83,0xbc,0xe3,0x82,0xab,0xe3,0x82,0xa4,0xe3,
47 0x83,0x96,0xe3,0x81,0xae,0xe6,0x9c,0x80,0xe6,0x96,
48 0xb0,0xe7,0x89,0x88,0xe3,0x81,0xaf,0xe3,0x81,0x93,
49 0xe3,0x81,0x93,0xe3,0x81,0xab,0xe3,0x81,0x82,0xe3,
50 0x82,0x8a,0xe3,0x81,0xbe,0xe3,0x81,0x99,0xe3,0x80,
51 0x82,0x0d,0x0a,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,
52 0x77,0x77,0x77,0x30,0x32,0x2e,0x73,0x6f,0x2d,0x6e,
53 0x65,0x74,0x2e,0x6e,0x65,0x2e,0x6a,0x70,0x2f,0x25,
54 0x37,0x45,0x68,0x61,0x74,0x2f,0x66,0x69,0x6c,0x65,
55 0x73,0x2f,0x69,0x6e,0x64,0x65,0x78,0x2d,0x6a,0x2e,
56 0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x0d,0x0a,0x63,0x72,
57 0x2c,0x20,0x63,0x72,0x6c,0x66,0x2c,0x20,0x6c,0x66,
58 0xe3,0x83,0x87,0xe3,0x82,0xa3,0xe3,0x83,0xac,0xe3,
59 0x82,0xaf,0xe3,0x83,0x88,0xe3,0x83,0xaa,0x28,0xe3,
60 0x83,0x95,0xe3,0x82,0xa9,0xe3,0x83,0xab,0xe3,0x83,
61 0x80,0x29,0xe3,0x81,0xae,0xe5,0x86,0x85,0xe5,0xae,
62 0xb9,0xe3,0x81,0xaf,0xe5,0x90,0x8c,0xe3,0x81,0x98,
63 0xe3,0x81,0xa7,0xe3,0x81,0x99,0xe3,0x81,0x8c,0xe3,
64 0x80,0x81,0xe8,0xa1,0x8c,0xe3,0x81,0xae,0xe5,0x8c,
65 0xba,0xe5,0x88,0x87,0xe3,0x82,0x8a,0xe3,0x81,0x8c,
66 0xe3,0x81,0x9d,0xe3,0x82,0x8c,0xe3,0x81,0x9e,0xe3,
67 0x82,0x8c,0x0d,0x0a,0x43,0x52,0x28,0x4d,0x61,0x63,
68 0xe9,0xa2,0xa8,0x29,0xe3,0x80,0x81,0x43,0x52,0x2b,
69 0x4c,0x46,0x28,0x44,0x4f,0x53,0xe9,0xa2,0xa8,0x29,
70 0xe3,0x80,0x81,0x4c,0x46,0x28,0x55,0x4e,0x49,0x58,
71 0xe9,0xa2,0xa8,0x29,0xe3,0x81,0xab,0xe3,0x81,0xaa,
72 0xe3,0x81,0xa3,0xe3,0x81,0xa6,0xe3,0x81,0x84,0xe3,
73 0x81,0xbe,0xe3,0x81,0x99,0xe3,0x80,0x82,0x0d,0x0a,
74 0x0d,0x0a,0x0d,0x0a,0x6a,0x74,0x65,0x78,0x74,0x2f,
75 0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x72,0x65,0x61,0x64,
76 0x6d,0x65,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
77 0x20,0xe8,0x8b,0xb1,0xe8,0xaa,0x9e,0x52,0x45,0x41,
78 0x44,0x4d,0x45,0x20,0x20,0x20,0x20,0x20,0x28,0x41,
79 0x53,0x43,0x49,0x49,0x29,0x0d,0x0a,0x20,0x20,0x72,
80 0x65,0x61,0x64,0x6d,0x65,0x2e,0x65,0x75,0x63,0x20,
81 0x2d,0x2d,0x2d,0x20,0xe3,0x81,0x93,0xe3,0x81,0xae,
82 0xe3,0x83,0x95,0xe3,0x82,0xa1,0xe3,0x82,0xa4,0xe3,
83 0x83,0xab,0x20,0x20,0x20,0x28,0x45,0x55,0x43,0x2d,
84 0x4a,0x50,0x29,0x0d,0x0a,0x20,0x20,0x72,0x65,0x61,
85 0x64,0x6d,0x65,0x2e,0x6a,0x69,0x73,0x20,0x2d,0x2d,
86 0x2d,0x20,0xe6,0x97,0xa5,0xe6,0x9c,0xac,0xe8,0xaa,
87 0x9e,0x52,0x45,0x41,0x44,0x4d,0x45,0x20,0x20,0x20,
88 0x28,0x4a,0x49,0x53,0x29,0x0d,0x0a,0x20,0x20,0x72,
89 0x65,0x61,0x64,0x6d,0x65,0x2e,0x73,0x6a,0x73,0x20,
90 0x2d,0x2d,0x2d,0x20,0xe6,0x97,0xa5,0xe6,0x9c,0xac,
91 0xe8,0xaa,0x9e,0x52,0x45,0x41,0x44,0x4d,0x45,0x20,
92 0x20,0x20,0x28,0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,
93 0x49,0x53,0x29,0x0d,0x0a,0x0d,0x0a,0x6a,0x74,0x65,
94 0x78,0x74,0x2f,0x63,0x72,0x2f,0x0d,0x0a,0x6a,0x74,
95 0x65,0x78,0x74,0x2f,0x63,0x72,0x6c,0x66,0x2f,0x0d,
96 0x0a,0x6a,0x74,0x65,0x78,0x74,0x2f,0x6c,0x66,0x2f,
97 0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x61,0x73,0x63,0x69,
98 0x69,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,0x2d,
99 0x20,0x41,0x53,0x43,0x49,0x49,0xe3,0x81,0xa7,0xe6,
100 0x9b,0xb8,0xe3,0x81,0x84,0xe3,0x81,0x9f,0xe6,0x97,
101 0xa5,0xe6,0x9c,0xac,0xe8,0xaa,0x9e,0x28,0xe3,0x83,
102 0xad,0xe3,0x83,0xbc,0xe3,0x83,0x9e,0xe5,0xad,0x97,
103 0x29,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x6a,0x30,0x32,
104 0x30,0x31,0x2d,0x38,0x62,0x2e,0x74,0x78,0x74,0x20,
105 0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,
106 0x31,0xe3,0x81,0xae,0xe7,0x89,0x87,0xe4,0xbb,0xae,
107 0xe5,0x90,0x8d,0x20,0xe3,0x82,0x92,0x20,0x38,0xe5,
108 0x8d,0x98,0xe4,0xbd,0x8d,0xe7,0xac,0xa6,0xe5,0x8f,
109 0xb7,0xe5,0x8c,0x96,0x20,0x20,0x20,0x20,0x20,0x20,
110 0x20,0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,0x49,0x53,
111 0xe3,0x81,0xa8,0xe5,0x90,0x8c,0xe3,0x81,0x98,0x0d,
112 0x0a,0x20,0x20,0x6a,0x30,0x32,0x30,0x31,0x2d,0x65,
113 0x73,0x2e,0x74,0x78,0x74,0x20,0x2d,0x20,0x4a,0x49,
114 0x53,0x20,0x58,0x30,0x32,0x30,0x31,0xe3,0x81,0xae,
115 0xe7,0x89,0x87,0xe4,0xbb,0xae,0xe5,0x90,0x8d,0x20,
116 0xe3,0x82,0x92,0x20,0x45,0x53,0x43,0x28,0x49,0xe3,
117 0x81,0xa7,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,0xe5,0x8c,
118 0x96,0x0d,0x0a,0x20,0x20,0x6a,0x30,0x32,0x30,0x31,
119 0x2d,0x73,0x6f,0x2e,0x74,0x78,0x74,0x20,0x2d,0x20,
120 0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,0x31,0xe3,
121 0x81,0xae,0xe7,0x89,0x87,0xe4,0xbb,0xae,0xe5,0x90,
122 0x8d,0x20,0xe3,0x82,0x92,0x20,0x53,0x4f,0x2f,0x53,
123 0x49,0xe3,0x81,0xa7,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,
124 0xe5,0x8c,0x96,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x6a,
125 0x30,0x32,0x30,0x38,0x2d,0x38,0x62,0x2e,0x74,0x78,
126 0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,
127 0x32,0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
128 0x20,0x20,0xe3,0x82,0x92,0x20,0x38,0xe5,0x8d,0x98,
129 0xe4,0xbd,0x8d,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,0xe5,
130 0x8c,0x96,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x45,
131 0x55,0x43,0x2d,0x4a,0x50,0xe3,0x81,0xa8,0xe5,0x90,
132 0x8c,0xe3,0x81,0x98,0x0d,0x0a,0x20,0x20,0x6a,0x30,
133 0x32,0x30,0x38,0x2d,0x37,0x38,0x2e,0x74,0x78,0x74,
134 0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,
135 0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
136 0x20,0xe3,0x82,0x92,0x20,0x45,0x53,0x43,0x24,0x40,
137 0xe3,0x81,0xa7,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,0xe5,
138 0x8c,0x96,0x20,0x20,0x20,0x20,0x20,0xe3,0x81,0x84,
139 0xe3,0x82,0x8f,0xe3,0x82,0x86,0xe3,0x82,0x8b,0xe6,
140 0x97,0xa7,0x4a,0x49,0x53,0x0d,0x0a,0x20,0x20,0x6a,
141 0x30,0x32,0x30,0x38,0x2d,0x38,0x33,0x2e,0x74,0x78,
142 0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,
143 0x32,0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
144 0x20,0x20,0xe3,0x82,0x92,0x20,0x45,0x53,0x43,0x24,
145 0x42,0xe3,0x81,0xa7,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,
146 0xe5,0x8c,0x96,0x20,0x20,0x20,0x20,0x20,0xe3,0x81,
147 0x84,0xe3,0x82,0x8f,0xe3,0x82,0x86,0xe3,0x82,0x8b,
148 0xe6,0x96,0xb0,0x4a,0x49,0x53,0x0d,0x0a,0x0d,0x0a,
149 0x20,0x20,0x65,0x30,0x32,0x30,0x31,0x2e,0x74,0x78,
150 0x74,0x20,0x2d,0x2d,0x2d,0x2d,0x20,0x4a,0x49,0x53,
151 0x20,0x58,0x30,0x32,0x30,0x31,0xe3,0x81,0xae,0xe7,
152 0x89,0x87,0xe4,0xbb,0xae,0xe5,0x90,0x8d,0x20,0xe3,
153 0x82,0x92,0x20,0x45,0x55,0x43,0x2d,0x4a,0x50,0xe3,
154 0x81,0xa7,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,0xe5,0x8c,
155 0x96,0x0d,0x0a,0x20,0x20,0x65,0x30,0x32,0x30,0x38,
156 0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,0x2d,0x20,
157 0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,0x38,0x20,
158 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xe3,0x82,
159 0x92,0x20,0x45,0x55,0x43,0x2d,0x4a,0x50,0xe3,0x81,
160 0xa7,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,0xe5,0x8c,0x96,
161 0x20,0x20,0x20,0x20,0x38,0xe3,0x83,0x93,0xe3,0x83,
162 0x83,0xe3,0x83,0x88,0x4a,0x49,0x53,0x58,0x30,0x32,
163 0x30,0x38,0xe3,0x81,0xa8,0xe5,0x90,0x8c,0xe3,0x81,
164 0x98,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x73,0x30,0x32,
165 0x30,0x31,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
166 0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,
167 0x31,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
168 0xe3,0x82,0x92,0x20,0x53,0x68,0x69,0x66,0x74,0x5f,
169 0x4a,0x49,0x53,0xe3,0x81,0xa7,0xe7,0xac,0xa6,0xe5,
170 0x8f,0xb7,0xe5,0x8c,0x96,0x20,0x38,0xe3,0x83,0x93,
171 0xe3,0x83,0x83,0xe3,0x83,0x88,0x4a,0x49,0x53,0x58,
172 0x30,0x32,0x30,0x31,0xe3,0x81,0xa8,0xe5,0x90,0x8c,
173 0xe3,0x81,0x98,0x0d,0x0a,0x20,0x20,0x73,0x30,0x32,
174 0x30,0x38,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
175 0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,
176 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
177 0xe3,0x82,0x92,0x20,0x53,0x68,0x69,0x66,0x74,0x5f,
178 0x4a,0x49,0x53,0xe3,0x81,0xa7,0xe7,0xac,0xa6,0xe5,
179 0x8f,0xb7,0xe5,0x8c,0x96,0x0d,0x0a,0x0d,0x0a,0x6a,
180 0x74,0x65,0x78,0x74,0x2f,0x6f,0x74,0x68,0x65,0x72,
181 0x73,0x2f,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x62,0x36,
182 0x34,0x6a,0x69,0x73,0x2e,0x74,0x78,0x74,0x20,0x2d,
183 0x2d,0x2d,0x20,0x49,0x53,0x4f,0x2d,0x32,0x30,0x32,
184 0x32,0x2d,0x4a,0x50,0x20,0x28,0x4a,0x49,0x53,0x29,
185 0x20,0xe3,0x82,0x92,0x20,0x62,0x61,0x73,0x65,0x36,
186 0x34,0xe3,0x81,0xa7,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,
187 0xe5,0x8c,0x96,0x0d,0x0a,0x20,0x20,0x71,0x74,0x6a,
188 0x69,0x73,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
189 0x2d,0x20,0x49,0x53,0x4f,0x2d,0x32,0x30,0x32,0x32,
190 0x2d,0x4a,0x50,0x20,0x28,0x4a,0x49,0x53,0x29,0x20,
191 0xe3,0x82,0x92,0x20,0x71,0x75,0x6f,0x74,0x65,0x64,
192 0x2d,0x70,0x72,0x69,0x6e,0x74,0x61,0x62,0x6c,0x65,
193 0xe3,0x81,0xa7,0xe7,0xac,0xa6,0xe5,0x8f,0xb7,0xe5,
194 0x8c,0x96,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x62,0x6b,
195 0x65,0x75,0x63,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,
196 0x2d,0x2d,0x20,0xe5,0xa3,0x8a,0xe3,0x82,0x8c,0xe3,
197 0x81,0x9f,0x45,0x55,0x43,0x2d,0x4a,0x50,0x20,0x20,
198 0x20,0x20,0x20,0x20,0xe5,0x85,0x88,0xe9,0xa0,0xad,
199 0xe3,0x83,0x93,0xe3,0x83,0x83,0xe3,0x83,0x88,0xe3,
200 0x81,0x8c,0xe3,0x82,0xbc,0xe3,0x83,0xad,0x0d,0x0a,
201 0x20,0x20,0x62,0x6b,0x6a,0x69,0x73,0x2e,0x74,0x78,
202 0x74,0x20,0x2d,0x2d,0x2d,0x2d,0x20,0xe5,0xa3,0x8a,
203 0xe3,0x82,0x8c,0xe3,0x81,0x9f,0x4a,0x49,0x53,0x20,
204 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x45,0x53,
205 0x43,0xe3,0x82,0xb3,0xe3,0x83,0xbc,0xe3,0x83,0x89,
206 0xe3,0x81,0x8c,0xe6,0xac,0xa0,0xe3,0x81,0x91,0xe3,
207 0x81,0x9f,0x0d,0x0a,0x20,0x20,0x62,0x6b,0x73,0x6a,
208 0x69,0x73,0x2e,0x74,0x78,0x74,0x2d,0x2d,0x2d,0x2d,
209 0x20,0xe5,0xa3,0x8a,0xe3,0x82,0x8c,0xe3,0x81,0x9f,
210 0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,0x49,0x53,0x20,
211 0x20,0x20,0xe5,0x85,0x88,0xe9,0xa0,0xad,0xe3,0x83,
212 0x93,0xe3,0x83,0x83,0xe3,0x83,0x88,0xe3,0x81,0x8c,
213 0xe3,0x82,0xbc,0xe3,0x83,0xad,0x0d,0x0a,0x0d,0x0a,
214 0x20,0x20,0x63,0x74,0x72,0x6c,0x5f,0x7a,0x2e,0x74,
215 0x78,0x74,0x20,0x20,0x20,0x20,0x20,0x53,0x68,0x69,
216 0x66,0x74,0x5f,0x4a,0x49,0x53,0x20,0x20,0x20,0x20,
217 0x20,0x20,0x5e,0x5a,0xe3,0x82,0xad,0xe3,0x83,0xa3,
218 0xe3,0x83,0xa9,0xe3,0x82,0xaf,0xe3,0x82,0xbf,0xe4,
219 0xbb,0x98,0xe3,0x81,0x8d,0x20,0x20,0x20,0x28,0x44,
220 0x4f,0x53,0xe9,0xa2,0xa8,0x29,0x0d,0x0a,0x20,0x20,
221 0x6d,0x61,0x63,0x74,0x78,0x74,0x2e,0x62,0x69,0x6e,
222 0x20,0x20,0x20,0x20,0x20,0xe3,0x83,0x9e,0xe3,0x83,
223 0x83,0xe3,0x82,0xaf,0xe3,0x83,0x90,0xe3,0x82,0xa4,
224 0xe3,0x83,0x8a,0xe3,0x83,0xaa,0x49,0x49,0xe3,0x83,
225 0x95,0xe3,0x82,0xa9,0xe3,0x83,0xbc,0xe3,0x83,0x9e,
226 0xe3,0x83,0x83,0xe3,0x83,0x88,0x0d,0xa
227 };
228 #endif /* ifdef _ICONV_FROM_ENCODING_UTF_8 */
229
230 #ifdef _ICONV_FROM_ENCODING_EUC_JP
231 static const char euc_jp[] =
232 {
233 0xbf,0xa7,0xa1,0xb9,0xa5,0xc6,0xa5,0xad,0xa5,0xb9,
234 0xa5,0xc8,0xa5,0xd5,0xa5,0xa1,0xa5,0xa4,0xa5,0xeb,
235 0xbd,0xb8,0x20,0x56,0x65,0x72,0x33,0x2e,0x33,0x20,
236 0x28,0x43,0x29,0x48,0x41,0x54,0x0d,0x0a,0x0d,0x0a,
237 0xa4,0xb3,0xa4,0xce,0xa5,0xa2,0xa1,0xbc,0xa5,0xab,
238 0xa5,0xa4,0xa5,0xd6,0xa4,0xce,0xba,0xc7,0xbf,0xb7,
239 0xc8,0xc7,0xa4,0xcf,0xa4,0xb3,0xa4,0xb3,0xa4,0xcb,
240 0xa4,0xa2,0xa4,0xea,0xa4,0xde,0xa4,0xb9,0xa1,0xa3,
241 0x0d,0x0a,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,
242 0x77,0x77,0x30,0x32,0x2e,0x73,0x6f,0x2d,0x6e,0x65,
243 0x74,0x2e,0x6e,0x65,0x2e,0x6a,0x70,0x2f,0x25,0x37,
244 0x45,0x68,0x61,0x74,0x2f,0x66,0x69,0x6c,0x65,0x73,
245 0x2f,0x69,0x6e,0x64,0x65,0x78,0x2d,0x6a,0x2e,0x68,
246 0x74,0x6d,0x6c,0x0d,0x0a,0x0d,0x0a,0x63,0x72,0x2c,
247 0x20,0x63,0x72,0x6c,0x66,0x2c,0x20,0x6c,0x66,0xa5,
248 0xc7,0xa5,0xa3,0xa5,0xec,0xa5,0xaf,0xa5,0xc8,0xa5,
249 0xea,0x28,0xa5,0xd5,0xa5,0xa9,0xa5,0xeb,0xa5,0xc0,
250 0x29,0xa4,0xce,0xc6,0xe2,0xcd,0xc6,0xa4,0xcf,0xc6,
251 0xb1,0xa4,0xb8,0xa4,0xc7,0xa4,0xb9,0xa4,0xac,0xa1,
252 0xa2,0xb9,0xd4,0xa4,0xce,0xb6,0xe8,0xc0,0xda,0xa4,
253 0xea,0xa4,0xac,0xa4,0xbd,0xa4,0xec,0xa4,0xbe,0xa4,
254 0xec,0x0d,0x0a,0x43,0x52,0x28,0x4d,0x61,0x63,0xc9,
255 0xf7,0x29,0xa1,0xa2,0x43,0x52,0x2b,0x4c,0x46,0x28,
256 0x44,0x4f,0x53,0xc9,0xf7,0x29,0xa1,0xa2,0x4c,0x46,
257 0x28,0x55,0x4e,0x49,0x58,0xc9,0xf7,0x29,0xa4,0xcb,
258 0xa4,0xca,0xa4,0xc3,0xa4,0xc6,0xa4,0xa4,0xa4,0xde,
259 0xa4,0xb9,0xa1,0xa3,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,
260 0x6a,0x74,0x65,0x78,0x74,0x2f,0x0d,0x0a,0x0d,0x0a,
261 0x20,0x20,0x72,0x65,0x61,0x64,0x6d,0x65,0x2e,0x74,
262 0x78,0x74,0x20,0x2d,0x2d,0x2d,0x20,0xb1,0xd1,0xb8,
263 0xec,0x52,0x45,0x41,0x44,0x4d,0x45,0x20,0x20,0x20,
264 0x20,0x20,0x28,0x41,0x53,0x43,0x49,0x49,0x29,0x0d,
265 0x0a,0x20,0x20,0x72,0x65,0x61,0x64,0x6d,0x65,0x2e,
266 0x65,0x75,0x63,0x20,0x2d,0x2d,0x2d,0x20,0xa4,0xb3,
267 0xa4,0xce,0xa5,0xd5,0xa5,0xa1,0xa5,0xa4,0xa5,0xeb,
268 0x20,0x20,0x20,0x28,0x45,0x55,0x43,0x2d,0x4a,0x50,
269 0x29,0x0d,0x0a,0x20,0x20,0x72,0x65,0x61,0x64,0x6d,
270 0x65,0x2e,0x6a,0x69,0x73,0x20,0x2d,0x2d,0x2d,0x20,
271 0xc6,0xfc,0xcb,0xdc,0xb8,0xec,0x52,0x45,0x41,0x44,
272 0x4d,0x45,0x20,0x20,0x20,0x28,0x4a,0x49,0x53,0x29,
273 0x0d,0x0a,0x20,0x20,0x72,0x65,0x61,0x64,0x6d,0x65,
274 0x2e,0x73,0x6a,0x73,0x20,0x2d,0x2d,0x2d,0x20,0xc6,
275 0xfc,0xcb,0xdc,0xb8,0xec,0x52,0x45,0x41,0x44,0x4d,
276 0x45,0x20,0x20,0x20,0x28,0x53,0x68,0x69,0x66,0x74,
277 0x5f,0x4a,0x49,0x53,0x29,0x0d,0x0a,0x0d,0x0a,0x6a,
278 0x74,0x65,0x78,0x74,0x2f,0x63,0x72,0x2f,0x0d,0x0a,
279 0x6a,0x74,0x65,0x78,0x74,0x2f,0x63,0x72,0x6c,0x66,
280 0x2f,0x0d,0x0a,0x6a,0x74,0x65,0x78,0x74,0x2f,0x6c,
281 0x66,0x2f,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x61,0x73,
282 0x63,0x69,0x69,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,
283 0x2d,0x2d,0x20,0x41,0x53,0x43,0x49,0x49,0xa4,0xc7,
284 0xbd,0xf1,0xa4,0xa4,0xa4,0xbf,0xc6,0xfc,0xcb,0xdc,
285 0xb8,0xec,0x28,0xa5,0xed,0xa1,0xbc,0xa5,0xde,0xbb,
286 0xfa,0x29,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x6a,0x30,
287 0x32,0x30,0x31,0x2d,0x38,0x62,0x2e,0x74,0x78,0x74,
288 0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,
289 0x30,0x31,0xa4,0xce,0xca,0xd2,0xb2,0xbe,0xcc,0xbe,
290 0x20,0xa4,0xf2,0x20,0x38,0xc3,0xb1,0xb0,0xcc,0xc9,
291 0xe4,0xb9,0xe6,0xb2,0xbd,0x20,0x20,0x20,0x20,0x20,
292 0x20,0x20,0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,0x49,
293 0x53,0xa4,0xc8,0xc6,0xb1,0xa4,0xb8,0x0d,0x0a,0x20,
294 0x20,0x6a,0x30,0x32,0x30,0x31,0x2d,0x65,0x73,0x2e,
295 0x74,0x78,0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,
296 0x58,0x30,0x32,0x30,0x31,0xa4,0xce,0xca,0xd2,0xb2,
297 0xbe,0xcc,0xbe,0x20,0xa4,0xf2,0x20,0x45,0x53,0x43,
298 0x28,0x49,0xa4,0xc7,0xc9,0xe4,0xb9,0xe6,0xb2,0xbd,
299 0x0d,0x0a,0x20,0x20,0x6a,0x30,0x32,0x30,0x31,0x2d,
300 0x73,0x6f,0x2e,0x74,0x78,0x74,0x20,0x2d,0x20,0x4a,
301 0x49,0x53,0x20,0x58,0x30,0x32,0x30,0x31,0xa4,0xce,
302 0xca,0xd2,0xb2,0xbe,0xcc,0xbe,0x20,0xa4,0xf2,0x20,
303 0x53,0x4f,0x2f,0x53,0x49,0xa4,0xc7,0xc9,0xe4,0xb9,
304 0xe6,0xb2,0xbd,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x6a,
305 0x30,0x32,0x30,0x38,0x2d,0x38,0x62,0x2e,0x74,0x78,
306 0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,
307 0x32,0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
308 0x20,0x20,0xa4,0xf2,0x20,0x38,0xc3,0xb1,0xb0,0xcc,
309 0xc9,0xe4,0xb9,0xe6,0xb2,0xbd,0x20,0x20,0x20,0x20,
310 0x20,0x20,0x20,0x45,0x55,0x43,0x2d,0x4a,0x50,0xa4,
311 0xc8,0xc6,0xb1,0xa4,0xb8,0x0d,0x0a,0x20,0x20,0x6a,
312 0x30,0x32,0x30,0x38,0x2d,0x37,0x38,0x2e,0x74,0x78,
313 0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,
314 0x32,0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
315 0x20,0x20,0xa4,0xf2,0x20,0x45,0x53,0x43,0x24,0x40,
316 0xa4,0xc7,0xc9,0xe4,0xb9,0xe6,0xb2,0xbd,0x20,0x20,
317 0x20,0x20,0x20,0xa4,0xa4,0xa4,0xef,0xa4,0xe6,0xa4,
318 0xeb,0xb5,0xec,0x4a,0x49,0x53,0x0d,0x0a,0x20,0x20,
319 0x6a,0x30,0x32,0x30,0x38,0x2d,0x38,0x33,0x2e,0x74,
320 0x78,0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,
321 0x30,0x32,0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,
322 0x20,0x20,0x20,0xa4,0xf2,0x20,0x45,0x53,0x43,0x24,
323 0x42,0xa4,0xc7,0xc9,0xe4,0xb9,0xe6,0xb2,0xbd,0x20,
324 0x20,0x20,0x20,0x20,0xa4,0xa4,0xa4,0xef,0xa4,0xe6,
325 0xa4,0xeb,0xbf,0xb7,0x4a,0x49,0x53,0x0d,0x0a,0x0d,
326 0x0a,0x20,0x20,0x65,0x30,0x32,0x30,0x31,0x2e,0x74,
327 0x78,0x74,0x20,0x2d,0x2d,0x2d,0x2d,0x20,0x4a,0x49,
328 0x53,0x20,0x58,0x30,0x32,0x30,0x31,0xa4,0xce,0xca,
329 0xd2,0xb2,0xbe,0xcc,0xbe,0x20,0xa4,0xf2,0x20,0x45,
330 0x55,0x43,0x2d,0x4a,0x50,0xa4,0xc7,0xc9,0xe4,0xb9,
331 0xe6,0xb2,0xbd,0x0d,0x0a,0x20,0x20,0x65,0x30,0x32,
332 0x30,0x38,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
333 0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,
334 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
335 0xa4,0xf2,0x20,0x45,0x55,0x43,0x2d,0x4a,0x50,0xa4,
336 0xc7,0xc9,0xe4,0xb9,0xe6,0xb2,0xbd,0x20,0x20,0x20,
337 0x20,0x38,0xa5,0xd3,0xa5,0xc3,0xa5,0xc8,0x4a,0x49,
338 0x53,0x58,0x30,0x32,0x30,0x38,0xa4,0xc8,0xc6,0xb1,
339 0xa4,0xb8,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x73,0x30,
340 0x32,0x30,0x31,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,
341 0x2d,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,
342 0x30,0x31,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
343 0x20,0xa4,0xf2,0x20,0x53,0x68,0x69,0x66,0x74,0x5f,
344 0x4a,0x49,0x53,0xa4,0xc7,0xc9,0xe4,0xb9,0xe6,0xb2,
345 0xbd,0x20,0x38,0xa5,0xd3,0xa5,0xc3,0xa5,0xc8,0x4a,
346 0x49,0x53,0x58,0x30,0x32,0x30,0x31,0xa4,0xc8,0xc6,
347 0xb1,0xa4,0xb8,0x0d,0x0a,0x20,0x20,0x73,0x30,0x32,
348 0x30,0x38,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
349 0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,
350 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
351 0xa4,0xf2,0x20,0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,
352 0x49,0x53,0xa4,0xc7,0xc9,0xe4,0xb9,0xe6,0xb2,0xbd,
353 0x0d,0x0a,0x0d,0x0a,0x6a,0x74,0x65,0x78,0x74,0x2f,
354 0x6f,0x74,0x68,0x65,0x72,0x73,0x2f,0x0d,0x0a,0x0d,
355 0x0a,0x20,0x20,0x62,0x36,0x34,0x6a,0x69,0x73,0x2e,
356 0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,0x20,0x49,0x53,
357 0x4f,0x2d,0x32,0x30,0x32,0x32,0x2d,0x4a,0x50,0x20,
358 0x28,0x4a,0x49,0x53,0x29,0x20,0xa4,0xf2,0x20,0x62,
359 0x61,0x73,0x65,0x36,0x34,0xa4,0xc7,0xc9,0xe4,0xb9,
360 0xe6,0xb2,0xbd,0x0d,0x0a,0x20,0x20,0x71,0x74,0x6a,
361 0x69,0x73,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
362 0x2d,0x20,0x49,0x53,0x4f,0x2d,0x32,0x30,0x32,0x32,
363 0x2d,0x4a,0x50,0x20,0x28,0x4a,0x49,0x53,0x29,0x20,
364 0xa4,0xf2,0x20,0x71,0x75,0x6f,0x74,0x65,0x64,0x2d,
365 0x70,0x72,0x69,0x6e,0x74,0x61,0x62,0x6c,0x65,0xa4,
366 0xc7,0xc9,0xe4,0xb9,0xe6,0xb2,0xbd,0x0d,0x0a,0x0d,
367 0x0a,0x20,0x20,0x62,0x6b,0x65,0x75,0x63,0x2e,0x74,
368 0x78,0x74,0x20,0x2d,0x2d,0x2d,0x2d,0x20,0xb2,0xf5,
369 0xa4,0xec,0xa4,0xbf,0x45,0x55,0x43,0x2d,0x4a,0x50,
370 0x20,0x20,0x20,0x20,0x20,0x20,0xc0,0xe8,0xc6,0xac,
371 0xa5,0xd3,0xa5,0xc3,0xa5,0xc8,0xa4,0xac,0xa5,0xbc,
372 0xa5,0xed,0x0d,0x0a,0x20,0x20,0x62,0x6b,0x6a,0x69,
373 0x73,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,0x2d,
374 0x20,0xb2,0xf5,0xa4,0xec,0xa4,0xbf,0x4a,0x49,0x53,
375 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x45,
376 0x53,0x43,0xa5,0xb3,0xa1,0xbc,0xa5,0xc9,0xa4,0xac,
377 0xb7,0xe7,0xa4,0xb1,0xa4,0xbf,0x0d,0x0a,0x20,0x20,
378 0x62,0x6b,0x73,0x6a,0x69,0x73,0x2e,0x74,0x78,0x74,
379 0x2d,0x2d,0x2d,0x2d,0x20,0xb2,0xf5,0xa4,0xec,0xa4,
380 0xbf,0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,0x49,0x53,
381 0x20,0x20,0x20,0xc0,0xe8,0xc6,0xac,0xa5,0xd3,0xa5,
382 0xc3,0xa5,0xc8,0xa4,0xac,0xa5,0xbc,0xa5,0xed,0x0d,
383 0x0a,0x0d,0x0a,0x20,0x20,0x63,0x74,0x72,0x6c,0x5f,
384 0x7a,0x2e,0x74,0x78,0x74,0x20,0x20,0x20,0x20,0x20,
385 0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,0x49,0x53,0x20,
386 0x20,0x20,0x20,0x20,0x20,0x5e,0x5a,0xa5,0xad,0xa5,
387 0xe3,0xa5,0xe9,0xa5,0xaf,0xa5,0xbf,0xc9,0xd5,0xa4,
388 0xad,0x20,0x20,0x20,0x28,0x44,0x4f,0x53,0xc9,0xf7,
389 0x29,0x0d,0x0a,0x20,0x20,0x6d,0x61,0x63,0x74,0x78,
390 0x74,0x2e,0x62,0x69,0x6e,0x20,0x20,0x20,0x20,0x20,
391 0xa5,0xde,0xa5,0xc3,0xa5,0xaf,0xa5,0xd0,0xa5,0xa4,
392 0xa5,0xca,0xa5,0xea,0x49,0x49,0xa5,0xd5,0xa5,0xa9,
393 0xa1,0xbc,0xa5,0xde,0xa5,0xc3,0xa5,0xc8,0x0d,0x0a
394 };
395 #endif /* #ifdef _ICONV_FROM_ENCODING_EUC_JP */
396
397 #ifdef _ICONV_FROM_ENCODING_SHIFT_JIS
398 static const char shift_jis[] =
399 {
400 0x90,0x46,0x81,0x58,0x83,0x65,0x83,0x4c,0x83,0x58,
401 0x83,0x67,0x83,0x74,0x83,0x40,0x83,0x43,0x83,0x8b,
402 0x8f,0x57,0x20,0x56,0x65,0x72,0x33,0x2e,0x33,0x20,
403 0x28,0x43,0x29,0x48,0x41,0x54,0x0d,0x0a,0x0d,0x0a,
404 0x82,0xb1,0x82,0xcc,0x83,0x41,0x81,0x5b,0x83,0x4a,
405 0x83,0x43,0x83,0x75,0x82,0xcc,0x8d,0xc5,0x90,0x56,
406 0x94,0xc5,0x82,0xcd,0x82,0xb1,0x82,0xb1,0x82,0xc9,
407 0x82,0xa0,0x82,0xe8,0x82,0xdc,0x82,0xb7,0x81,0x42,
408 0x0d,0x0a,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,
409 0x77,0x77,0x30,0x32,0x2e,0x73,0x6f,0x2d,0x6e,0x65,
410 0x74,0x2e,0x6e,0x65,0x2e,0x6a,0x70,0x2f,0x25,0x37,
411 0x45,0x68,0x61,0x74,0x2f,0x66,0x69,0x6c,0x65,0x73,
412 0x2f,0x69,0x6e,0x64,0x65,0x78,0x2d,0x6a,0x2e,0x68,
413 0x74,0x6d,0x6c,0x0d,0x0a,0x0d,0x0a,0x63,0x72,0x2c,
414 0x20,0x63,0x72,0x6c,0x66,0x2c,0x20,0x6c,0x66,0x83,
415 0x66,0x83,0x42,0x83,0x8c,0x83,0x4e,0x83,0x67,0x83,
416 0x8a,0x28,0x83,0x74,0x83,0x48,0x83,0x8b,0x83,0x5f,
417 0x29,0x82,0xcc,0x93,0xe0,0x97,0x65,0x82,0xcd,0x93,
418 0xaf,0x82,0xb6,0x82,0xc5,0x82,0xb7,0x82,0xaa,0x81,
419 0x41,0x8d,0x73,0x82,0xcc,0x8b,0xe6,0x90,0xd8,0x82,
420 0xe8,0x82,0xaa,0x82,0xbb,0x82,0xea,0x82,0xbc,0x82,
421 0xea,0x0d,0x0a,0x43,0x52,0x28,0x4d,0x61,0x63,0x95,
422 0x97,0x29,0x81,0x41,0x43,0x52,0x2b,0x4c,0x46,0x28,
423 0x44,0x4f,0x53,0x95,0x97,0x29,0x81,0x41,0x4c,0x46,
424 0x28,0x55,0x4e,0x49,0x58,0x95,0x97,0x29,0x82,0xc9,
425 0x82,0xc8,0x82,0xc1,0x82,0xc4,0x82,0xa2,0x82,0xdc,
426 0x82,0xb7,0x81,0x42,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,
427 0x6a,0x74,0x65,0x78,0x74,0x2f,0x0d,0x0a,0x0d,0x0a,
428 0x20,0x20,0x72,0x65,0x61,0x64,0x6d,0x65,0x2e,0x74,
429 0x78,0x74,0x20,0x2d,0x2d,0x2d,0x20,0x89,0x70,0x8c,
430 0xea,0x52,0x45,0x41,0x44,0x4d,0x45,0x20,0x20,0x20,
431 0x20,0x20,0x28,0x41,0x53,0x43,0x49,0x49,0x29,0x0d,
432 0x0a,0x20,0x20,0x72,0x65,0x61,0x64,0x6d,0x65,0x2e,
433 0x65,0x75,0x63,0x20,0x2d,0x2d,0x2d,0x20,0x82,0xb1,
434 0x82,0xcc,0x83,0x74,0x83,0x40,0x83,0x43,0x83,0x8b,
435 0x20,0x20,0x20,0x28,0x45,0x55,0x43,0x2d,0x4a,0x50,
436 0x29,0x0d,0x0a,0x20,0x20,0x72,0x65,0x61,0x64,0x6d,
437 0x65,0x2e,0x6a,0x69,0x73,0x20,0x2d,0x2d,0x2d,0x20,
438 0x93,0xfa,0x96,0x7b,0x8c,0xea,0x52,0x45,0x41,0x44,
439 0x4d,0x45,0x20,0x20,0x20,0x28,0x4a,0x49,0x53,0x29,
440 0x0d,0x0a,0x20,0x20,0x72,0x65,0x61,0x64,0x6d,0x65,
441 0x2e,0x73,0x6a,0x73,0x20,0x2d,0x2d,0x2d,0x20,0x93,
442 0xfa,0x96,0x7b,0x8c,0xea,0x52,0x45,0x41,0x44,0x4d,
443 0x45,0x20,0x20,0x20,0x28,0x53,0x68,0x69,0x66,0x74,
444 0x5f,0x4a,0x49,0x53,0x29,0x0d,0x0a,0x0d,0x0a,0x6a,
445 0x74,0x65,0x78,0x74,0x2f,0x63,0x72,0x2f,0x0d,0x0a,
446 0x6a,0x74,0x65,0x78,0x74,0x2f,0x63,0x72,0x6c,0x66,
447 0x2f,0x0d,0x0a,0x6a,0x74,0x65,0x78,0x74,0x2f,0x6c,
448 0x66,0x2f,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x61,0x73,
449 0x63,0x69,0x69,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,
450 0x2d,0x2d,0x20,0x41,0x53,0x43,0x49,0x49,0x82,0xc5,
451 0x8f,0x91,0x82,0xa2,0x82,0xbd,0x93,0xfa,0x96,0x7b,
452 0x8c,0xea,0x28,0x83,0x8d,0x81,0x5b,0x83,0x7d,0x8e,
453 0x9a,0x29,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x6a,0x30,
454 0x32,0x30,0x31,0x2d,0x38,0x62,0x2e,0x74,0x78,0x74,
455 0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,
456 0x30,0x31,0x82,0xcc,0x95,0xd0,0x89,0xbc,0x96,0xbc,
457 0x20,0x82,0xf0,0x20,0x38,0x92,0x50,0x88,0xca,0x95,
458 0x84,0x8d,0x86,0x89,0xbb,0x20,0x20,0x20,0x20,0x20,
459 0x20,0x20,0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,0x49,
460 0x53,0x82,0xc6,0x93,0xaf,0x82,0xb6,0x0d,0x0a,0x20,
461 0x20,0x6a,0x30,0x32,0x30,0x31,0x2d,0x65,0x73,0x2e,
462 0x74,0x78,0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,
463 0x58,0x30,0x32,0x30,0x31,0x82,0xcc,0x95,0xd0,0x89,
464 0xbc,0x96,0xbc,0x20,0x82,0xf0,0x20,0x45,0x53,0x43,
465 0x28,0x49,0x82,0xc5,0x95,0x84,0x8d,0x86,0x89,0xbb,
466 0x0d,0x0a,0x20,0x20,0x6a,0x30,0x32,0x30,0x31,0x2d,
467 0x73,0x6f,0x2e,0x74,0x78,0x74,0x20,0x2d,0x20,0x4a,
468 0x49,0x53,0x20,0x58,0x30,0x32,0x30,0x31,0x82,0xcc,
469 0x95,0xd0,0x89,0xbc,0x96,0xbc,0x20,0x82,0xf0,0x20,
470 0x53,0x4f,0x2f,0x53,0x49,0x82,0xc5,0x95,0x84,0x8d,
471 0x86,0x89,0xbb,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x6a,
472 0x30,0x32,0x30,0x38,0x2d,0x38,0x62,0x2e,0x74,0x78,
473 0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,
474 0x32,0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
475 0x20,0x20,0x82,0xf0,0x20,0x38,0x92,0x50,0x88,0xca,
476 0x95,0x84,0x8d,0x86,0x89,0xbb,0x20,0x20,0x20,0x20,
477 0x20,0x20,0x20,0x45,0x55,0x43,0x2d,0x4a,0x50,0x82,
478 0xc6,0x93,0xaf,0x82,0xb6,0x0d,0x0a,0x20,0x20,0x6a,
479 0x30,0x32,0x30,0x38,0x2d,0x37,0x38,0x2e,0x74,0x78,
480 0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,
481 0x32,0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
482 0x20,0x20,0x82,0xf0,0x20,0x45,0x53,0x43,0x24,0x40,
483 0x82,0xc5,0x95,0x84,0x8d,0x86,0x89,0xbb,0x20,0x20,
484 0x20,0x20,0x20,0x82,0xa2,0x82,0xed,0x82,0xe4,0x82,
485 0xe9,0x8b,0x8c,0x4a,0x49,0x53,0x0d,0x0a,0x20,0x20,
486 0x6a,0x30,0x32,0x30,0x38,0x2d,0x38,0x33,0x2e,0x74,
487 0x78,0x74,0x20,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,
488 0x30,0x32,0x30,0x38,0x20,0x20,0x20,0x20,0x20,0x20,
489 0x20,0x20,0x20,0x82,0xf0,0x20,0x45,0x53,0x43,0x24,
490 0x42,0x82,0xc5,0x95,0x84,0x8d,0x86,0x89,0xbb,0x20,
491 0x20,0x20,0x20,0x20,0x82,0xa2,0x82,0xed,0x82,0xe4,
492 0x82,0xe9,0x90,0x56,0x4a,0x49,0x53,0x0d,0x0a,0x0d,
493 0x0a,0x20,0x20,0x65,0x30,0x32,0x30,0x31,0x2e,0x74,
494 0x78,0x74,0x20,0x2d,0x2d,0x2d,0x2d,0x20,0x4a,0x49,
495 0x53,0x20,0x58,0x30,0x32,0x30,0x31,0x82,0xcc,0x95,
496 0xd0,0x89,0xbc,0x96,0xbc,0x20,0x82,0xf0,0x20,0x45,
497 0x55,0x43,0x2d,0x4a,0x50,0x82,0xc5,0x95,0x84,0x8d,
498 0x86,0x89,0xbb,0x0d,0x0a,0x20,0x20,0x65,0x30,0x32,
499 0x30,0x38,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
500 0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,
501 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
502 0x82,0xf0,0x20,0x45,0x55,0x43,0x2d,0x4a,0x50,0x82,
503 0xc5,0x95,0x84,0x8d,0x86,0x89,0xbb,0x20,0x20,0x20,
504 0x20,0x38,0x83,0x72,0x83,0x62,0x83,0x67,0x4a,0x49,
505 0x53,0x58,0x30,0x32,0x30,0x38,0x82,0xc6,0x93,0xaf,
506 0x82,0xb6,0x0d,0x0a,0x0d,0x0a,0x20,0x20,0x73,0x30,
507 0x32,0x30,0x31,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,
508 0x2d,0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,
509 0x30,0x31,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
510 0x20,0x82,0xf0,0x20,0x53,0x68,0x69,0x66,0x74,0x5f,
511 0x4a,0x49,0x53,0x82,0xc5,0x95,0x84,0x8d,0x86,0x89,
512 0xbb,0x20,0x38,0x83,0x72,0x83,0x62,0x83,0x67,0x4a,
513 0x49,0x53,0x58,0x30,0x32,0x30,0x31,0x82,0xc6,0x93,
514 0xaf,0x82,0xb6,0x0d,0x0a,0x20,0x20,0x73,0x30,0x32,
515 0x30,0x38,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
516 0x2d,0x20,0x4a,0x49,0x53,0x20,0x58,0x30,0x32,0x30,
517 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
518 0x82,0xf0,0x20,0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,
519 0x49,0x53,0x82,0xc5,0x95,0x84,0x8d,0x86,0x89,0xbb,
520 0x0d,0x0a,0x0d,0x0a,0x6a,0x74,0x65,0x78,0x74,0x2f,
521 0x6f,0x74,0x68,0x65,0x72,0x73,0x2f,0x0d,0x0a,0x0d,
522 0x0a,0x20,0x20,0x62,0x36,0x34,0x6a,0x69,0x73,0x2e,
523 0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,0x20,0x49,0x53,
524 0x4f,0x2d,0x32,0x30,0x32,0x32,0x2d,0x4a,0x50,0x20,
525 0x28,0x4a,0x49,0x53,0x29,0x20,0x82,0xf0,0x20,0x62,
526 0x61,0x73,0x65,0x36,0x34,0x82,0xc5,0x95,0x84,0x8d,
527 0x86,0x89,0xbb,0x0d,0x0a,0x20,0x20,0x71,0x74,0x6a,
528 0x69,0x73,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,
529 0x2d,0x20,0x49,0x53,0x4f,0x2d,0x32,0x30,0x32,0x32,
530 0x2d,0x4a,0x50,0x20,0x28,0x4a,0x49,0x53,0x29,0x20,
531 0x82,0xf0,0x20,0x71,0x75,0x6f,0x74,0x65,0x64,0x2d,
532 0x70,0x72,0x69,0x6e,0x74,0x61,0x62,0x6c,0x65,0x82,
533 0xc5,0x95,0x84,0x8d,0x86,0x89,0xbb,0x0d,0x0a,0x0d,
534 0x0a,0x20,0x20,0x62,0x6b,0x65,0x75,0x63,0x2e,0x74,
535 0x78,0x74,0x20,0x2d,0x2d,0x2d,0x2d,0x20,0x89,0xf3,
536 0x82,0xea,0x82,0xbd,0x45,0x55,0x43,0x2d,0x4a,0x50,
537 0x20,0x20,0x20,0x20,0x20,0x20,0x90,0xe6,0x93,0xaa,
538 0x83,0x72,0x83,0x62,0x83,0x67,0x82,0xaa,0x83,0x5b,
539 0x83,0x8d,0x0d,0x0a,0x20,0x20,0x62,0x6b,0x6a,0x69,
540 0x73,0x2e,0x74,0x78,0x74,0x20,0x2d,0x2d,0x2d,0x2d,
541 0x20,0x89,0xf3,0x82,0xea,0x82,0xbd,0x4a,0x49,0x53,
542 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x45,
543 0x53,0x43,0x83,0x52,0x81,0x5b,0x83,0x68,0x82,0xaa,
544 0x8c,0x87,0x82,0xaf,0x82,0xbd,0x0d,0x0a,0x20,0x20,
545 0x62,0x6b,0x73,0x6a,0x69,0x73,0x2e,0x74,0x78,0x74,
546 0x2d,0x2d,0x2d,0x2d,0x20,0x89,0xf3,0x82,0xea,0x82,
547 0xbd,0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,0x49,0x53,
548 0x20,0x20,0x20,0x90,0xe6,0x93,0xaa,0x83,0x72,0x83,
549 0x62,0x83,0x67,0x82,0xaa,0x83,0x5b,0x83,0x8d,0x0d,
550 0x0a,0x0d,0x0a,0x20,0x20,0x63,0x74,0x72,0x6c,0x5f,
551 0x7a,0x2e,0x74,0x78,0x74,0x20,0x20,0x20,0x20,0x20,
552 0x53,0x68,0x69,0x66,0x74,0x5f,0x4a,0x49,0x53,0x20,
553 0x20,0x20,0x20,0x20,0x20,0x5e,0x5a,0x83,0x4c,0x83,
554 0x83,0x83,0x89,0x83,0x4e,0x83,0x5e,0x95,0x74,0x82,
555 0xab,0x20,0x20,0x20,0x28,0x44,0x4f,0x53,0x95,0x97,
556 0x29,0x0d,0x0a,0x20,0x20,0x6d,0x61,0x63,0x74,0x78,
557 0x74,0x2e,0x62,0x69,0x6e,0x20,0x20,0x20,0x20,0x20,
558 0x83,0x7d,0x83,0x62,0x83,0x4e,0x83,0x6f,0x83,0x43,
559 0x83,0x69,0x83,0x8a,0x49,0x49,0x83,0x74,0x83,0x48,
560 0x81,0x5b,0x83,0x7d,0x83,0x62,0x83,0x67,0x0d,0x0a
561 };
562 #endif /* _ICONV_FROM_ENCODING_SHIFT_JIS */
563
564 #ifdef _ICONV_FROM_ENCODING_UCS_2_INTERNAL
565 static const short ucs2[] =
566 {
567 0x8272,0x3005,0x30c6,0x30ad,0x30b9,
568 0x30c8,0x30d5,0x30a1,0x30a4,0x30eb,
569 0x96c6,0x0020,0x0056,0x0065,0x0072,
570 0x0033,0x002e,0x0033,0x0020,0x0028,
571 0x0043,0x0029,0x0048,0x0041,0x0054,
572 0x000d,0x000a,0x000d,0x000a,0x3053,
573 0x306e,0x30a2,0x30fc,0x30ab,0x30a4,
574 0x30d6,0x306e,0x6700,0x65b0,0x7248,
575 0x306f,0x3053,0x3053,0x306b,0x3042,
576 0x308a,0x307e,0x3059,0x3002,0x000d,
577 0x000a,0x0068,0x0074,0x0074,0x0070,
578 0x003a,0x002f,0x002f,0x0077,0x0077,
579 0x0077,0x0030,0x0032,0x002e,0x0073,
580 0x006f,0x002d,0x006e,0x0065,0x0074,
581 0x002e,0x006e,0x0065,0x002e,0x006a,
582 0x0070,0x002f,0x0025,0x0037,0x0045,
583 0x0068,0x0061,0x0074,0x002f,0x0066,
584 0x0069,0x006c,0x0065,0x0073,0x002f,
585 0x0069,0x006e,0x0064,0x0065,0x0078,
586 0x002d,0x006a,0x002e,0x0068,0x0074,
587 0x006d,0x006c,0x000d,0x000a,0x000d,
588 0x000a,0x0063,0x0072,0x002c,0x0020,
589 0x0063,0x0072,0x006c,0x0066,0x002c,
590 0x0020,0x006c,0x0066,0x30c7,0x30a3,
591 0x30ec,0x30af,0x30c8,0x30ea,0x0028,
592 0x30d5,0x30a9,0x30eb,0x30c0,0x0029,
593 0x306e,0x5185,0x5bb9,0x306f,0x540c,
594 0x3058,0x3067,0x3059,0x304c,0x3001,
595 0x884c,0x306e,0x533a,0x5207,0x308a,
596 0x304c,0x305d,0x308c,0x305e,0x308c,
597 0x000d,0x000a,0x0043,0x0052,0x0028,
598 0x004d,0x0061,0x0063,0x98a8,0x0029,
599 0x3001,0x0043,0x0052,0x002b,0x004c,
600 0x0046,0x0028,0x0044,0x004f,0x0053,
601 0x98a8,0x0029,0x3001,0x004c,0x0046,
602 0x0028,0x0055,0x004e,0x0049,0x0058,
603 0x98a8,0x0029,0x306b,0x306a,0x3063,
604 0x3066,0x3044,0x307e,0x3059,0x3002,
605 0x000d,0x000a,0x000d,0x000a,0x000d,
606 0x000a,0x006a,0x0074,0x0065,0x0078,
607 0x0074,0x002f,0x000d,0x000a,0x000d,
608 0x000a,0x0020,0x0020,0x0072,0x0065,
609 0x0061,0x0064,0x006d,0x0065,0x002e,
610 0x0074,0x0078,0x0074,0x0020,0x002d,
611 0x002d,0x002d,0x0020,0x82f1,0x8a9e,
612 0x0052,0x0045,0x0041,0x0044,0x004d,
613 0x0045,0x0020,0x0020,0x0020,0x0020,
614 0x0020,0x0028,0x0041,0x0053,0x0043,
615 0x0049,0x0049,0x0029,0x000d,0x000a,
616 0x0020,0x0020,0x0072,0x0065,0x0061,
617 0x0064,0x006d,0x0065,0x002e,0x0065,
618 0x0075,0x0063,0x0020,0x002d,0x002d,
619 0x002d,0x0020,0x3053,0x306e,0x30d5,
620 0x30a1,0x30a4,0x30eb,0x0020,0x0020,
621 0x0020,0x0028,0x0045,0x0055,0x0043,
622 0x002d,0x004a,0x0050,0x0029,0x000d,
623 0x000a,0x0020,0x0020,0x0072,0x0065,
624 0x0061,0x0064,0x006d,0x0065,0x002e,
625 0x006a,0x0069,0x0073,0x0020,0x002d,
626 0x002d,0x002d,0x0020,0x65e5,0x672c,
627 0x8a9e,0x0052,0x0045,0x0041,0x0044,
628 0x004d,0x0045,0x0020,0x0020,0x0020,
629 0x0028,0x004a,0x0049,0x0053,0x0029,
630 0x000d,0x000a,0x0020,0x0020,0x0072,
631 0x0065,0x0061,0x0064,0x006d,0x0065,
632 0x002e,0x0073,0x006a,0x0073,0x0020,
633 0x002d,0x002d,0x002d,0x0020,0x65e5,
634 0x672c,0x8a9e,0x0052,0x0045,0x0041,
635 0x0044,0x004d,0x0045,0x0020,0x0020,
636 0x0020,0x0028,0x0053,0x0068,0x0069,
637 0x0066,0x0074,0x005f,0x004a,0x0049,
638 0x0053,0x0029,0x000d,0x000a,0x000d,
639 0x000a,0x006a,0x0074,0x0065,0x0078,
640 0x0074,0x002f,0x0063,0x0072,0x002f,
641 0x000d,0x000a,0x006a,0x0074,0x0065,
642 0x0078,0x0074,0x002f,0x0063,0x0072,
643 0x006c,0x0066,0x002f,0x000d,0x000a,
644 0x006a,0x0074,0x0065,0x0078,0x0074,
645 0x002f,0x006c,0x0066,0x002f,0x000d,
646 0x000a,0x000d,0x000a,0x0020,0x0020,
647 0x0061,0x0073,0x0063,0x0069,0x0069,
648 0x002e,0x0074,0x0078,0x0074,0x0020,
649 0x002d,0x002d,0x002d,0x002d,0x0020,
650 0x0041,0x0053,0x0043,0x0049,0x0049,
651 0x3067,0x66f8,0x3044,0x305f,0x65e5,
652 0x672c,0x8a9e,0x0028,0x30ed,0x30fc,
653 0x30de,0x5b57,0x0029,0x000d,0x000a,
654 0x000d,0x000a,0x0020,0x0020,0x006a,
655 0x0030,0x0032,0x0030,0x0031,0x002d,
656 0x0038,0x0062,0x002e,0x0074,0x0078,
657 0x0074,0x0020,0x002d,0x0020,0x004a,
658 0x0049,0x0053,0x0020,0x0058,0x0030,
659 0x0032,0x0030,0x0031,0x306e,0x7247,
660 0x4eee,0x540d,0x0020,0x3092,0x0020,
661 0x0038,0x5358,0x4f4d,0x7b26,0x53f7,
662 0x5316,0x0020,0x0020,0x0020,0x0020,
663 0x0020,0x0020,0x0020,0x0053,0x0068,
664 0x0069,0x0066,0x0074,0x005f,0x004a,
665 0x0049,0x0053,0x3068,0x540c,0x3058,
666 0x000d,0x000a,0x0020,0x0020,0x006a,
667 0x0030,0x0032,0x0030,0x0031,0x002d,
668 0x0065,0x0073,0x002e,0x0074,0x0078,
669 0x0074,0x0020,0x002d,0x0020,0x004a,
670 0x0049,0x0053,0x0020,0x0058,0x0030,
671 0x0032,0x0030,0x0031,0x306e,0x7247,
672 0x4eee,0x540d,0x0020,0x3092,0x0020,
673 0x0045,0x0053,0x0043,0x0028,0x0049,
674 0x3067,0x7b26,0x53f7,0x5316,0x000d,
675 0x000a,0x0020,0x0020,0x006a,0x0030,
676 0x0032,0x0030,0x0031,0x002d,0x0073,
677 0x006f,0x002e,0x0074,0x0078,0x0074,
678 0x0020,0x002d,0x0020,0x004a,0x0049,
679 0x0053,0x0020,0x0058,0x0030,0x0032,
680 0x0030,0x0031,0x306e,0x7247,0x4eee,
681 0x540d,0x0020,0x3092,0x0020,0x0053,
682 0x004f,0x002f,0x0053,0x0049,0x3067,
683 0x7b26,0x53f7,0x5316,0x000d,0x000a,
684 0x000d,0x000a,0x0020,0x0020,0x006a,
685 0x0030,0x0032,0x0030,0x0038,0x002d,
686 0x0038,0x0062,0x002e,0x0074,0x0078,
687 0x0074,0x0020,0x002d,0x0020,0x004a,
688 0x0049,0x0053,0x0020,0x0058,0x0030,
689 0x0032,0x0030,0x0038,0x0020,0x0020,
690 0x0020,0x0020,0x0020,0x0020,0x0020,
691 0x0020,0x0020,0x3092,0x0020,0x0038,
692 0x5358,0x4f4d,0x7b26,0x53f7,0x5316,
693 0x0020,0x0020,0x0020,0x0020,0x0020,
694 0x0020,0x0020,0x0045,0x0055,0x0043,
695 0x002d,0x004a,0x0050,0x3068,0x540c,
696 0x3058,0x000d,0x000a,0x0020,0x0020,
697 0x006a,0x0030,0x0032,0x0030,0x0038,
698 0x002d,0x0037,0x0038,0x002e,0x0074,
699 0x0078,0x0074,0x0020,0x002d,0x0020,
700 0x004a,0x0049,0x0053,0x0020,0x0058,
701 0x0030,0x0032,0x0030,0x0038,0x0020,
702 0x0020,0x0020,0x0020,0x0020,0x0020,
703 0x0020,0x0020,0x0020,0x3092,0x0020,
704 0x0045,0x0053,0x0043,0x0024,0x0040,
705 0x3067,0x7b26,0x53f7,0x5316,0x0020,
706 0x0020,0x0020,0x0020,0x0020,0x3044,
707 0x308f,0x3086,0x308b,0x65e7,0x004a,
708 0x0049,0x0053,0x000d,0x000a,0x0020,
709 0x0020,0x006a,0x0030,0x0032,0x0030,
710 0x0038,0x002d,0x0038,0x0033,0x002e,
711 0x0074,0x0078,0x0074,0x0020,0x002d,
712 0x0020,0x004a,0x0049,0x0053,0x0020,
713 0x0058,0x0030,0x0032,0x0030,0x0038,
714 0x0020,0x0020,0x0020,0x0020,0x0020,
715 0x0020,0x0020,0x0020,0x0020,0x3092,
716 0x0020,0x0045,0x0053,0x0043,0x0024,
717 0x0042,0x3067,0x7b26,0x53f7,0x5316,
718 0x0020,0x0020,0x0020,0x0020,0x0020,
719 0x3044,0x308f,0x3086,0x308b,0x65b0,
720 0x004a,0x0049,0x0053,0x000d,0x000a,
721 0x000d,0x000a,0x0020,0x0020,0x0065,
722 0x0030,0x0032,0x0030,0x0031,0x002e,
723 0x0074,0x0078,0x0074,0x0020,0x002d,
724 0x002d,0x002d,0x002d,0x0020,0x004a,
725 0x0049,0x0053,0x0020,0x0058,0x0030,
726 0x0032,0x0030,0x0031,0x306e,0x7247,
727 0x4eee,0x540d,0x0020,0x3092,0x0020,
728 0x0045,0x0055,0x0043,0x002d,0x004a,
729 0x0050,0x3067,0x7b26,0x53f7,0x5316,
730 0x000d,0x000a,0x0020,0x0020,0x0065,
731 0x0030,0x0032,0x0030,0x0038,0x002e,
732 0x0074,0x0078,0x0074,0x0020,0x002d,
733 0x002d,0x002d,0x002d,0x0020,0x004a,
734 0x0049,0x0053,0x0020,0x0058,0x0030,
735 0x0032,0x0030,0x0038,0x0020,0x0020,
736 0x0020,0x0020,0x0020,0x0020,0x0020,
737 0x0020,0x0020,0x3092,0x0020,0x0045,
738 0x0055,0x0043,0x002d,0x004a,0x0050,
739 0x3067,0x7b26,0x53f7,0x5316,0x0020,
740 0x0020,0x0020,0x0020,0x0038,0x30d3,
741 0x30c3,0x30c8,0x004a,0x0049,0x0053,
742 0x0058,0x0030,0x0032,0x0030,0x0038,
743 0x3068,0x540c,0x3058,0x000d,0x000a,
744 0x000d,0x000a,0x0020,0x0020,0x0073,
745 0x0030,0x0032,0x0030,0x0031,0x002e,
746 0x0074,0x0078,0x0074,0x0020,0x002d,
747 0x002d,0x002d,0x002d,0x0020,0x004a,
748 0x0049,0x0053,0x0020,0x0058,0x0030,
749 0x0032,0x0030,0x0031,0x0020,0x0020,
750 0x0020,0x0020,0x0020,0x0020,0x0020,
751 0x0020,0x0020,0x3092,0x0020,0x0053,
752 0x0068,0x0069,0x0066,0x0074,0x005f,
753 0x004a,0x0049,0x0053,0x3067,0x7b26,
754 0x53f7,0x5316,0x0020,0x0038,0x30d3,
755 0x30c3,0x30c8,0x004a,0x0049,0x0053,
756 0x0058,0x0030,0x0032,0x0030,0x0031,
757 0x3068,0x540c,0x3058,0x000d,0x000a,
758 0x0020,0x0020,0x0073,0x0030,0x0032,
759 0x0030,0x0038,0x002e,0x0074,0x0078,
760 0x0074,0x0020,0x002d,0x002d,0x002d,
761 0x002d,0x0020,0x004a,0x0049,0x0053,
762 0x0020,0x0058,0x0030,0x0032,0x0030,
763 0x0038,0x0020,0x0020,0x0020,0x0020,
764 0x0020,0x0020,0x0020,0x0020,0x0020,
765 0x3092,0x0020,0x0053,0x0068,0x0069,
766 0x0066,0x0074,0x005f,0x004a,0x0049,
767 0x0053,0x3067,0x7b26,0x53f7,0x5316,
768 0x000d,0x000a,0x000d,0x000a,0x006a,
769 0x0074,0x0065,0x0078,0x0074,0x002f,
770 0x006f,0x0074,0x0068,0x0065,0x0072,
771 0x0073,0x002f,0x000d,0x000a,0x000d,
772 0x000a,0x0020,0x0020,0x0062,0x0036,
773 0x0034,0x006a,0x0069,0x0073,0x002e,
774 0x0074,0x0078,0x0074,0x0020,0x002d,
775 0x002d,0x002d,0x0020,0x0049,0x0053,
776 0x004f,0x002d,0x0032,0x0030,0x0032,
777 0x0032,0x002d,0x004a,0x0050,0x0020,
778 0x0028,0x004a,0x0049,0x0053,0x0029,
779 0x0020,0x3092,0x0020,0x0062,0x0061,
780 0x0073,0x0065,0x0036,0x0034,0x3067,
781 0x7b26,0x53f7,0x5316,0x000d,0x000a,
782 0x0020,0x0020,0x0071,0x0074,0x006a,
783 0x0069,0x0073,0x002e,0x0074,0x0078,
784 0x0074,0x0020,0x002d,0x002d,0x002d,
785 0x002d,0x0020,0x0049,0x0053,0x004f,
786 0x002d,0x0032,0x0030,0x0032,0x0032,
787 0x002d,0x004a,0x0050,0x0020,0x0028,
788 0x004a,0x0049,0x0053,0x0029,0x0020,
789 0x3092,0x0020,0x0071,0x0075,0x006f,
790 0x0074,0x0065,0x0064,0x002d,0x0070,
791 0x0072,0x0069,0x006e,0x0074,0x0061,
792 0x0062,0x006c,0x0065,0x3067,0x7b26,
793 0x53f7,0x5316,0x000d,0x000a,0x000d,
794 0x000a,0x0020,0x0020,0x0062,0x006b,
795 0x0065,0x0075,0x0063,0x002e,0x0074,
796 0x0078,0x0074,0x0020,0x002d,0x002d,
797 0x002d,0x002d,0x0020,0x58ca,0x308c,
798 0x305f,0x0045,0x0055,0x0043,0x002d,
799 0x004a,0x0050,0x0020,0x0020,0x0020,
800 0x0020,0x0020,0x0020,0x5148,0x982d,
801 0x30d3,0x30c3,0x30c8,0x304c,0x30bc,
802 0x30ed,0x000d,0x000a,0x0020,0x0020,
803 0x0062,0x006b,0x006a,0x0069,0x0073,
804 0x002e,0x0074,0x0078,0x0074,0x0020,
805 0x002d,0x002d,0x002d,0x002d,0x0020,
806 0x58ca,0x308c,0x305f,0x004a,0x0049,
807 0x0053,0x0020,0x0020,0x0020,0x0020,
808 0x0020,0x0020,0x0020,0x0020,0x0020,
809 0x0045,0x0053,0x0043,0x30b3,0x30fc,
810 0x30c9,0x304c,0x6b20,0x3051,0x305f,
811 0x000d,0x000a,0x0020,0x0020,0x0062,
812 0x006b,0x0073,0x006a,0x0069,0x0073,
813 0x002e,0x0074,0x0078,0x0074,0x002d,
814 0x002d,0x002d,0x002d,0x0020,0x58ca,
815 0x308c,0x305f,0x0053,0x0068,0x0069,
816 0x0066,0x0074,0x005f,0x004a,0x0049,
817 0x0053,0x0020,0x0020,0x0020,0x5148,
818 0x982d,0x30d3,0x30c3,0x30c8,0x304c,
819 0x30bc,0x30ed,0x000d,0x000a,0x000d,
820 0x000a,0x0020,0x0020,0x0063,0x0074,
821 0x0072,0x006c,0x005f,0x007a,0x002e,
822 0x0074,0x0078,0x0074,0x0020,0x0020,
823 0x0020,0x0020,0x0020,0x0053,0x0068,
824 0x0069,0x0066,0x0074,0x005f,0x004a,
825 0x0049,0x0053,0x0020,0x0020,0x0020,
826 0x0020,0x0020,0x0020,0x005e,0x005a,
827 0x30ad,0x30e3,0x30e9,0x30af,0x30bf,
828 0x4ed8,0x304d,0x0020,0x0020,0x0020,
829 0x0028,0x0044,0x004f,0x0053,0x98a8,
830 0x0029,0x000d,0x000a,0x0020,0x0020,
831 0x006d,0x0061,0x0063,0x0074,0x0078,
832 0x0074,0x002e,0x0062,0x0069,0x006e,
833 0x0020,0x0020,0x0020,0x0020,0x0020,
834 0x30de,0x30c3,0x30af,0x30d0,0x30a4,
835 0x30ca,0x30ea,0x0049,0x0049,0x30d5,
836 0x30a9,0x30fc,0x30de,0x30c3,0x30c8,
837 0x000d,0x000a
838 };
839 #endif
840
841 struct iconv_data
842 {
843 size_t len;
844 char *name;
845 char *data;
846 };
847
848 #define CONVERSIONS 4
849
850 static const struct iconv_data data[] =
851 {
852 #if defined(_ICONV_FROM_ENCODING_EUC_JP) && defined(_ICONV_TO_ENCODING_EUC_JP)
853 {sizeof(euc_jp), "EUC-JP", (char *)euc_jp},
854 #endif
855 #if defined(_ICONV_FROM_ENCODING_SHIFT_JIS) && defined(_ICONV_TO_ENCODING_SHIFT_JIS)
856 {sizeof(shift_jis), "SHIFT-JIS", (char *)shift_jis},
857 #endif
858 #if defined(_ICONV_FROM_ENCODING_UTF_8) && defined(_ICONV_TO_ENCODING_UTF_8)
859 {sizeof(utf8), "UTF-8", (char *)utf8},
860 #endif
861 #if defined(_ICONV_FROM_ENCODING_UCS_2_INTERNAL) && defined(_ICONV_TO_ENCODING_UCS_2_INTERNAL)
862 {sizeof(ucs2), "UCS-2-INTERNAL", (char *)ucs2},
863 #endif
864 {0, NULL, NULL}
865 };
866
867 #define OUTBUF_LEN 2800
868 char ob[OUTBUF_LEN];
869
870 iconv_t descs[CONVERSIONS*CONVERSIONS];
871
872 #define ERROR 0
873
874 #ifndef TEST_NLSPATH
875 #define TEST_NLSPATH "./"
876 #endif
877
main(void)878 int main(void)
879 {
880 int i, j, d = 0;
881 unsigned k;
882 size_t n;
883 char *outbuf, *inbuf;
884 int conversions = sizeof(data)/sizeof(struct iconv_data) - 1;
885
886 CHECK(setenv("NLSPATH", TEST_NLSPATH, 0) != -1);
887
888 puts("JP iconv test");
889
890 for (i = 0; i < conversions; i++)
891 {
892 for (j = 0; j < conversions; j++)
893 {
894 descs[d] = iconv_open(data[j].name, data[i].name);
895 if (descs[d++] == (iconv_t)-1)
896 {
897 printf("iconv_open(%s, %s)\n", data[i].name, data[j].name);
898 perror("");
899 CHECK(ERROR);
900 }
901 }
902 }
903
904 d = 0;
905 for (i = 0; i < conversions; i++)
906 {
907 for (j = 0; j < conversions; j++)
908 {
909 size_t inbytes = data[i].len;
910 size_t outbytes = OUTBUF_LEN;
911 inbuf = data[i].data;
912 outbuf = (char *)ob;
913
914 if (iconv(descs[d], NULL, NULL, (char **)&outbuf, &outbytes) == (size_t)-1)
915 {
916 perror("Can't reset shift state");
917 CHECK(ERROR);
918 }
919
920 n = iconv(descs[d++], (const char **)&(inbuf), &inbytes,
921 (char **)&outbuf, &outbytes);
922 if (n == (size_t)-1)
923 {
924 printf("Conversion from %s to %s FAILED - iconv() "
925 "returned -1\n", data[i].name, data[j].name);
926 perror("");
927 CHECK(ERROR);
928 }
929
930 if (data[j].len != OUTBUF_LEN - outbytes)
931 {
932 printf("Conversion from %s to %s FAILED",
933 data[i].name, data[j].name);
934 printf(" - bad output buffer length (%ld instead of %lu)\n",
935 OUTBUF_LEN - (long) outbytes, (unsigned long) data[j].len);
936 CHECK(ERROR);
937 }
938
939 for (k = 0; k < data[j].len; k++)
940 {
941 if (ob[k] != data[j].data[k])
942 {
943 printf("Conversion from %s to %s FAILED",
944 data[i].name, data[j].name);
945 printf("Error: byte %d is wrong\n", k);
946 printf("outbuf value: %#x, inbuf value %#x, "
947 "right value: %#x\n",
948 (int)ob[k], (int)(data[i].data[k]),
949 (int)(data[j].data[k]));
950 CHECK(ERROR);
951 }
952 }
953
954 printf("iconv from %s to %s was successfully done\n",
955 data[i].name, data[j].name);
956
957 }
958 }
959
960 d = 0;
961 for (i = 0; i < conversions; i++)
962 for (j = 0; j < conversions; j++)
963 CHECK(iconv_close(descs[d++]) != -1);
964
965 exit(0);
966 }
967
968 #else /* #if defined(_ICONV_FROM_ENCODING_UTF_8) || ... */
main(void)969 int main(void)
970 {
971 puts("None of UTF-8, EUC-JP, SHIFT-JIS and UCS-2_INTERNAL converters "
972 "linked, SKIP test");
973 exit(0);
974 }
975 #endif /* #if defined(_ICONV_FROM_ENCODING_UTF_8) || ... */
976