aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2012-03-21 23:39:03 +1100
committernyamatongwe <devnull@localhost>2012-03-21 23:39:03 +1100
commit40e6c8af85107f310d5d4c41fc392cd635fd0b35 (patch)
tree90ca978ee7c6640f692d9022cd59d47a02a22b6a
parent47bf829182a41587ec200ece1dfdfa0bad93a55d (diff)
downloadscintilla-mirror-40e6c8af85107f310d5d4c41fc392cd635fd0b35.tar.gz
Ensure segment discovery always makes progress even for invalid UTF-8.
-rw-r--r--src/Document.cxx7
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 {