bug 293301 : rendering of text in non-Western encoding is broken (r=sfraser, mano, sr=sfraser, a1.8b2/a1.1a = asa)

This commit is contained in:
jshin%mailaps.org 2005-05-13 22:50:23 +00:00
Родитель 0f063f74b8
Коммит 23c8d215b6
3 изменённых файлов: 58 добавлений и 20 удалений

Просмотреть файл

@ -70,6 +70,7 @@ typedef enum {
kHangul,
kBopomofo,
kEthiopic,
kKhmer,
kCanadian,
kUserDefinedEncoding,

Просмотреть файл

@ -587,9 +587,12 @@ static nsUnicodeBlock GetBlockU1XXX(PRUnichar aChar)
case 0x0e00: return kLatin;
case 0x0f00: return kGreek;
default:
{
if ((0x0200 <= aChar) && ( aChar <= 0x037c)) return kEthiopic;
else if ((0x0400 <= aChar) && ( aChar <= 0x0676)) return kCanadian;
else return kOthers;
if ((0x0400 <= aChar) && ( aChar <= 0x0676)) return kCanadian;
if ((0x0780 <= aChar) && ( aChar <= 0x07ff)) return kKhmer;
return kOthers;
}
}
}
//--------------------------------------------------------------------------

Просмотреть файл

@ -207,53 +207,86 @@ ScriptCode nsUnicodeMappingUtil::MapLangGroupToScriptCode(const char* aLangGroup
{
if(0==nsCRT::strcmp(aLangGroup, "x-western")) {
return smRoman;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "x-central-euro")) {
return smCentralEuroRoman;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "x-cyrillic")) {
return smCyrillic;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "el")) {
return smGreek;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "tr")) {
return smRoman;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "he")) {
return smHebrew;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "ar")) {
return smArabic;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "x-baltic")) {
return smRoman;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "th")) {
return smThai;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "ja")) {
return smJapanese;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "zh-CN")) {
return smSimpChinese;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "ko")) {
return smKorean;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "zh-TW")) {
return smTradChinese;
} else
// No separate script code for zh-HK. Use smTradChinese.
}
// No separate script code for zh-HK. Use smTradChinese.
if(0==nsCRT::strcmp(aLangGroup, "zh-HK")) {
return smTradChinese;
} else
}
if(0==nsCRT::strcmp(aLangGroup, "x-devanag")) {
return smDevanagari;
}
if(0==nsCRT::strcmp(aLangGroup, "x-tamil")) {
return smTamil;
}
if(0==nsCRT::strcmp(aLangGroup, "x-beng")) {
return smBengali;;
}
if(0==nsCRT::strcmp(aLangGroup, "x-armn")) {
return smArmenian;
}
if(0==nsCRT::strcmp(aLangGroup, "x-geor")) {
return smGeorgian;;
}
if(0==nsCRT::strcmp(aLangGroup, "x-gujr")) {
return smGujarati;
}
if(0==nsCRT::strcmp(aLangGroup, "x-guru")) {
return smGurmukhi;
}
if(0==nsCRT::strcmp(aLangGroup, "x-mlym")) {
return smMalayalam;
}
if(0==nsCRT::strcmp(aLangGroup, "x-khmr")) {
return smKhmer;
}
if(0==nsCRT::strcmp(aLangGroup, "x-ethi")) {
return smEthiopic;
}
if(0==nsCRT::strcmp(aLangGroup, "x-cans")) {
return (smPseudoUnicode); // XXX : no script code for UCA
}
if(0==nsCRT::strcmp(aLangGroup, "x-unicode")) {
return (smPseudoUnicode);
} else
}
if(0==nsCRT::strcmp(aLangGroup, "x-user-def")) {
return (smPseudoUserDef);
} else
}
{
return smRoman;
}
@ -409,7 +442,8 @@ void nsUnicodeMappingUtil::InitBlockToScriptMapping()
smGurmukhi, smGujarati, smOriya, smTamil,
smTelugu, smKannada, smMalayalam, smThai,
smLao, smTibetan, smGeorgian, smKorean,
smTradChinese,
smTradChinese, smEthiopic, smKhmer,
smPseudoUnicode, // for Unified Canadian Syllable
smPseudoUserDef,
// start the variable section