From 87762eb8eecfa5a794b323d2725a7e3ed4091967 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Tue, 4 Dec 2018 15:09:36 +0100 Subject: [PATCH] ClangFormat: Fix the end offset for the reformat call The intention was to add 200 lines to the current position, not 200 characters. Change-Id: I5b4de24077fc354611fdeba2d6747c239a3f9d5f Reviewed-by: Nikolai Kosjar --- src/plugins/clangformat/clangformatindenter.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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);