summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Köhne <kai.koehne@qt.io>2022-08-22 13:20:15 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-08-31 11:30:04 +0000
commit897970611cf3fc9030de8182ac9b3b5761e53d31 (patch)
treeeb71101786b6e9876328b3eea960969a77982def
parenta548369daf1a86283a6276c9f28238c838e51697 (diff)
downloadqttools-897970611cf3fc9030de8182ac9b3b5761e53d31.tar.gz
qtattributionsscanner: Allow */ to appear in license texts
License text files might contain */ (end of C style comment) , for example when explaining how to attribute a license in a file. So far, this broke the qdoc output, because qdoc also looks for */ as end of documentation marker. Work around this by masking the star through a qdoc \badcode argument, so that */ becomes \badcode * \1/ \endcode Change-Id: I77310ed272177eaa69e354c0d7bce380ee933e56 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Luca Di Sera <luca.disera@qt.io> (cherry picked from commit 047aff2add055bd5370fecfa98c371b5197beeed) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/qtattributionsscanner/qdocgenerator.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/qtattributionsscanner/qdocgenerator.cpp b/src/qtattributionsscanner/qdocgenerator.cpp
index f0461b34b..ef6e0ba8b 100644
--- a/src/qtattributionsscanner/qdocgenerator.cpp
+++ b/src/qtattributionsscanner/qdocgenerator.cpp
@@ -41,6 +41,15 @@ static QString languageJoin(const QStringList &list)
return result;
}
+// Embed source code between \badcode ... \endbadcode
+// Also, avoid '*/' breaking qdoc by passing the star as argument
+static void sourceCode(QTextStream &out, const QString &src)
+{
+ out << "\\badcode *\n";
+ out << QString(src).replace(QStringLiteral("*/"), QStringLiteral("\\1/"));
+ out << "\n\\endcode\n\n";
+}
+
static void generate(QTextStream &out, const Package &package, const QDir &baseDir,
LogLevel logLevel)
{
@@ -123,8 +132,10 @@ static void generate(QTextStream &out, const Package &package, const QDir &baseD
}
}
- if (!copyright.isEmpty())
- out << "\n\\badcode\n" << copyright << "\n\\endcode\n\n";
+ if (!copyright.isEmpty()) {
+ out << "\n";
+ sourceCode(out, copyright);
+ }
if (isSpdxLicenseId(package.licenseId) && package.licenseId != QLatin1String("NONE")) {
out << "\\l{https://spdx.org/licenses/" << package.licenseId << ".html}"
@@ -147,9 +158,7 @@ static void generate(QTextStream &out, const Package &package, const QDir &baseD
}
return;
}
- out << "\\badcode\n";
- out << QString::fromUtf8(file.readAll()).trimmed();
- out << "\n\\endcode\n\n";
+ sourceCode(out, QString::fromUtf8(file.readAll()).trimmed());
}
out << "*/\n";
}