diff options
author | nyamatongwe <devnull@localhost> | 2012-03-21 23:39:03 +1100 |
---|---|---|
committer | nyamatongwe <devnull@localhost> | 2012-03-21 23:39:03 +1100 |
commit | 40e6c8af85107f310d5d4c41fc392cd635fd0b35 (patch) | |
tree | 90ca978ee7c6640f692d9022cd59d47a02a22b6a | |
parent | 47bf829182a41587ec200ece1dfdfa0bad93a55d (diff) | |
download | scintilla-mirror-40e6c8af85107f310d5d4c41fc392cd635fd0b35.tar.gz |
Ensure segment discovery always makes progress even for invalid UTF-8.
-rw-r--r-- | src/Document.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Document.cxx b/src/Document.cxx index fd71a1363..fae97856a 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -721,7 +721,12 @@ int Document::SafeSegment(const char *text, int length, int lengthSegment) { lastEncodingAllowedBreak = j; if (dbcsCodePage == SC_CP_UTF8) { - j += (ch < 0x80) ? 1 : BytesFromLead(ch); + if (ch < 0x80) { + j++; + } else { + int bytes = BytesFromLead(ch); + j += bytes ? bytes : 1; + } } else if (dbcsCodePage) { j += IsDBCSLeadByte(ch) ? 2 : 1; } else { |