diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/latexdocvisitor.cpp | 14 | ||||
-rw-r--r-- | src/latexgen.cpp | 4 | ||||
-rw-r--r-- | src/scanner.l | 4 | ||||
-rw-r--r-- | src/util.cpp | 19 | ||||
-rw-r--r-- | src/util.h | 1 |
5 files changed, 30 insertions, 12 deletions
diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index 452a481..51e53e9 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -215,13 +215,14 @@ void LatexDocVisitor::visit(DocURL *u) if (m_hide) return; if (Config_getBool(PDF_HYPERLINKS)) { + m_t << endl << "%% AME " << u->url() <<endl; m_t << "\\href{"; if (u->isEmail()) m_t << "mailto:"; - m_t << u->url() << "}"; + m_t << latexFilterURL(u->url()) << "}"; } - m_t << "\\texttt{ "; + m_t << "{\\texttt{ "; filter(u->url()); - m_t << "}"; + m_t << "}}"; } void LatexDocVisitor::visit(DocLineBreak *) @@ -1251,17 +1252,18 @@ void LatexDocVisitor::visitPre(DocHRef *href) if (m_hide) return; if (Config_getBool(PDF_HYPERLINKS)) { + m_t << endl << "%% AME " << href->url() <<endl; m_t << "\\href{"; - m_t << href->url(); + m_t << latexFilterURL(href->url()); m_t << "}"; } - m_t << "\\texttt{ "; + m_t << "{\\texttt{ "; } void LatexDocVisitor::visitPost(DocHRef *) { if (m_hide) return; - m_t << "}"; + m_t << "}}"; } void LatexDocVisitor::visitPre(DocHtmlHeader *header) diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 50d4242..9f1372e 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -1369,12 +1369,12 @@ void LatexGenerator::startHtmlLink(const char *url) t << url; t << "}"; } - t << "\\texttt{ "; + t << "{\\texttt{ "; } void LatexGenerator::endHtmlLink() { - t << "}"; + t << "}}"; } //void LatexGenerator::writeMailLink(const char *url) diff --git a/src/scanner.l b/src/scanner.l index 4e413be..e9fca43 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -597,15 +597,11 @@ static int yyread(char *buf,int max_size) /* start command character */ CMD ("\\"|"@") -SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"xrefitem"|"ingroup"|"callgraph"|"callergraph"|"latexonly"|"htmlonly"|"xmlonly"|"docbookonly"|"manonly"|"{"|"verbatim"|"dotfile"|"dot"|"defgroup"|"addtogroup"|"weakgroup"|"class"|"namespace"|"union"|"struct"|"fn"|"var"|"details"|"typedef"|"def"|"overload")|("<"{PRE}">") BN [ \t\n\r] BL [ \t\r]*"\n" B [ \t] -BS ^(({B}*"//")?)(({B}*"*"+)?){B}* ID "$"?[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]* -SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?) SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)(((~|!){BN}*)?{ID}) -PHPSCOPENAME ({ID}"\\")+{ID} TSCOPE {ID}("<"[a-z_A-Z0-9 \t\*\&,:]*">")? CSSCOPENAME (({ID}?{BN}*"."{BN}*)*)((~{BN}*)?{ID}) PRE [pP][rR][eE] diff --git a/src/util.cpp b/src/util.cpp index 7371026..c931214 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -7026,6 +7026,25 @@ QCString latexEscapePDFString(const char *s) return result.data(); } +QCString latexFilterURL(const char *s) +{ + QGString result; + FTextStream t(&result); + const char *p=s; + char c; + while ((c=*p++)) + { + switch (c) + { + case '#': t << "\\#"; break; + default: + t << c; + break; + } + } + return result.data(); +} + QCString rtfFormatBmkStr(const char *name) { @@ -348,6 +348,7 @@ void filterLatexString(FTextStream &t,const char *str, QCString latexEscapeLabelName(const char *s,bool insideTabbing); QCString latexEscapeIndexChars(const char *s,bool insideTabbing); QCString latexEscapePDFString(const char *s); +QCString latexFilterURL(const char *s); QCString rtfFormatBmkStr(const char *name); |