diff options
Diffstat (limited to 'tools/codepages.c')
-rw-r--r-- | tools/codepages.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/tools/codepages.c b/tools/codepages.c index 9c214397de..fb01c4dfb3 100644 --- a/tools/codepages.c +++ b/tools/codepages.c | |||
@@ -25,8 +25,8 @@ | |||
25 | 25 | ||
26 | #define MAX_TABLE_SIZE 32768 | 26 | #define MAX_TABLE_SIZE 32768 |
27 | 27 | ||
28 | static const int mini_index[6] = { | 28 | static const int mini_index[7] = { |
29 | 0, 1, 3, 6, 7, 8 | 29 | 0, 1, 3, 6, 7, 8, 9 |
30 | }; | 30 | }; |
31 | 31 | ||
32 | static unsigned short iso_table[MAX_TABLE_SIZE]; | 32 | static unsigned short iso_table[MAX_TABLE_SIZE]; |
@@ -140,7 +140,7 @@ unsigned short iso_decode(unsigned char *latin1, int cp, int count) | |||
140 | ucs = iso8859_2_to_uni[*latin1++ - 0xA1]; | 140 | ucs = iso8859_2_to_uni[*latin1++ - 0xA1]; |
141 | } | 141 | } |
142 | break; | 142 | break; |
143 | 143 | ||
144 | case 0x08: /* Central European (CP1250) */ | 144 | case 0x08: /* Central European (CP1250) */ |
145 | while (count--) { | 145 | while (count--) { |
146 | /* first convert to unicode */ | 146 | /* first convert to unicode */ |
@@ -150,7 +150,17 @@ unsigned short iso_decode(unsigned char *latin1, int cp, int count) | |||
150 | ucs = cp1250_to_uni[*latin1++ - 0x80]; | 150 | ucs = cp1250_to_uni[*latin1++ - 0x80]; |
151 | } | 151 | } |
152 | break; | 152 | break; |
153 | 153 | ||
154 | case 0x09: /* Western European (CP1252) */ | ||
155 | while (count--) { | ||
156 | /* first convert to unicode */ | ||
157 | if (*latin1 < 0x80 || *latin1 >= 0xa0) | ||
158 | ucs = *latin1++; | ||
159 | else | ||
160 | ucs = cp1252_to_uni[*latin1++ - 0x80]; | ||
161 | } | ||
162 | break; | ||
163 | |||
154 | default: | 164 | default: |
155 | break; | 165 | break; |
156 | } | 166 | } |
@@ -209,7 +219,7 @@ int main(int argc, char **argv) | |||
209 | of = fopen("isomini.cp", "wb"); | 219 | of = fopen("isomini.cp", "wb"); |
210 | if (!of) return 1; | 220 | if (!of) return 1; |
211 | 221 | ||
212 | for (i=1; i<6; i++) { | 222 | for (i=1; i<7; i++) { |
213 | 223 | ||
214 | for (j=0; j<128; j++) { | 224 | for (j=0; j<128; j++) { |
215 | k = (unsigned char)j + 128; | 225 | k = (unsigned char)j + 128; |
@@ -223,7 +233,7 @@ int main(int argc, char **argv) | |||
223 | of = fopen("iso.cp", "wb"); | 233 | of = fopen("iso.cp", "wb"); |
224 | if (!of) return 1; | 234 | if (!of) return 1; |
225 | 235 | ||
226 | for (i=1; i<9; i++) { | 236 | for (i=1; i<10; i++) { |
227 | 237 | ||
228 | for (j=0; j<128; j++) { | 238 | for (j=0; j<128; j++) { |
229 | k = (unsigned char)j + 128; | 239 | k = (unsigned char)j + 128; |