#include "xttversion.h"
static char const * const releaseID =
_XTT_RELEASE_NAME;
#include "xttcommon.h"
#include "xttcap.h"
#include "xttcconv.h"
#include "xttcconvP.h"
typedef enum
{
MULEARABIC0,
MULEARABIC1,
MULEARABIC2,
CP1256,
XATERM
} CharSetMagic;
static CharSetRelation const charSetRelations[] = {
{ "mulearabic", NULL, "0",
MULEARABIC0, { 0x20, 0x2a, 0, 0, 0x20 } },
{ "mulearabic", NULL, "1",
MULEARABIC1, { 0x20, 0x69, 0, 0, 0x20 } },
{ "mulearabic", NULL, "2",
MULEARABIC2, { 0x20, 0x6e, 0, 0, 0x20 } },
{ "microsoft", NULL, "cp1256",
CP1256, { 0x00, 0xff, 0, 0, 0x20 } },
{ "xaterm", NULL, "fontspecific",
XATERM, { 0x00, 0xff, 0x00, 0x01, 0x20 } },
{ NULL, NULL, NULL, 0, { 0, 0, 0, 0, 0 } }
};
CODECONV_TEMPLATE(cc_mulearabic0_to_ucs2);
CODECONV_TEMPLATE(cc_mulearabic1_to_ucs2);
CODECONV_TEMPLATE(cc_mulearabic2_to_ucs2);
CODECONV_TEMPLATE(cc_cp1256_to_ucs2);
CODECONV_TEMPLATE(cc_xaterm_to_ucs2);
CODECONV_TEMPLATE(cc_xaterm_tophalf_to_ucs2);
static MapIDRelation const mapIDRelations[] = {
{ MULEARABIC0, EPlfmISO, EEncISO10646,
cc_mulearabic0_to_ucs2, NULL },
{ MULEARABIC0, EPlfmUnicode, EEncAny,
cc_mulearabic0_to_ucs2, NULL },
{ MULEARABIC0, EPlfmMS, EEncMSUnicode,
cc_mulearabic0_to_ucs2, NULL },
{ MULEARABIC1, EPlfmISO, EEncISO10646,
cc_mulearabic1_to_ucs2, NULL },
{ MULEARABIC1, EPlfmUnicode, EEncAny,
cc_mulearabic1_to_ucs2, NULL },
{ MULEARABIC1, EPlfmMS, EEncMSUnicode,
cc_mulearabic1_to_ucs2, NULL },
{ MULEARABIC2, EPlfmISO, EEncISO10646,
cc_mulearabic2_to_ucs2, NULL },
{ MULEARABIC2, EPlfmUnicode, EEncAny,
cc_mulearabic2_to_ucs2, NULL },
{ MULEARABIC2, EPlfmMS, EEncMSUnicode,
cc_mulearabic2_to_ucs2, NULL },
{ CP1256, EPlfmISO, EEncISO10646,
cc_cp1256_to_ucs2, NULL },
{ CP1256, EPlfmUnicode, EEncAny,
cc_cp1256_to_ucs2, NULL },
{ CP1256, EPlfmMS, EEncMSUnicode,
cc_cp1256_to_ucs2, NULL },
{ XATERM, EPlfmISO, EEncISO10646,
cc_xaterm_to_ucs2, NULL },
{ XATERM, EPlfmUnicode, EEncAny,
cc_xaterm_to_ucs2, NULL },
{ XATERM, EPlfmMS, EEncMSUnicode,
cc_xaterm_to_ucs2, NULL },
{ -1, 0, 0, NULL, NULL }
};
STD_ENTRYFUNC_TEMPLATE(ARABIC_entrypoint)
ft_char_code_t
cc_xaterm_to_ucs2(ft_char_code_t codeSrc)
{
if (codeSrc <= 0x00ff) return codeSrc;
else return cc_xaterm_tophalf_to_ucs2( codeSrc & 0xff );
}