[Libreoffice-commits] core.git: i18npool/source vcl/source

Mark Hung marklh9 at gmail.com
Tue Oct 3 23:44:14 UTC 2017


 i18npool/source/breakiterator/breakiteratorImpl.cxx |    3 +++
 vcl/source/gdi/CommonSalLayout.cxx                  |    7 +++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

New commits:
commit b087e451527f2e497ccab83b63b4f10099bfb8b8
Author: Mark Hung <marklh9 at gmail.com>
Date:   Sun Oct 1 21:16:06 2017 +0800

    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/43001
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>

diff --git a/i18npool/source/breakiterator/breakiteratorImpl.cxx b/i18npool/source/breakiterator/breakiteratorImpl.cxx
index 57da598c76e1..fba56fcec7ae 100644
--- a/i18npool/source/breakiterator/breakiteratorImpl.cxx
+++ b/i18npool/source/breakiterator/breakiteratorImpl.cxx
@@ -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;
diff --git a/vcl/source/gdi/CommonSalLayout.cxx b/vcl/source/gdi/CommonSalLayout.cxx
index 8e8565717932..5055c74c58b8 100644
--- a/vcl/source/gdi/CommonSalLayout.cxx
+++ b/vcl/source/gdi/CommonSalLayout.cxx
@@ -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;


More information about the Libreoffice-commits mailing list