From a9b30841b91736790600256b5db906cb2131ed63 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Tue, 29 May 2012 05:38:28 +0300 Subject: [PATCH] QTBF: fix the mandatory line breaks not being set in some cases e.g. for the text "Aaa bbb ccc.\r\nDdd eee fff." the \r\n wasn't treated as a hard line break or as a line break opportunity, ever. Quite ancient bug... Change-Id: I8d8497c55a3a4d51c27de99ccfe1e31f3bf4de77 Reviewed-by: Lars Knoll --- src/corelib/tools/qunicodetools.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/corelib/tools/qunicodetools.cpp b/src/corelib/tools/qunicodetools.cpp index 0b78401..e503ecd 100644 --- a/src/corelib/tools/qunicodetools.cpp +++ b/src/corelib/tools/qunicodetools.cpp @@ -188,10 +188,11 @@ static void calcGraphemeAndLineBreaks(const ushort *string, quint32 len, HB_Char attributes[i].whiteSpace = true; HB_LineBreakType lineBreakType = HB_NoBreak; - if (cls >= QUnicodeTables::LineBreak_LF) { - lineBreakType = HB_ForcedBreak; - } else if (cls == QUnicodeTables::LineBreak_CR) { - lineBreakType = (ncls == QUnicodeTables::LineBreak_LF) ? HB_NoBreak : HB_ForcedBreak; + + if (cls >= QUnicodeTables::LineBreak_CR) { + if (cls > QUnicodeTables::LineBreak_CR || ncls != QUnicodeTables::LineBreak_LF) + lineBreakType = HB_ForcedBreak; + goto next; } if (ncls == QUnicodeTables::LineBreak_SP) -- 2.7.4