forked from qt-creator/qt-creator
Reduced the number of generated #line directives.
This commit is contained in:
@@ -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);
|
||||||
|
@@ -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('"');
|
||||||
|
Reference in New Issue
Block a user