diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2014-08-08 09:41:23 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2014-08-08 09:41:23 (GMT) |
commit | 3cb963061343aa5b3b8a044cdfa62848723a02ee (patch) | |
tree | 193ed644113de8d65b66e113b8c792e12404e8a8 /src/latexdocvisitor.cpp | |
parent | 7a1196384f9124f872befea1249eaf9bb99924b5 (diff) | |
download | Doxygen-3cb963061343aa5b3b8a044cdfa62848723a02ee.zip Doxygen-3cb963061343aa5b3b8a044cdfa62848723a02ee.tar.gz Doxygen-3cb963061343aa5b3b8a044cdfa62848723a02ee.tar.bz2 |
Bug 732768 - nested html tables cause pdflatex to hang (1.8.4 and 1.8.6)
Diffstat (limited to 'src/latexdocvisitor.cpp')
-rw-r--r-- | src/latexdocvisitor.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index 0edb459..dd23d60 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -809,21 +809,32 @@ void LatexDocVisitor::visitPost(DocHtmlDescData *) { } +static const char *getTableName(const DocNode *n) +{ + bool isNested=FALSE; + while (n && !isNested) + { + isNested = n->kind()==DocNode::Kind_HtmlTable; + n = n->parent(); + } + return isNested ? "TabularNC" : "TabularC"; +} + void LatexDocVisitor::visitPre(DocHtmlTable *t) { m_rowSpans.clear(); m_insideTable=TRUE; if (m_hide) return; - if (t->hasCaption()) + if (t->hasCaption()) { m_t << "\\begin{table}[h]"; } - m_t << "\\begin{TabularC}{" << t->numColumns() << "}\n"; + m_t << "\\begin{" << getTableName(t->parent()) << "}{" << t->numColumns() << "}\n"; m_numCols = t->numColumns(); m_t << "\\hline\n"; } -void LatexDocVisitor::visitPost(DocHtmlTable *t) +void LatexDocVisitor::visitPost(DocHtmlTable *t) { m_insideTable=FALSE; if (m_hide) return; @@ -833,14 +844,14 @@ void LatexDocVisitor::visitPost(DocHtmlTable *t) } else { - m_t << "\\end{TabularC}\n"; + m_t << "\\end{" << getTableName(t->parent()) << "}\n"; } } -void LatexDocVisitor::visitPre(DocHtmlCaption *) +void LatexDocVisitor::visitPre(DocHtmlCaption *c) { if (m_hide) return; - m_t << "\\end{TabularC}\n\\centering\n\\caption{"; + m_t << "\\end{" << getTableName(c->parent()) << "}\n\\centering\n\\caption{"; } void LatexDocVisitor::visitPost(DocHtmlCaption *) |