From 8bda8cce4b5daf0bc785401a887331182e4f2b74 Mon Sep 17 00:00:00 2001 From: mitchell Date: Fri, 25 May 2018 17:21:46 -0400 Subject: Backport: Draw invalid bytes in DBCS when detected as blobs in a similar way to UTF-8. Backport of changeset 6962:514fde42ccbf, but without std::string_view. --- src/PositionCache.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/PositionCache.cxx') diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx index 543573b38..df58aa9a7 100644 --- a/src/PositionCache.cxx +++ b/src/PositionCache.cxx @@ -507,7 +507,8 @@ TextSegment BreakFinder::Next() { charWidth = UTF8DrawBytes(reinterpret_cast(&ll->chars[nextBreak]), static_cast(lineRange.end - nextBreak)); else if (encodingFamily == efDBCS) - charWidth = pdoc->IsDBCSLeadByteNoExcept(ll->chars[nextBreak]) ? 2 : 1; + charWidth = pdoc->DBCSDrawBytes( + &ll->chars[nextBreak], static_cast(lineRange.end - nextBreak)); const Representation *repr = preprs->RepresentationFromCharacter(&ll->chars[nextBreak], charWidth); if (((nextBreak > 0) && (ll->styles[nextBreak] != ll->styles[nextBreak - 1])) || repr || -- cgit v1.2.3