21#define RET_TOOFEW(x) (-10 - x) 
   22#define RET_TOOSMALL -2 
   24#define ucs4_t unsigned int 
   31#include "lcUniConv/cp936ext.h" 
   32#include "lcUniConv/big5.h" 
   33#include "lcUniConv/gb2312.h" 
   34#include "lcUniConv/iso8859_10.h" 
   35#include "lcUniConv/iso8859_11.h" 
   36#include "lcUniConv/iso8859_13.h" 
   37#include "lcUniConv/iso8859_14.h" 
   38#include "lcUniConv/iso8859_15.h" 
   39#include "lcUniConv/iso8859_2.h" 
   40#include "lcUniConv/iso8859_3.h" 
   41#include "lcUniConv/iso8859_4.h" 
   42#include "lcUniConv/iso8859_5.h" 
   43#include "lcUniConv/iso8859_6.h" 
   44#include "lcUniConv/iso8859_7.h" 
   45#include "lcUniConv/iso8859_8.h" 
   46#include "lcUniConv/iso8859_9.h" 
   47#include "lcUniConv/jisx0201.h" 
   48#include "lcUniConv/jisx0208.h" 
   49#include "lcUniConv/jisx0212.h" 
   50#include "lcUniConv/koi8_r.h" 
   51#include "lcUniConv/koi8_u.h" 
   52#include "lcUniConv/ksc5601.h" 
   53#include "lcUniConv/cp1251.h" 
   54#include "headers/symbol_.h" 
   55#include "headers/dingbats_.h" 
   60static int ucs2fontmap(
char *s, 
unsigned int ucs, 
int enc) {
 
   63    s[0] = (char) ((ucs & 0xFF00) >> 8);
 
   64    s[1] = (char) (ucs & 0xFF);
 
   70        s[1] = (char) (ucs & 0xFF);
 
   80    } 
else if (ucs < 0x0180) {
 
   83        s[1] = (char)  iso8859_2_page00[ucs-0x00a0];
 
   86    } 
else if (ucs < 0x02e0) {
 
   89        s[1] = (char) iso8859_2_page02[ucs-0x02c0];
 
   95    if (iso8859_3_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  100    if (iso8859_4_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  105    if (iso8859_5_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  110    if (iso8859_6_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  115    if (iso8859_7_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  120    if (iso8859_8_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  125    if (iso8859_9_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  130    if (iso8859_10_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  135    if (iso8859_11_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  140    if (iso8859_13_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  145    if (iso8859_14_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  150    if (iso8859_15_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  155    if (koi8_r_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  160    if (big5_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  165    if (ksc5601_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  170    if (gb2312_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  175    if (jisx0201_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  180    if (jisx0208_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  185    if (jisx0212_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  193        s[1] = unicode_to_symbol_1b_0020[ucs - 0x0020];
 
  196    } 
else if (ucs <= 0x0192) {
 
  199        s[1] = unicode_to_symbol_1b_0192[ucs - 0x0192];
 
  202    } 
else if (ucs <= 0x03D6) {
 
  205        s[1] = unicode_to_symbol_1b_0391[ucs - 0x0391];
 
  208    } 
else if (ucs <= 0x232A) {
 
  211        s[1] = unicode_to_symbol_1b_2022[ucs - 0x2022];
 
  214    } 
else if (ucs <= 0x25CA) {
 
  217        s[1] = unicode_to_symbol_1b_25CA[ucs - 0x25CA];
 
  220    } 
else if (ucs <= 0x2666) {
 
  223        s[1] = unicode_to_symbol_1b_2660[ucs - 0x2660];
 
  226    } 
else if (ucs <= 0xF6DB) {
 
  229        s[1] = unicode_to_symbol_1b_F6D9[ucs - 0xF6D9];
 
  232    } 
else if (ucs <= 0xF8FE) {
 
  235        s[1] = unicode_to_symbol_1b_F8E5[ucs - 0xF8E5];
 
  244        s[1] = unicode_to_dingbats_1b_0020[ucs - 0x0020];
 
  247    } 
else if (ucs <= 0x2195) {
 
  250        s[1] = unicode_to_dingbats_1b_2192[ucs - 0x2192];
 
  253    } 
else if (ucs <= 0x2469) {
 
  256        s[1] = unicode_to_dingbats_1b_2460[ucs - 0x2460];
 
  259    } 
else if (ucs <= 0x2666) {
 
  262        s[1] = unicode_to_dingbats_1b_25A0[ucs - 0x25A0];
 
  265    } 
else if (ucs <= 0x27BE) {
 
  268        s[1] = unicode_to_dingbats_1b_2701[ucs - 0x2701];
 
  271    } 
else if (ucs <= 0xF8E4) {
 
  274        s[1] = unicode_to_dingbats_1b_F8D7[ucs - 0xF8D7];
 
  280    if (koi8_u_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  285    if (cp1251_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  290    if (cp936ext_wctomb(NULL, (
unsigned char*)s, ucs, 2) > 0) {
 
  301static int encoding_number(
const char *enc) {
 
  302  if (!enc || !strncmp(enc, 
"iso10646-1", 10)) {
 
  304  } 
else if (!strcmp(enc, 
"iso8859-1")) {
 
  306  } 
else if (!strcmp(enc, 
"iso8859-2")) {
 
  308  } 
else if (!strcmp(enc, 
"iso8859-3")) {
 
  310  } 
else if (!strcmp(enc, 
"iso8859-4")) {
 
  312  } 
else if (!strcmp(enc, 
"iso8859-5")) {
 
  314  } 
else if (!strcmp(enc, 
"iso8859-6")) {
 
  316  } 
else if (!strcmp(enc, 
"iso8859-7")) {
 
  318  } 
else if (!strcmp(enc, 
"iso8859-8")) {
 
  320  } 
else if (!strcmp(enc, 
"iso8859-9")) {
 
  322  } 
else if (!strcmp(enc, 
"iso8859-10")) {
 
  324  } 
else if (!strcmp(enc, 
"iso8859-13")) {
 
  326  } 
else if (!strcmp(enc, 
"iso8859-14")) {
 
  328  } 
else if (!strcmp(enc, 
"iso8859-15")) {
 
  330  } 
else if (!strcmp(enc, 
"koi8-r")) {
 
  332  } 
else if (!strcmp(enc, 
"big5-0") || !strcmp(enc, 
"big5.eten-0") ||
 
  333    !strcmp(enc, 
"big5p-0")) 
 
  336  } 
else if (!strcmp(enc, 
"ksc5601.1987-0")) {
 
  338  } 
else if (!strcmp(enc, 
"gb2312.1980-0") || !strcmp(enc, 
"gb2312.80-0") || 
 
  339     !strcmp(enc, 
"gb2312.80&gb8565.88") ||  !strcmp(enc, 
"gb2312.80-0")) 
 
  342  } 
else if (!strcmp(enc, 
"jisx0201.1976-0")) {
 
  344  } 
else if (!strcmp(enc, 
"jisx0208.1983-0") || !strcmp(enc, 
"jisx0208.1990-0")
 
  345    || !strcmp(enc, 
"jisx0208.1978-0")) 
 
  348  } 
else if (!strcmp(enc, 
"jisx0212.1990-0")) {
 
  350  } 
else if (!strcmp(enc, 
"symbol")) {
 
  352  } 
else if (!strcmp(enc, 
"dingbats") || !strcmp(enc, 
"zapfdingbats") || 
 
  353    !strcmp(enc, 
"zapf dingbats") || !strcmp(enc, 
"itc zapf dingbats")) 
 
  356  } 
else if (!strcmp(enc, 
"koi8-u")) {
 
  358  } 
else if (!strcmp(enc, 
"microsoft-cp1251")) {
 
  360  } 
else if (!strcmp(enc, 
"iso8859-11")) {
 
  362  } 
else if (!strcmp(enc, 
"gbk-0") || !strcmp(enc, 
"cp936") || !strcmp(enc, 
"gbk")) {