Permalink
Browse files

Sorting in latex index and missing \@ in index

When looking at the index of the doxygen (pdf) manual we see that __init__ is on a bit strnge place (between "\" items) and that the item "\@" is missing.

Made handling of the index consistent by using latex... routines and adjusting the label routine in respect to the @.
  • Loading branch information...
albert-github authored and Dimitri van Heesch committed Sep 2, 2016
1 parent 0bdf976 commit 558958dca5e5cb50bd33f3344cab151aba9ce076
Showing with 6 additions and 27 deletions.
  1. +4 −26 src/latexdocvisitor.cpp
  2. +2 −1 src/util.cpp
@@ -34,30 +34,6 @@
#include "htmlentity.h"
#include "plantuml.h"
static QCString escapeLabelName(const char *s)
{
QCString result;
const char *p=s;
char c;
if (p)
{
while ((c=*p++))
{
switch (c)
{
case '%': result+="\\%"; break;
case '|': result+="\\texttt{\"|}"; break;
case '!': result+="\"!"; break;
case '{': result+="\\lcurly{}"; break;
case '}': result+="\\rcurly{}"; break;
case '~': result+="````~"; break; // to get it a bit better in index together with other special characters
default: result+=c;
}
}
}
return result;
}
const int maxLevels=5;
static const char *secLabels[maxLevels] =
{ "section","subsection","subsubsection","paragraph","subparagraph" };
@@ -556,8 +532,10 @@ void LatexDocVisitor::visit(DocFormula *f)
void LatexDocVisitor::visit(DocIndexEntry *i)
{
if (m_hide) return;
m_t << "\\index{" << escapeLabelName(i->entry()) << "@{";
escapeMakeIndexChars(i->entry());
m_t << "\\index{";
m_t << latexEscapeLabelName(i->entry(),false);
m_t << "@{";
m_t << latexEscapeIndexChars(i->entry(),false);
m_t << "}}";
}
@@ -6744,6 +6744,7 @@ QCString latexEscapeLabelName(const char *s,bool insideTabbing)
{
case '|': t << "\\texttt{\"|}"; break;
case '!': t << "\"!"; break;
case '@': t << "\"@"; break;
case '%': t << "\\%"; break;
case '{': t << "\\lcurly{}"; break;
case '}': t << "\\rcurly{}"; break;
@@ -6753,7 +6754,7 @@ QCString latexEscapeLabelName(const char *s,bool insideTabbing)
i=0;
// collect as long string as possible, before handing it to docify
tmp[i++]=c;
while ((c=*p) && c!='|' && c!='!' && c!='%' && c!='{' && c!='}' && c!='~')
while ((c=*p) && c!='@' && c!='[' && c!=']' && c!='!' && c!='{' && c!='}' && c!='|')
{
tmp[i++]=c;
p++;

0 comments on commit 558958d

Please sign in to comment.