From 4c5a9df663f6f758929037dfdfabe883c277615c Mon Sep 17 00:00:00 2001 From: "ftang%netscape.com" Date: Wed, 30 Sep 1998 12:16:01 +0000 Subject: [PATCH] check in latest koiu patch. Thanks Dmitry Kohmany dk+mozilla@farm.org from the net git-svn-id: svn://10.0.0.236/trunk@11554 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/lib/libi18n/fe_ccc.c | 11 ++- mozilla/lib/libi18n/mime2fun.c | 2 + mozilla/lib/libi18n/sbconvtb.c | 124 +++++++++++++++++++++++++++++++++ 3 files changed, 136 insertions(+), 1 deletion(-) diff --git a/mozilla/lib/libi18n/fe_ccc.c b/mozilla/lib/libi18n/fe_ccc.c index 2c4cebe6dcd..b00caa63acd 100644 --- a/mozilla/lib/libi18n/fe_ccc.c +++ b/mozilla/lib/libi18n/fe_ccc.c @@ -537,7 +537,16 @@ MODULE_PRIVATE cscvt_t cscvt_tbl[] = { {CS_KOI8_R, CS_CP_1251, 0, (CCCFunc)One2OneCCC, 0}, /* UKRAINIAN */ - {CS_KOI8_U, CS_KOI8_U, 0, (CCCFunc)0, 0}, + {CS_KOI8_U, CS_KOI8_U, 0, (CCCFunc)0, 0}, + {CS_KOI8_U, CS_KOI8_R, 0, (CCCFunc)One2OneCCC, 0}, + {CS_KOI8_R, CS_KOI8_U, 0, (CCCFunc)One2OneCCC, 0}, + {CS_KOI8_U, CS_8859_5, 0, (CCCFunc)One2OneCCC, 0}, + {CS_8859_5, CS_KOI8_U, 0, (CCCFunc)One2OneCCC, 0}, + {CS_KOI8_U, CS_MAC_CYRILLIC, 0, (CCCFunc)One2OneCCC, 0}, + {CS_MAC_CYRILLIC, CS_KOI8_U, 0, (CCCFunc)One2OneCCC, 0}, + {CS_KOI8_U, CS_CP_1251, 0, (CCCFunc)One2OneCCC, 0}, + {CS_CP_1251, CS_KOI8_U, 0, (CCCFunc)One2OneCCC, 0}, + /* ARMENIAN */ {CS_ARMSCII8, CS_ARMSCII8, 0, (CCCFunc)0, 0}, diff --git a/mozilla/lib/libi18n/mime2fun.c b/mozilla/lib/libi18n/mime2fun.c index 7c9d3779f30..e8ea5d2e164 100644 --- a/mozilla/lib/libi18n/mime2fun.c +++ b/mozilla/lib/libi18n/mime2fun.c @@ -68,6 +68,8 @@ PRIVATE cs_csid_map_t cs_mime_csidmap_tbl[] = { {CS_KOI8_R, CS_KOI8_R }, {CS_MAC_CYRILLIC, CS_KOI8_R }, {CS_CP_1251, CS_KOI8_R }, + + {CS_KOI8_U, CS_KOI8_U }, {CS_8859_7, CS_8859_7 }, {CS_CP_1253, CS_8859_7 }, diff --git a/mozilla/lib/libi18n/sbconvtb.c b/mozilla/lib/libi18n/sbconvtb.c index da834cf41e3..931686db882 100644 --- a/mozilla/lib/libi18n/sbconvtb.c +++ b/mozilla/lib/libi18n/sbconvtb.c @@ -126,6 +126,104 @@ PRIVATE unsigned char cp1250_to_iso8859_2[] = { }; PRIVATE char *cp1250_to_iso8859_2_p = (char*)cp1250_to_iso8859_2; +/* Translation 8859-5.txt -> koi8u.txt + * There are total 55 character unmap !! + */ +PRIVATE unsigned char iso8859_5_to_koi8u[] = { +/*8x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', +/*9x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', +/*Ax*/ 0x9A,0xB3, '?', '?',0xB4, '?',0xB6,0xB7, '?', '?', '?', '?', '?', '?', '?', '?', +/*Bx*/ 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, +/*Cx*/ 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE,0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1, +/*Dx*/ 0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, +/*Ex*/ 0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE,0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1, +/*Fx*/ '?',0xA3, '?', '?',0xA4, '?',0xA6,0xA7, '?', '?', '?', '?', '?', '?', '?', '?', +}; +PRIVATE char *iso8859_5_to_koi8u_p = (char*)iso8859_5_to_koi8u; + +/* Translation koi8u.txt -> 8859-5.txt + * There are total 55 character unmap !! + */ +PRIVATE unsigned char koi8u_to_iso8859_5[] = { +/*8x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', +/*9x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?',0xA0, '?', '?', '?', '?', '?', +/*Ax*/ '?', '?', '?',0xF1,0xF4, '?',0xF6,0xF7, '?', '?', '?', '?', '?', '?', '?', '?', +/*Bx*/ '?', '?', '?',0xA1,0xA4, '?',0xA6,0xA7, '?', '?', '?', '?', '?', '?', '?', '?', +/*Cx*/ 0xEE,0xD0,0xD1,0xE6,0xD4,0xD5,0xE4,0xD3,0xE5,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE, +/*Dx*/ 0xDF,0xEF,0xE0,0xE1,0xE2,0xE3,0xD6,0xD2,0xEC,0xEB,0xD7,0xE8,0xED,0xE9,0xE7,0xEA, +/*Ex*/ 0xCE,0xB0,0xB1,0xC6,0xB4,0xB5,0xC4,0xB3,0xC5,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE, +/*Fx*/ 0xBF,0xCF,0xC0,0xC1,0xC2,0xC3,0xB6,0xB2,0xCC,0xCB,0xB7,0xC8,0xCD,0xC9,0xC7,0xCA, +}; +PRIVATE char *koi8u_to_iso8859_5_p = (char*)koi8u_to_iso8859_5; + +/* Translation cp1251.txt -> koi8u.txt */ +/* There are total 40 character unmap !! */ +PRIVATE unsigned char cp1251_to_koi8u[] = { +/*8x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', +/*9x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', +/*Ax*/ 0x9A, '?', '?', '?', '?',0xBD, '?', '?',0xB3,0xBf,0xB4, '?', '?', '?', '?',0xB7, +/*Bx*/ 0x9C, '?',0xB6,0xA6,0xAD, '?', '?',0x9E,0xA3, '?',0xA4, '?', '?', '?', '?',0xA7, +/*Cx*/ 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, +/*Dx*/ 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE,0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1, +/*Ex*/ 0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0, +/*Fx*/ 0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE,0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1, +}; +PRIVATE char *cp1251_to_koi8u_p = (char*)cp1251_to_koi8u; + +/* Translation koi8u.txt -> cp1251.txt */ +/* There are total 40 character unmap !! */ +PRIVATE unsigned char koi8u_to_cp1251[] = { +/*8x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', +/*9x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?',0xA0, '?',0xB0, '?',0xB7, '?', +/*Ax*/ '?', '?', '?',0xB8,0xBA, '?',0xB3,0xBF, '?', '?', '?', '?', '?',0xB4, '?', '?', +/*Bx*/ '?', '?', '?',0xA8,0xAA, '?',0xB2,0xAF, '?', '?', '?', '?', '?',0xA5, '?',0xA9, +/*Cx*/ 0xFE,0xE0,0xE1,0xF6,0xE4,0xE5,0xF4,0xE3,0xF5,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE, +/*Dx*/ 0xEF,0xFF,0xF0,0xF1,0xF2,0xF3,0xE6,0xE2,0xFC,0xFB,0xE7,0xF8,0xFD,0xF9,0xF7,0xFA, +/*Ex*/ 0xDE,0xC0,0xC1,0xD6,0xC4,0xC5,0xD4,0xC3,0xD5,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE, +/*Fx*/ 0xCF,0xDF,0xD0,0xD1,0xD2,0xD3,0xC6,0xC2,0xDC,0xDB,0xC7,0xD8,0xDD,0xD9,0xD7,0xDA, +}; +PRIVATE char *koi8u_to_cp1251_p = (char*)koi8u_to_cp1251; + +/* Translation koi8u.txt -> koi8r.txt and koi8r.txt -> koi8u.txt */ +PRIVATE unsigned char koi8u_to_from_koi8r[] = { +/*8x*/ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, +/*9x*/ 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, +/*Ax*/ 0xA0,0xA1,0xA2,0xA3, '?',0xA5, '?', '?',0xA8,0xA9,0xAA,0xAB,0xAC, '?',0xAE,0xAF, +/*Bx*/ 0xB0,0xB1,0xB2,0xB3, '?',0xB5, '?', '?',0xB8,0xB9,0xBA,0xBB,0xBC, '?',0xBE,0xBF, +/*Cx*/ 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +/*Dx*/ 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, +/*Ex*/ 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +/*Fx*/ 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, +}; +PRIVATE char *koi8u_to_from_koi8r_p = (char*)koi8u_to_from_koi8r; + +/* Translation koi8u.txt -> maccyr.txt */ +/* There are total 46 character unmap !! */ +PRIVATE unsigned char koi8u_to_maccyr[] = { +/*8x*/ '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', +/*9x*/ '?', '?', '?', '?', '?', '?',0xC3,0xC5,0xB2,0xB3,0xCA, '?',0xA1, '?', '?',0xD6, +/*Ax*/ '?', '?', '?',0xDE,0xB9, '?',0xB4,0xBB, '?', '?', '?', '?', '?',0xB6, '?', '?', +/*Bx*/ '?', '?', '?',0xDD,0xB8, '?',0xA7,0xBA, '?', '?', '?', '?', '?',0xA2, '?',0xA9, +/*Cx*/ 0xFE,0xE0,0xE1,0xF6,0xE4,0xE5,0xF4,0xE3,0xF5,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE, +/*Dx*/ 0xEF,0xDF,0xF0,0xF1,0xF2,0xF3,0xE6,0xE2,0xFC,0xFB,0xE7,0xF8,0xFD,0xF9,0xF7,0xFA, +/*Ex*/ 0x9E,0x80,0x81,0x96,0x84,0x85,0x94,0x83,0x95,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E, +/*Fx*/ 0x8F,0x9F,0x90,0x91,0x92,0x93,0x86,0x82,0x9C,0x9B,0x87,0x98,0x9D,0x99,0x97,0x9A, +}; +PRIVATE char *koi8u_to_maccyr_p = (char*)koi8u_to_maccyr; + +/* Translation maccyr.txt -> koi8u.txt */ +/* There are total 46 character unmap !! */ +PRIVATE unsigned char maccyr_to_koi8u[] = { +/*8x*/ 0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0, +/*9x*/ 0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE,0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1, +/*Ax*/ '?',0x9C,0xBD, '?', '?', '?', '?',0xB6, '?',0xBF, '?', '?', '?', '?', '?', '?', +/*Bx*/ '?', '?',0x98,0x99,0xA6, '?',0xAD, '?',0xB4,0xA4,0xB7,0xA7, '?', '?', '?', '?', +/*Cx*/ '?', '?', '?',0x96, '?',0x97, '?', '?', '?', '?',0x9A, '?', '?', '?', '?', '?', +/*Dx*/ '?', '?', '?', '?', '?', '?', '?',0x9F, '?', '?', '?', '?', '?', '?',0xB3,0xA3, +/*Ex*/ 0xD1,0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, +/*Fx*/ 0xD0,0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE,0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0, +}; +PRIVATE char *maccyr_to_koi8u_p = (char*)maccyr_to_koi8u; /* Translation 8859-2 -> cp1250 * There are 32 characters unmapped: 80 - 8F, 90 - 9F @@ -268,6 +366,32 @@ INTL_GetSingleByteTable(int16 from_csid, int16 to_csid, int32 resourceid) return &koi8r_to_cp1251_p; } + /* UKRAINIAN */ + else if ((from_csid == CS_KOI8_R) && (to_csid == CS_KOI8_U)) { + return &koi8u_to_from_koi8r_p; + } + else if ((from_csid == CS_KOI8_U) && (to_csid == CS_KOI8_R)) { + return &koi8u_to_from_koi8r_p; + } + else if ((from_csid == CS_8859_5) && (to_csid == CS_KOI8_U)) { + return &iso8859_5_to_koi8u_p; + } + else if ((from_csid == CS_KOI8_U) && (to_csid == CS_8859_5)) { + return &koi8u_to_iso8859_5_p; + } + else if ((from_csid == CS_KOI8_U) && (to_csid == CS_CP_1251)) { + return &koi8u_to_cp1251_p; + } + else if ((from_csid == CS_CP_1251) && (to_csid == CS_KOI8_U)) { + return &cp1251_to_koi8u_p; + } + else if ((from_csid == CS_MAC_CYRILLIC) && (to_csid == CS_KOI8_U)) { + return &maccyr_to_koi8u_p; + } + else if ((from_csid == CS_KOI8_U) && (to_csid == CS_MAC_CYRILLIC)) { + return &koi8u_to_maccyr_p; + } + /* GREEK */ else if ((from_csid == CS_8859_7) && (to_csid == CS_CP_1253)) { return &iso8859_7_to_cp1253_p;