diff --git a/src/plugins/clangformat/clangformatindenter.cpp b/src/plugins/clangformat/clangformatindenter.cpp index 18a79889c10..f6142930896 100644 --- a/src/plugins/clangformat/clangformatindenter.cpp +++ b/src/plugins/clangformat/clangformatindenter.cpp @@ -203,9 +203,12 @@ Replacements replacements(const Utils::FileName &fileName, extraOffset = Utils::Text::utf8NthLineOffset( block->document(), buffer, block->blockNumber() - kMaxLinesFromCurrentBlock); } - buffer = buffer.mid(extraOffset, - std::min(buffer.size(), utf8Offset + kMaxLinesFromCurrentBlock) - - extraOffset); + int endOffset = Utils::Text::utf8NthLineOffset( + block->document(), buffer, block->blockNumber() + kMaxLinesFromCurrentBlock); + if (endOffset == -1) + endOffset = buffer.size(); + + buffer = buffer.mid(extraOffset, endOffset - extraOffset); utf8Offset -= extraOffset; const int emptySpaceLength = previousEmptyLinesLength(*block);