Skip to content

Commit

Permalink
Improved handling of percent symbol
Browse files Browse the repository at this point in the history
  • Loading branch information
Dimitri van Heesch committed Feb 11, 2014
1 parent a28ff23 commit 0e080f4
Show file tree
Hide file tree
Showing 10 changed files with 36 additions and 25 deletions.
2 changes: 1 addition & 1 deletion src/docbookvisitor.cpp
Expand Up @@ -81,7 +81,7 @@ void DocbookDocVisitor::visit(DocSymbol *s)
}
else
{
err("DocBook: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol()));
err("DocBook: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/htmldocvisitor.cpp
Expand Up @@ -190,7 +190,7 @@ void HtmlDocVisitor::visit(DocSymbol *s)
}
else
{
err("HTML: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol()));
err("HTML: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
}
}

Expand Down
30 changes: 24 additions & 6 deletions src/htmlentity.cpp
Expand Up @@ -354,23 +354,41 @@ void HtmlEntityMapper::deleteInstance()
/*! @brief Access routine to the UTF8 code of the HTML entity
*
* @param symb Code of the requested HTML entity
* @param useInPrintf If TRUE the result will be escaped such that it can be
* used in a printf string pattern
* @return the UTF8 code of the HTML entity,
* in case the UTF code is unknown \c NULL is returned.
*/
const char *HtmlEntityMapper::utf8(DocSymbol::SymType symb) const
const char *HtmlEntityMapper::utf8(DocSymbol::SymType symb,bool useInPrintf) const
{
return g_htmlEntities[symb].UTF8;
if (useInPrintf && symb==DocSymbol::Sym_Percent)
{
return "%%"; // escape for printf
}
else
{
return g_htmlEntities[symb].UTF8;
}
}

/*! @brief Access routine to the html code of the HTML entity
*
* @param symb Code of the requested HTML entity
* @return the html of the HTML entity,
* @param symb Code of the requested HTML entity
* @param useInPrintf If TRUE the result will be escaped such that it can be
* used in a printf string pattern
* @return the html representation of the HTML entity,
* in case the html code is unknown \c NULL is returned.
*/
const char *HtmlEntityMapper::html(DocSymbol::SymType symb) const
const char *HtmlEntityMapper::html(DocSymbol::SymType symb,bool useInPrintf) const
{
return g_htmlEntities[symb].html;
if (useInPrintf && symb==DocSymbol::Sym_Percent)
{
return "%%"; // escape for printf
}
else
{
return g_htmlEntities[symb].html;
}
}

/*! @brief Access routine to the XML code of the HTML entity
Expand Down
4 changes: 2 additions & 2 deletions src/htmlentity.h
Expand Up @@ -27,8 +27,8 @@ class HtmlEntityMapper
static HtmlEntityMapper *instance();
static void deleteInstance();
DocSymbol::SymType name2sym(const QCString &symName) const;
const char *utf8(DocSymbol::SymType symb) const;
const char *html(DocSymbol::SymType symb) const;
const char *utf8(DocSymbol::SymType symb,bool useInPrintf=FALSE) const;
const char *html(DocSymbol::SymType symb,bool useInPrintf=FALSE) const;
const char *xml(DocSymbol::SymType symb) const;
const char *docbook(DocSymbol::SymType symb) const;
const char *latex(DocSymbol::SymType symb) const;
Expand Down
2 changes: 1 addition & 1 deletion src/latexdocvisitor.cpp
Expand Up @@ -154,7 +154,7 @@ void LatexDocVisitor::visit(DocSymbol *s)
}
else
{
err("LaTeX: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol()));
err("LaTeX: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/perlmodgen.cpp
Expand Up @@ -606,7 +606,7 @@ void PerlModDocVisitor::visit(DocSymbol *sy)
}
else
{
err("perl: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(sy->symbol()));
err("perl: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(sy->symbol(),TRUE));
}
}

Expand Down
13 changes: 3 additions & 10 deletions src/printdocvisitor.h
Expand Up @@ -57,21 +57,14 @@ class PrintDocVisitor : public DocVisitor
void visit(DocSymbol *s)
{
indent_leaf();
const char *res = HtmlEntityMapper::instance()->utf8(s->symbol());
const char *res = HtmlEntityMapper::instance()->utf8(s->symbol(),TRUE);
if (res)
{
if (qstrcmp(res,"%")==0)
{
printf("%%");
}
else
{
printf("%s",res);
}
printf("%s",res);
}
else
{
printf("print: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol()));
printf("print: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
}
}
void visit(DocURL *u)
Expand Down
2 changes: 1 addition & 1 deletion src/rtfdocvisitor.cpp
Expand Up @@ -129,7 +129,7 @@ void RTFDocVisitor::visit(DocSymbol *s)
}
else
{
err("RTF: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol()));
err("RTF: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
}
m_lastIsPara=FALSE;
}
Expand Down
2 changes: 1 addition & 1 deletion src/textdocvisitor.cpp
Expand Up @@ -33,7 +33,7 @@ void TextDocVisitor::visit(DocSymbol *s)
}
else
{
err("text: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol()));
err("text: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/xmldocvisitor.cpp
Expand Up @@ -78,7 +78,7 @@ void XmlDocVisitor::visit(DocSymbol *s)
}
else
{
err("XML: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol()));
err("XML: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
}
}

Expand Down

0 comments on commit 0e080f4

Please sign in to comment.