From 3dec48557a2b9ff64237d2aa4077c65a62c6af42 Mon Sep 17 00:00:00 2001 From: Andre Hartmann <aha_1980@gmx.de> Date: Sun, 18 Mar 2012 19:58:29 +0100 Subject: [PATCH] Fix C++ Macro Usages when Definition contains Newline. Now truncates the displayed line at the first Newline character after the Macro name. Task-number: QTCREATORBUG-7113 Change-Id: Ifb13c01d10b97098b54ac4346a80f0dcff3a35f3 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com> --- src/plugins/cpptools/cppfindreferences.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 91676c63339..2182f7c8512 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -646,9 +646,14 @@ void CppFindReferences::findMacroUses(const Macro ¯o) { // ### FIXME: Encoding? const QByteArray &source = getSource(macro.fileName(), workingCopy).toLatin1(); - const QByteArray line = source.mid(macro.offset(), macro.length()); + QByteArray line = source.mid(macro.offset(), macro.length()); + const int macroNameOffset = line.indexOf(macro.name()); + const int macroNameLength = macro.name().length(); + const int possibleNewLine = line.indexOf('\n', macroNameOffset + macroNameLength); + if (possibleNewLine != -1) + line.truncate(possibleNewLine); // truncate line at first '\n' after macro name search->addResult(macro.fileName(), macro.line(), line, - line.indexOf(macro.name()), macro.name().length()); + macroNameOffset, macroNameLength); } QFuture<Usage> result; -- GitLab