Merge "[4.0] new linebreak patch" into tizen_4.0
authorminho.sun <minho.sun@samsung.com>
Wed, 24 Jan 2018 12:21:38 +0000 (12:21 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Wed, 24 Jan 2018 12:21:39 +0000 (12:21 +0000)
text/dali/internal/libunibreak/linebreak.c

index 62a8104..625d972 100644 (file)
@@ -535,7 +535,38 @@ static int get_lb_result_lookup(
     int brk = LINEBREAK_UNDEFINED;
     assert((lbpCtx->lbcCur > 0) && (lbpCtx->lbcCur <= LBP_RI));
     assert((lbpCtx->lbcNew > 0) && (lbpCtx->lbcNew <= LBP_RI));
-    switch (baTable[lbpCtx->lbcCur - 1][lbpCtx->lbcNew - 1])
+
+    enum LineBreakClass lbcCur, lbcNew;
+
+    switch (lbpCtx->lbcCur)
+    {
+    case LBP_H2:        /**< Hangul LV */
+    case LBP_H3:        /**< Hangul LVT */
+    case LBP_JL:        /**< Hangul L Jamo */
+    case LBP_JV:        /**< Hangul V Jamo */
+    case LBP_JT:        /**< Hangul T Jamo */
+        lbcCur = LBP_AL;
+        break;
+    default:
+        lbcCur = lbpCtx->lbcCur;
+        break;
+    }
+
+    switch (lbpCtx->lbcNew)
+    {
+    case LBP_H2:        /**< Hangul LV */
+    case LBP_H3:        /**< Hangul LVT */
+    case LBP_JL:        /**< Hangul L Jamo */
+    case LBP_JV:        /**< Hangul V Jamo */
+    case LBP_JT:        /**< Hangul T Jamo */
+        lbcNew = LBP_AL;
+        break;
+    default:
+        lbcNew = lbpCtx->lbcNew;
+        break;
+    }
+
+    switch (baTable[lbcCur - 1][lbcNew - 1])
     {
     case DIR_BRK:
         brk = LINEBREAK_ALLOWBREAK;
@@ -555,6 +586,7 @@ static int get_lb_result_lookup(
         brk = LINEBREAK_NOBREAK;
         break;
     }
+
     lbpCtx->lbcCur = lbpCtx->lbcNew;
     return brk;
 }