diff options
author | Kai Köhne <kai.koehne@qt.io> | 2022-08-22 13:20:15 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-08-31 11:30:04 +0000 |
commit | 897970611cf3fc9030de8182ac9b3b5761e53d31 (patch) | |
tree | eb71101786b6e9876328b3eea960969a77982def | |
parent | a548369daf1a86283a6276c9f28238c838e51697 (diff) | |
download | qttools-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.cpp | 19 |
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"; } |