From 9ce91d2be213c920a53cff724e74aa0536ba0eb6 Mon Sep 17 00:00:00 2001 From: "minho.sun" Date: Wed, 24 Jan 2018 20:42:38 +0900 Subject: [PATCH] [4.0] new linebreak patch Change-Id: I17a3d412aa9268924cc39ae3737b29681282148d Signed-off-by: minho.sun --- text/dali/internal/libunibreak/linebreak.c | 34 +++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/text/dali/internal/libunibreak/linebreak.c b/text/dali/internal/libunibreak/linebreak.c index 62a8104..625d972 100644 --- a/text/dali/internal/libunibreak/linebreak.c +++ b/text/dali/internal/libunibreak/linebreak.c @@ -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; } -- 2.7.4