aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/shared/proparser/prowriter.cpp3
-rw-r--r--tests/auto/profilewriter/tst_profilewriter.cpp38
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()