Kaydet (Commit) b087e451 authored tarafından Mark Hung's avatar Mark Hung Kaydeden (comit) Khaled Hosny

tdf#95656 fix orientation for Bopomofo tonal marks

A few Spacing Modifier Letters ( 0x2ca, 0x2c7, 0x2cb, 0x2d9 )
are used as Bopomofo tonal marks.

This patch force their vertical orientation property
to be transformed upright.

This patch also set the script type of them to WEAK
to keep them with nearby Bopomofo symbols in the same portion.

Change-Id: Ib226ebbcaf140124dee806dd6b2859150eb53f67
Reviewed-on: https://gerrit.libreoffice.org/43001Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarKhaled Hosny <khaledhosny@eglug.org>
üst 01f674a9
......@@ -481,6 +481,9 @@ bool getCompatibilityScriptClassByBlock(sal_uInt32 currentChar, sal_Int16 &rScri
// 0x20 & 0xA0 - Bug 102975, declare western space and non-break space as WEAK char.
if( 0x01 == currentChar || 0x02 == currentChar || 0x20 == currentChar || 0xA0 == currentChar)
rScriptType = ScriptType::WEAK;
// Few Spacing Modifier Letters that can be Bopomofo tonal marks.
else if ( 0x2CA == currentChar || 0x2CB == currentChar || 0x2C7 == currentChar || 0x2D9 == currentChar )
rScriptType = ScriptType::WEAK;
// workaround for Coptic
else if ( 0x2C80 <= currentChar && 0x2CE3 >= currentChar)
rScriptType = ScriptType::LATIN;
......
......@@ -309,8 +309,11 @@ namespace {
VerticalOrientation GetVerticalOrientation(sal_UCS4 cCh, const LanguageTag& rTag)
{
// Override fullwidth colon and semi-colon orientation. Tu is preferred.
if ((cCh == 0xff1a || cCh == 0xff1b) && rTag.getLanguage() == "zh")
// Override orientation of fullwidth colon , semi-colon,
// and Bopomofo tonal marks.
if ((cCh == 0xff1a || cCh == 0xff1b
|| cCh == 0x2ca || cCh == 0x2cb || cCh == 0x2c7 || cCh == 0x2d9)
&& rTag.getLanguage() == "zh")
return VerticalOrientation::TransformedUpright;
uint8_t nRet = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment