зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
0f063f74b8
Коммит
23c8d215b6
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче