diff options
| -rw-r--r-- | src/shared/proparser/prowriter.cpp | 3 | ||||
| -rw-r--r-- | tests/auto/profilewriter/tst_profilewriter.cpp | 38 |
2 files changed, 21 insertions, 20 deletions
diff --git a/src/shared/proparser/prowriter.cpp b/src/shared/proparser/prowriter.cpp index e3fcc5f6008..557bef4371c 100644 --- a/src/shared/proparser/prowriter.cpp +++ b/src/shared/proparser/prowriter.cpp @@ -347,7 +347,8 @@ void ProWriter::putVarValues(ProFile *profile, QStringList *lines, const QString QString newLine = effectiveContIndent(contInfo) + v; if (curLineNo == endLineNo) { QString &oldLastLine = (*lines)[endLineNo - 1]; - oldLastLine.insert(lineInfo(oldLastLine).continuationPos, " \\"); + if (!oldLastLine.endsWith('\\')) + oldLastLine.insert(lineInfo(oldLastLine).continuationPos, " \\"); } else { newLine += " \\"; } diff --git a/tests/auto/profilewriter/tst_profilewriter.cpp b/tests/auto/profilewriter/tst_profilewriter.cpp index 2abc7ccaa25..69ae2e86e7e 100644 --- a/tests/auto/profilewriter/tst_profilewriter.cpp +++ b/tests/auto/profilewriter/tst_profilewriter.cpp @@ -686,25 +686,25 @@ void tst_ProFileWriter::multiVar() void tst_ProFileWriter::addFiles() { - QString input = QLatin1String( - "SOURCES = foo.cpp" - ); - QStringList lines = input.split(QLatin1Char('\n')); - QString output = QLatin1String( - "SOURCES = foo.cpp \\\n" - "\tsub/bar.cpp" - ); - - QMakeVfs vfs; - QMakeParser parser(0, &vfs, &parseHandler); - ProFile *proFile = parser.parsedProBlock(QStringRef(&input), 0, QLatin1String(BASE_DIR "/test.pro"), 1); - QVERIFY(proFile); - QmakeProjectManager::Internal::ProWriter::addFiles(proFile, &lines, - QStringList() << QString::fromLatin1(BASE_DIR "/sub/bar.cpp"), - QLatin1String("SOURCES"), "\t"); - proFile->deref(); - - QCOMPARE(lines.join(QLatin1Char('\n')), output); + const QStringList equivalentInputs = {"SOURCES = foo.cpp", "SOURCES = foo.cpp \\"}; + for (const QString &input : equivalentInputs) { + QStringList lines = input.split(QLatin1Char('\n')); + QString output = QLatin1String( + "SOURCES = foo.cpp \\\n" + "\tsub/bar.cpp" + ); + + QMakeVfs vfs; + QMakeParser parser(0, &vfs, &parseHandler); + ProFile *proFile = parser.parsedProBlock(QStringRef(&input), 0, BASE_DIR "/test.pro", 1); + QVERIFY(proFile); + QmakeProjectManager::Internal::ProWriter::addFiles(proFile, &lines, + QStringList(BASE_DIR "/sub/bar.cpp"), + QLatin1String("SOURCES"), "\t"); + proFile->deref(); + + QCOMPARE(lines.join(QLatin1Char('\n')), output); + } } void tst_ProFileWriter::removeFiles() |
