summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/docparser.cpp4
-rw-r--r--src/doctokenizer.l10
-rw-r--r--src/ftvhelp.cpp11
-rw-r--r--src/util.cpp9
4 files changed, 24 insertions, 10 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp
index ec018b9..100842b 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -2779,6 +2779,7 @@ QCString DocLink::parse(bool isJavaLink,bool isXmlLink)
case TK_EMOJI:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Unsupported emoji '%s' found",
qPrint(g_token->name));
+ m_children.append(new DocWord(this,g_token->name));
break;
case TK_HTMLTAG:
if (g_token->name!="see" || !isXmlLink)
@@ -3984,6 +3985,7 @@ int DocHtmlDescTitle::parse()
case TK_EMOJI:
warn_doc_error(g_fileName,doctokenizerYYlineno,"Unsupported emoji '%s' found",
qPrint(g_token->name));
+ m_children.append(new DocWord(this,g_token->name));
break;
case TK_HTMLTAG:
{
@@ -6817,6 +6819,7 @@ reparsetoken:
{
warn_doc_error(g_fileName,doctokenizerYYlineno,"Unsupported emoji '%s' found",
qPrint(g_token->name));
+ m_children.append(new DocWord(this,g_token->name));
}
break;
}
@@ -7045,6 +7048,7 @@ void DocText::parse()
{
warn_doc_error(g_fileName,doctokenizerYYlineno,"Unsupported emoji '%s' found",
qPrint(g_token->name));
+ m_children.append(new DocWord(this,g_token->name));
}
}
break;
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index deac51c..4dc5fad 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -362,7 +362,7 @@ URLCHAR [a-z_A-Z0-9\!\~\,\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
URLMASK ({URLCHAR}+([({]{URLCHAR}*[)}])?)+
FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+@&#]
FILEECHAR [a-z_A-Z0-9\-\+@&#]
-HFILEMASK ("."{FILESCHAR}*{FILEECHAR}+)*
+HFILEMASK ("."{FILESCHAR}*{FILEECHAR}+)+
FILEMASK ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|{HFILEMASK}
LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"){BLANK}+)?
VERBATIM "verbatim"{BLANK}*
@@ -689,7 +689,7 @@ REFWORD_NOCV {FILEMASK}|{LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV}
g_token->name = yytext;
return TK_SYMBOL;
}
-<St_Para,St_Text>{EMOJI} { /* emoji symbol */
+<St_Para,St_Text>{EMOJI}/[^:] { /* emoji symbol */
if (g_fileName == CiteConsts::fileName)
{
REJECT;
@@ -946,7 +946,7 @@ REFWORD_NOCV {FILEMASK}|{LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV}
g_token->name = yytext;
return TK_SYMBOL;
}
-<St_TitleN>{EMOJI} { /* emoji */
+<St_TitleN>{EMOJI}/[^:] { /* emoji */
if (g_fileName == CiteConsts::fileName)
{
REJECT;
@@ -993,7 +993,7 @@ REFWORD_NOCV {FILEMASK}|{LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV}
g_token->name = yytext;
return TK_SYMBOL;
}
-<St_TitleQ>{EMOJI} { /* emoji */
+<St_TitleQ>{EMOJI}/[^:] { /* emoji */
if (g_fileName == CiteConsts::fileName)
{
REJECT;
@@ -1143,7 +1143,7 @@ REFWORD_NOCV {FILEMASK}|{LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV}
g_token->name = yytext;
return TK_SYMBOL;
}
-<St_Ref2>{EMOJI} { /* emoji */
+<St_Ref2>{EMOJI}/[^:] { /* emoji */
if (g_fileName == CiteConsts::fileName)
{
REJECT;
diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp
index 73ac775..ea57eb7 100644
--- a/src/ftvhelp.cpp
+++ b/src/ftvhelp.cpp
@@ -828,10 +828,13 @@ void FTVHelp::generateTreeViewInline(FTextStream &t)
}
//printf("preferred depth=%d\n",preferredDepth);
- t << "<table class=\"directory\">\n";
- int index=0;
- generateTree(t,m_indentNodes[0],0,preferredDepth,index);
- t << "</table>\n";
+ if (m_indentNodes[0].count())
+ {
+ t << "<table class=\"directory\">\n";
+ int index=0;
+ generateTree(t,m_indentNodes[0],0,preferredDepth,index);
+ t << "</table>\n";
+ }
t << "</div><!-- directory -->\n";
}
diff --git a/src/util.cpp b/src/util.cpp
index a1f40af..1b6afa2 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1895,11 +1895,18 @@ QCString removeRedundantWhiteSpace(const QCString &s)
if (g_charAroundSpace.charMap[(uchar)pc].before &&
g_charAroundSpace.charMap[(uchar)nc].after &&
!(pc==',' && nc=='.') &&
- (osp<8 || (osp>=8 && isId(nc))) // e.g. "operator >>" -> "operator>>", but not "operator int" -> operatorint"
+ (osp<8 || (osp>=8 && pc!='"' && isId(nc)) || (osp>=8 && pc!='"' && nc!='"'))
+ // e.g. 'operator >>' -> 'operator>>',
+ // 'operator "" _x' -> 'operator""_x',
+ // but not 'operator int' -> 'operatorint'
)
{ // keep space
*dst++=' ';
}
+ else if ((pc=='*' || pc=='&' || pc=='.') && nc=='>')
+ {
+ *dst++=' ';
+ }
}
break;
default: