From 74bb3ee26dd3e253ab63406b8b8966ea1bdb60f4 Mon Sep 17 00:00:00 2001 From: albert-github Date: Wed, 27 Jan 2021 16:31:12 +0100 Subject: issue #8357 XML output does not include cross-references in code-fragments In case of explicit code samples the language was not specified for the code and the code was parsed verbatim. Same was valid for code in the Docbook output. The LaTeX version has been taken as reference for the implementation. --- src/docbookgen.cpp | 4 ++-- src/docbookvisitor.cpp | 4 ++-- src/docbookvisitor.h | 2 +- src/xmldocvisitor.cpp | 5 +++-- src/xmldocvisitor.h | 2 +- src/xmlgen.cpp | 2 +- testing/014/indexpage.xml | 2 +- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/docbookgen.cpp b/src/docbookgen.cpp index 8d390b6..372a462 100644 --- a/src/docbookgen.cpp +++ b/src/docbookgen.cpp @@ -610,11 +610,11 @@ DB_GEN_C } } -void DocbookGenerator::writeDoc(DocNode *n,const Definition *,const MemberDef *,int) +void DocbookGenerator::writeDoc(DocNode *n,const Definition *ctx,const MemberDef *,int) { DB_GEN_C DocbookDocVisitor *visitor = - new DocbookDocVisitor(t,*this); + new DocbookDocVisitor(t,*this,ctx?ctx->getDefFileExtension():QCString("")); n->accept(visitor); delete visitor; } diff --git a/src/docbookvisitor.cpp b/src/docbookvisitor.cpp index a448ac5..84d85c7 100644 --- a/src/docbookvisitor.cpp +++ b/src/docbookvisitor.cpp @@ -150,8 +150,8 @@ void DocbookDocVisitor::visitPostEnd(FTextStream &t, bool hasCaption, bool inlin } } -DocbookDocVisitor::DocbookDocVisitor(FTextStream &t,CodeOutputInterface &ci) - : DocVisitor(DocVisitor_Docbook), m_t(t), m_ci(ci) +DocbookDocVisitor::DocbookDocVisitor(FTextStream &t,CodeOutputInterface &ci,const char *langExt) + : DocVisitor(DocVisitor_Docbook), m_t(t), m_ci(ci),m_langExt(langExt) { DB_VIS_C // m_t << "
" << endl; diff --git a/src/docbookvisitor.h b/src/docbookvisitor.h index bec7a12..ad53116 100644 --- a/src/docbookvisitor.h +++ b/src/docbookvisitor.h @@ -29,7 +29,7 @@ class QCString; class DocbookDocVisitor : public DocVisitor { public: - DocbookDocVisitor(FTextStream &t,CodeOutputInterface &ci); + DocbookDocVisitor(FTextStream &t,CodeOutputInterface &ci,const char *langExt); ~DocbookDocVisitor(); //-------------------------------------- // visitor functions for leaf nodes diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp index 56b4546..56d6f55 100644 --- a/src/xmldocvisitor.cpp +++ b/src/xmldocvisitor.cpp @@ -88,8 +88,9 @@ static void visitPostEnd(FTextStream &t, const char *cmd) t << "" << endl; } -XmlDocVisitor::XmlDocVisitor(FTextStream &t,CodeOutputInterface &ci) - : DocVisitor(DocVisitor_XML), m_t(t), m_ci(ci), m_insidePre(FALSE), m_hide(FALSE) +XmlDocVisitor::XmlDocVisitor(FTextStream &t,CodeOutputInterface &ci,const char *langExt) + : DocVisitor(DocVisitor_XML), m_t(t), m_ci(ci), m_insidePre(FALSE), m_hide(FALSE), + m_langExt(langExt) { } diff --git a/src/xmldocvisitor.h b/src/xmldocvisitor.h index d0981a2..60270b8 100644 --- a/src/xmldocvisitor.h +++ b/src/xmldocvisitor.h @@ -30,7 +30,7 @@ class QCString; class XmlDocVisitor : public DocVisitor { public: - XmlDocVisitor(FTextStream &t,CodeOutputInterface &ci); + XmlDocVisitor(FTextStream &t,CodeOutputInterface &ci,const char *langExt); //-------------------------------------- // visitor functions for leaf nodes diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index d002295..db62e1b 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -419,7 +419,7 @@ static void writeXMLDocBlock(FTextStream &t, // create a code generator XMLCodeGenerator *xmlCodeGen = new XMLCodeGenerator(t); // create a parse tree visitor for XML - XmlDocVisitor *visitor = new XmlDocVisitor(t,*xmlCodeGen); + XmlDocVisitor *visitor = new XmlDocVisitor(t,*xmlCodeGen,scope?scope->getDefFileExtension():QCString("")); // visit all nodes root->accept(visitor); // clean up diff --git a/testing/014/indexpage.xml b/testing/014/indexpage.xml index 3f9510c..a160b1a 100644 --- a/testing/014/indexpage.xml +++ b/testing/014/indexpage.xml @@ -42,7 +42,7 @@ - //implicitcodelanguage + //implicitcodelanguage -- cgit v0.12