[4.0] new linebreak patch 53/168153/2
authorminho.sun <minho.sun@samsung.com>
Wed, 24 Jan 2018 11:42:38 +0000 (20:42 +0900)
committerminho.sun <minho.sun@samsung.com>
Wed, 24 Jan 2018 12:11:24 +0000 (21:11 +0900)
Change-Id: I17a3d412aa9268924cc39ae3737b29681282148d
Signed-off-by: minho.sun <minho.sun@samsung.com>
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;
 }