30#define RET_TOOFEW(x) (-10 - x)
31#define RET_TOOSMALL -2
33#define ucs4_t unsigned int
40#include "lcUniConv/cp936ext.h"
41#include "lcUniConv/big5.h"
42#include "lcUniConv/gb2312.h"
43#include "lcUniConv/iso8859_10.h"
44#include "lcUniConv/iso8859_11.h"
45#include "lcUniConv/iso8859_13.h"
46#include "lcUniConv/iso8859_14.h"
47#include "lcUniConv/iso8859_15.h"
48#include "lcUniConv/iso8859_2.h"
49#include "lcUniConv/iso8859_3.h"
50#include "lcUniConv/iso8859_4.h"
51#include "lcUniConv/iso8859_5.h"
52#include "lcUniConv/iso8859_6.h"
53#include "lcUniConv/iso8859_7.h"
54#include "lcUniConv/iso8859_8.h"
55#include "lcUniConv/iso8859_9.h"
56#include "lcUniConv/jisx0201.h"
57#include "lcUniConv/jisx0208.h"
58#include "lcUniConv/jisx0212.h"
59#include "lcUniConv/koi8_r.h"
60#include "lcUniConv/koi8_u.h"
61#include "lcUniConv/ksc5601.h"
62#include "lcUniConv/cp1251.h"
63#include "headers/symbol_.h"
64#include "headers/dingbats_.h"
69int ucs2fontmap(
char *s,
unsigned int ucs,
int enc) {
72 s[0] = (char) ((ucs & 0xFF00) >> 8);
73 s[1] = (char) (ucs & 0xFF);
80 s[1] = (char) (ucs & 0xFF);
90 }
else if (ucs < 0x0180) {
93 s[1] = (char) iso8859_2_page00[ucs-0x00a0];
96 }
else if (ucs < 0x02e0) {
99 s[1] = (char) iso8859_2_page02[ucs-0x02c0];
105 if (iso8859_3_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
110 if (iso8859_4_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
115 if (iso8859_5_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
120 if (iso8859_6_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
125 if (iso8859_7_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
130 if (iso8859_8_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
135 if (iso8859_9_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
140 if (iso8859_10_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
145 if (iso8859_11_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
150 if (iso8859_13_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
155 if (iso8859_14_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
160 if (iso8859_15_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
165 if (koi8_r_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
170 if (big5_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
175 if (ksc5601_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
180 if (gb2312_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
185 if (jisx0201_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
190 if (jisx0208_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
195 if (jisx0212_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
203 s[1] = unicode_to_symbol_1b_0020[ucs - 0x0020];
206 }
else if (ucs <= 0x0192) {
209 s[1] = unicode_to_symbol_1b_0192[ucs - 0x0192];
212 }
else if (ucs <= 0x03D6) {
215 s[1] = unicode_to_symbol_1b_0391[ucs - 0x0391];
218 }
else if (ucs <= 0x232A) {
221 s[1] = unicode_to_symbol_1b_2022[ucs - 0x2022];
224 }
else if (ucs <= 0x25CA) {
227 s[1] = unicode_to_symbol_1b_25CA[ucs - 0x25CA];
230 }
else if (ucs <= 0x2666) {
233 s[1] = unicode_to_symbol_1b_2660[ucs - 0x2660];
236 }
else if (ucs <= 0xF6DB) {
239 s[1] = unicode_to_symbol_1b_F6D9[ucs - 0xF6D9];
242 }
else if (ucs <= 0xF8FE) {
245 s[1] = unicode_to_symbol_1b_F8E5[ucs - 0xF8E5];
254 s[1] = unicode_to_dingbats_1b_0020[ucs - 0x0020];
257 }
else if (ucs <= 0x2195) {
260 s[1] = unicode_to_dingbats_1b_2192[ucs - 0x2192];
263 }
else if (ucs <= 0x2469) {
266 s[1] = unicode_to_dingbats_1b_2460[ucs - 0x2460];
269 }
else if (ucs <= 0x2666) {
272 s[1] = unicode_to_dingbats_1b_25A0[ucs - 0x25A0];
275 }
else if (ucs <= 0x27BE) {
278 s[1] = unicode_to_dingbats_1b_2701[ucs - 0x2701];
281 }
else if (ucs <= 0xF8E4) {
284 s[1] = unicode_to_dingbats_1b_F8D7[ucs - 0xF8D7];
290 if (koi8_u_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
295 if (cp1251_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
300 if (cp936ext_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
311int encoding_number(
const char *enc) {
312 if (!enc || !strncmp(enc,
"iso10646-1", 10)) {
314 }
else if (!strcmp(enc,
"iso8859-1")) {
316 }
else if (!strcmp(enc,
"iso8859-2")) {
318 }
else if (!strcmp(enc,
"iso8859-3")) {
320 }
else if (!strcmp(enc,
"iso8859-4")) {
322 }
else if (!strcmp(enc,
"iso8859-5")) {
324 }
else if (!strcmp(enc,
"iso8859-6")) {
326 }
else if (!strcmp(enc,
"iso8859-7")) {
328 }
else if (!strcmp(enc,
"iso8859-8")) {
330 }
else if (!strcmp(enc,
"iso8859-9")) {
332 }
else if (!strcmp(enc,
"iso8859-10")) {
334 }
else if (!strcmp(enc,
"iso8859-13")) {
336 }
else if (!strcmp(enc,
"iso8859-14")) {
338 }
else if (!strcmp(enc,
"iso8859-15")) {
340 }
else if (!strcmp(enc,
"koi8-r")) {
342 }
else if (!strcmp(enc,
"big5-0") || !strcmp(enc,
"big5.eten-0") ||
343 !strcmp(enc,
"big5p-0"))
346 }
else if (!strcmp(enc,
"ksc5601.1987-0")) {
348 }
else if (!strcmp(enc,
"gb2312.1980-0") || !strcmp(enc,
"gb2312.80-0") ||
349 !strcmp(enc,
"gb2312.80&gb8565.88") || !strcmp(enc,
"gb2312.80-0"))
352 }
else if (!strcmp(enc,
"jisx0201.1976-0")) {
354 }
else if (!strcmp(enc,
"jisx0208.1983-0") || !strcmp(enc,
"jisx0208.1990-0")
355 || !strcmp(enc,
"jisx0208.1978-0"))
358 }
else if (!strcmp(enc,
"jisx0212.1990-0")) {
360 }
else if (!strcmp(enc,
"symbol")) {
362 }
else if (!strcmp(enc,
"dingbats") || !strcmp(enc,
"zapfdingbats") ||
363 !strcmp(enc,
"zapf dingbats") || !strcmp(enc,
"itc zapf dingbats"))
366 }
else if (!strcmp(enc,
"koi8-u")) {
368 }
else if (!strcmp(enc,
"microsoft-cp1251")) {
370 }
else if (!strcmp(enc,
"iso8859-11")) {
372 }
else if (!strcmp(enc,
"gbk-0") || !strcmp(enc,
"cp936") || !strcmp(enc,
"gbk")) {