From ceb73b720b32e3ab11000174b6fe744ba19b5b8e Mon Sep 17 00:00:00 2001
From: Roberto Raggi <qtc-committer@nokia.com>
Date: Tue, 2 Dec 2008 15:33:07 +0100
Subject: [PATCH] Reduced the number of generated #line directives.

---
 src/plugins/cpptools/rpp/pp-engine.cpp         | 16 ++++------------
 src/plugins/cpptools/rpp/pp-macro-expander.cpp |  3 +--
 2 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/src/plugins/cpptools/rpp/pp-engine.cpp b/src/plugins/cpptools/rpp/pp-engine.cpp
index 5128b4ce37d..a061b2942a9 100644
--- a/src/plugins/cpptools/rpp/pp-engine.cpp
+++ b/src/plugins/cpptools/rpp/pp-engine.cpp
@@ -515,8 +515,7 @@ void pp::operator()(const QByteArray &source, QByteArray *result)
     while (true) {
         if (env.currentLine != _dot->lineno) {
             if (env.currentLine > _dot->lineno) {
-                result->append('\n');
-                result->append('#');
+                result->append("\n# ");
                 result->append(QByteArray::number(_dot->lineno));
                 result->append(' ');
                 result->append('"');
@@ -564,16 +563,6 @@ void pp::operator()(const QByteArray &source, QByteArray *result)
         } else {
             if (_dot->joined)
                 result->append("\\\n");
-            else if (_dot->newline) {
-                result->append('\n');
-                result->append('#');
-                result->append(QByteArray::number(_dot->lineno));
-                result->append(' ');
-                result->append('"');
-                result->append(env.current_file);
-                result->append('"');
-                result->append('\n');
-            }
             else if (_dot->whitespace)
                 result->append(' ');
 
@@ -861,11 +850,14 @@ void pp::processDefine(TokenIterator firstToken, TokenIterator lastToken)
     if (isQtWord)
         macro.definition = macroId;
     else {
+        // ### make me fast!
         const char *startOfDefinition = startOfToken(*tk);
         const char *endOfDefinition = startOfToken(*lastToken);
         macro.definition.append(startOfDefinition,
                                 endOfDefinition - startOfDefinition);
         macro.definition.replace("\\\n", " ");
+        macro.definition.replace('\n', ' ');
+        macro.definition = macro.definition.trimmed();
     }
 
     env.bind(macro);
diff --git a/src/plugins/cpptools/rpp/pp-macro-expander.cpp b/src/plugins/cpptools/rpp/pp-macro-expander.cpp
index 0b224d8eea9..6b569eb132f 100644
--- a/src/plugins/cpptools/rpp/pp-macro-expander.cpp
+++ b/src/plugins/cpptools/rpp/pp-macro-expander.cpp
@@ -69,8 +69,7 @@ const char *MacroExpander::operator () (const char *__first, const char *__last,
     {
         if (*__first == '\n')
         {
-            __result->append('\n');
-            __result->append('#');
+            __result->append("\n# ");
             __result->append(QByteArray::number(env.currentLine));
             __result->append(' ');
             __result->append('"');
-- 
GitLab