From 587eb49c4e44eec8d44e69cb24cd5c5f6743b84c Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 6 May 2014 14:48:24 -0400 Subject: C++: TranslationUnit::getPosition takes utf16char offsets ...and not byte offsets anymore. This is necessary in order to calculate the line and column numbers correctly with respect to unicode code points. Change-Id: I5d79857b3eaefeb8d563b4f1e3938a64debc5e08 Reviewed-by: Erik Verbruggen --- src/plugins/cpptools/cpprefactoringchanges.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/plugins/cpptools/cpprefactoringchanges.cpp') diff --git a/src/plugins/cpptools/cpprefactoringchanges.cpp b/src/plugins/cpptools/cpprefactoringchanges.cpp index 553b905ac3..4ea1ed5477 100644 --- a/src/plugins/cpptools/cpprefactoringchanges.cpp +++ b/src/plugins/cpptools/cpprefactoringchanges.cpp @@ -199,7 +199,7 @@ ChangeSet::Range CppRefactoringFile::range(unsigned tokenIndex) const { const Token &token = tokenAt(tokenIndex); unsigned line, column; - cppDocument()->translationUnit()->getPosition(token.bytesBegin(), &line, &column); + cppDocument()->translationUnit()->getPosition(token.utf16charsBegin(), &line, &column); const int start = document()->findBlockByNumber(line - 1).position() + column - 1; return ChangeSet::Range(start, start + token.bytes()); } @@ -212,7 +212,7 @@ ChangeSet::Range CppRefactoringFile::range(AST *ast) const int CppRefactoringFile::startOf(unsigned index) const { unsigned line, column; - cppDocument()->translationUnit()->getPosition(tokenAt(index).bytesBegin(), &line, &column); + cppDocument()->translationUnit()->getPosition(tokenAt(index).utf16charsBegin(), &line, &column); return document()->findBlockByNumber(line - 1).position() + column - 1; } @@ -224,7 +224,7 @@ int CppRefactoringFile::startOf(const AST *ast) const int CppRefactoringFile::endOf(unsigned index) const { unsigned line, column; - cppDocument()->translationUnit()->getPosition(tokenAt(index).bytesEnd(), &line, &column); + cppDocument()->translationUnit()->getPosition(tokenAt(index).utf16charsEnd(), &line, &column); return document()->findBlockByNumber(line - 1).position() + column - 1; } @@ -239,7 +239,7 @@ void CppRefactoringFile::startAndEndOf(unsigned index, int *start, int *end) con { unsigned line, column; Token token(tokenAt(index)); - cppDocument()->translationUnit()->getPosition(token.bytesBegin(), &line, &column); + cppDocument()->translationUnit()->getPosition(token.utf16charsBegin(), &line, &column); *start = document()->findBlockByNumber(line - 1).position() + column - 1; *end = *start + token.bytes(); } -- cgit v1.2.1