dwrite: Update line breaking logic with Unicode 8.0.0 modifications.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
68c45de6ae
commit
10b843bb22
@ -522,8 +522,9 @@ static HRESULT analyze_linebreaks(const WCHAR *text, UINT32 count, DWRITE_LINE_B
|
|||||||
case b_BB:
|
case b_BB:
|
||||||
set_break_condition(i, BreakConditionAfter, DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, &state);
|
set_break_condition(i, BreakConditionAfter, DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, &state);
|
||||||
break;
|
break;
|
||||||
/* LB21a */
|
/* LB21a, LB21b */
|
||||||
case b_HL:
|
case b_HL:
|
||||||
|
/* LB21a */
|
||||||
if (i < count-1)
|
if (i < count-1)
|
||||||
switch (break_class[i+1])
|
switch (break_class[i+1])
|
||||||
{
|
{
|
||||||
@ -531,6 +532,9 @@ static HRESULT analyze_linebreaks(const WCHAR *text, UINT32 count, DWRITE_LINE_B
|
|||||||
case b_BA:
|
case b_BA:
|
||||||
set_break_condition(i+1, BreakConditionAfter, DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, &state);
|
set_break_condition(i+1, BreakConditionAfter, DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, &state);
|
||||||
}
|
}
|
||||||
|
/* LB21b */
|
||||||
|
if (i > 0 && break_class[i-1] == b_SY)
|
||||||
|
set_break_condition(i, BreakConditionBefore, DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, &state);
|
||||||
break;
|
break;
|
||||||
/* LB22 */
|
/* LB22 */
|
||||||
case b_IN:
|
case b_IN:
|
||||||
@ -540,6 +544,7 @@ static HRESULT analyze_linebreaks(const WCHAR *text, UINT32 count, DWRITE_LINE_B
|
|||||||
{
|
{
|
||||||
case b_AL:
|
case b_AL:
|
||||||
case b_HL:
|
case b_HL:
|
||||||
|
case b_EX:
|
||||||
case b_ID:
|
case b_ID:
|
||||||
case b_IN:
|
case b_IN:
|
||||||
case b_NU:
|
case b_NU:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user