aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/PositionCache.cxx
diff options
context:
space:
mode:
authormitchell <unknown>2018-05-25 17:21:46 -0400
committermitchell <unknown>2018-05-25 17:21:46 -0400
commit8bda8cce4b5daf0bc785401a887331182e4f2b74 (patch)
treec7adba12e4815cdf34e3803aca4b85178582834a /src/PositionCache.cxx
parent96cf9078786ae2e4a8aaf56468e6d069e73ed9c0 (diff)
downloadscintilla-mirror-8bda8cce4b5daf0bc785401a887331182e4f2b74.tar.gz
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.
Diffstat (limited to 'src/PositionCache.cxx')
-rw-r--r--src/PositionCache.cxx3
1 files changed, 2 insertions, 1 deletions
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<unsigned char *>(&ll->chars[nextBreak]),
static_cast<int>(lineRange.end - nextBreak));
else if (encodingFamily == efDBCS)
- charWidth = pdoc->IsDBCSLeadByteNoExcept(ll->chars[nextBreak]) ? 2 : 1;
+ charWidth = pdoc->DBCSDrawBytes(
+ &ll->chars[nextBreak], static_cast<int>(lineRange.end - nextBreak));
const Representation *repr = preprs->RepresentationFromCharacter(&ll->chars[nextBreak], charWidth);
if (((nextBreak > 0) && (ll->styles[nextBreak] != ll->styles[nextBreak - 1])) ||
repr ||