Reduced the number of generated #line directives.

This commit is contained in:
Roberto Raggi
2008-12-02 15:33:07 +01:00
parent df7aacd637
commit ceb73b720b
2 changed files with 5 additions and 14 deletions

View File

@@ -515,8 +515,7 @@ void pp::operator()(const QByteArray &source, QByteArray *result)
while (true) { while (true) {
if (env.currentLine != _dot->lineno) { if (env.currentLine != _dot->lineno) {
if (env.currentLine > _dot->lineno) { if (env.currentLine > _dot->lineno) {
result->append('\n'); result->append("\n# ");
result->append('#');
result->append(QByteArray::number(_dot->lineno)); result->append(QByteArray::number(_dot->lineno));
result->append(' '); result->append(' ');
result->append('"'); result->append('"');
@@ -564,16 +563,6 @@ void pp::operator()(const QByteArray &source, QByteArray *result)
} else { } else {
if (_dot->joined) if (_dot->joined)
result->append("\\\n"); 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) else if (_dot->whitespace)
result->append(' '); result->append(' ');
@@ -861,11 +850,14 @@ void pp::processDefine(TokenIterator firstToken, TokenIterator lastToken)
if (isQtWord) if (isQtWord)
macro.definition = macroId; macro.definition = macroId;
else { else {
// ### make me fast!
const char *startOfDefinition = startOfToken(*tk); const char *startOfDefinition = startOfToken(*tk);
const char *endOfDefinition = startOfToken(*lastToken); const char *endOfDefinition = startOfToken(*lastToken);
macro.definition.append(startOfDefinition, macro.definition.append(startOfDefinition,
endOfDefinition - startOfDefinition); endOfDefinition - startOfDefinition);
macro.definition.replace("\\\n", " "); macro.definition.replace("\\\n", " ");
macro.definition.replace('\n', ' ');
macro.definition = macro.definition.trimmed();
} }
env.bind(macro); env.bind(macro);

View File

@@ -69,8 +69,7 @@ const char *MacroExpander::operator () (const char *__first, const char *__last,
{ {
if (*__first == '\n') if (*__first == '\n')
{ {
__result->append('\n'); __result->append("\n# ");
__result->append('#');
__result->append(QByteArray::number(env.currentLine)); __result->append(QByteArray::number(env.currentLine));
__result->append(' '); __result->append(' ');
__result->append('"'); __result->append('"');