diff options
Diffstat (limited to 'src/qdoc/clangcodeparser.cpp')
-rw-r--r-- | src/qdoc/clangcodeparser.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp index 18727ebde..3ef696367 100644 --- a/src/qdoc/clangcodeparser.cpp +++ b/src/qdoc/clangcodeparser.cpp @@ -1207,12 +1207,29 @@ void ClangCodeParser::parseSourceFile(const Location& /*location*/, const QStrin doc.location().warning(tr("Multiple topic commands found in comment: %1").arg(topicList)); } ArgList::ConstIterator a = args.constBegin(); + Node *node = 0; + SharedCommentNode* scn = 0; + int count = args.size(); while (a != args.constEnd()) { Doc nodeDoc = doc; - Node *node = processTopicCommand(nodeDoc, topic, *a); - if (node != 0) { - nodes.append(node); - docs.append(nodeDoc); + if ((count > 1) && (topic == COMMAND_FN)) { + node = processFnCommand(*a, doc); + if (node != 0) { + if (scn == 0) { + scn = new SharedCommentNode(node->parent(), count); + nodes.append(scn); + docs.append(nodeDoc); + } + scn->append(node); + node->setCollectiveNode(scn); + } + } + else { + node = processTopicCommand(nodeDoc, topic, *a); + if (node != 0) { + nodes.append(node); + docs.append(nodeDoc); + } } ++a; } |