diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-05-06 14:48:24 -0400 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-05-23 14:23:24 +0200 |
commit | 587eb49c4e44eec8d44e69cb24cd5c5f6743b84c (patch) | |
tree | 517189fbd587d316573e2088e657138dbc8fcb96 /src/plugins/cpptools/cpprefactoringchanges.cpp | |
parent | 70122b3061ee3fbb07442beb0158edf849ceb98e (diff) | |
download | qt-creator-587eb49c4e44eec8d44e69cb24cd5c5f6743b84c.tar.gz |
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 <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cpprefactoringchanges.cpp')
-rw-r--r-- | src/plugins/cpptools/cpprefactoringchanges.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
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(); } |