summaryrefslogtreecommitdiffstats
path: root/src/reflist.cpp
diff options
context:
space:
mode:
authoralbert-github <albert.tests@gmail.com>2018-11-23 12:33:10 (GMT)
committeralbert-github <albert.tests@gmail.com>2018-11-23 12:33:10 (GMT)
commit3540365053d32741b0caab83dbdc79b83a7da1cf (patch)
tree2c8a4971be7ea9357bd79e081112bbd2d5b1dd17 /src/reflist.cpp
parent50879dd77d551cd62c5a6db2f3f322ae69b115b7 (diff)
downloadDoxygen-3540365053d32741b0caab83dbdc79b83a7da1cf.zip
Doxygen-3540365053d32741b0caab83dbdc79b83a7da1cf.tar.gz
Doxygen-3540365053d32741b0caab83dbdc79b83a7da1cf.tar.bz2
Reference text in reference list seen as emoji
In Objective-C the separator for classes / protocols / functions is a single colon `:` resulting in recognizing it as an non existing emoji. Note that this can only happen with generated names, in e.g. a page name an emoji can be used.
Diffstat (limited to 'src/reflist.cpp')
-rw-r--r--src/reflist.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/reflist.cpp b/src/reflist.cpp
index 7ae4c80..59f7ad4 100644
--- a/src/reflist.cpp
+++ b/src/reflist.cpp
@@ -171,7 +171,26 @@ void RefList::generatePage()
doc += item->name;
doc += " \"";
// escape \'s in title, see issue #5901
- doc += substitute(item->title,"\\","\\\\");
+ // prevent Obj-C names in e.g. todo list are seen as emoji
+ if (item->scope)
+ {
+ switch(item->scope->definitionType())
+ {
+ case Definition::TypeClass:
+ case Definition::TypeNamespace:
+ case Definition::TypeMember:
+ case Definition::TypePackage:
+ doc += substitute(substitute(item->title,"\\","\\\\"),":","&Colon;");
+ break;
+ default:
+ doc += substitute(item->title,"\\","\\\\");
+ break;
+ }
+ }
+ else
+ {
+ doc += substitute(item->title,"\\","\\\\");
+ }
doc += "\" ";
// write declaration in case a function with arguments
if (!item->args.isEmpty())