summaryrefslogtreecommitdiffstats
path: root/src/markdown.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-11-05 18:25:15 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-11-05 18:25:15 (GMT)
commitc48c5eb3c68a9b5f3f82d1d186a6695ed1d30db5 (patch)
tree5bb35d1a25c29ff5a3479ba340cfa18ed0cfc2a7 /src/markdown.cpp
parenteaf691cc82cb2c819bf61a48265d334464f2d831 (diff)
downloadDoxygen-c48c5eb3c68a9b5f3f82d1d186a6695ed1d30db5.zip
Doxygen-c48c5eb3c68a9b5f3f82d1d186a6695ed1d30db5.tar.gz
Doxygen-c48c5eb3c68a9b5f3f82d1d186a6695ed1d30db5.tar.bz2
Optimized the escape function and made it more generic
Diffstat (limited to 'src/markdown.cpp')
-rw-r--r--src/markdown.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/markdown.cpp b/src/markdown.cpp
index 9b3232e..33a471a 100644
--- a/src/markdown.cpp
+++ b/src/markdown.cpp
@@ -2686,12 +2686,13 @@ QCString markdownFileNameToId(const QCString &fileName)
int i = baseFn.findRev('.');
if (i!=-1) baseFn = baseFn.left(i);
QCString baseName = baseFn;
- baseName = substitute(baseName,":","_");
- baseName = substitute(baseName,"/","_");
- baseName = substitute(baseName,".","_");
- baseName = substitute(baseName," ","_");
- baseName = substitute(baseName,"+","_");
- baseName = substitute(baseName,"@","_");
+ char *p = baseName.rawData();
+ char c;
+ while ((c=*p))
+ {
+ if (!isId(c)) *p='_'; // escape characters that do not yield an identifier by underscores
+ p++;
+ }
//printf("markdownFileNameToId(%s)=md_%s\n",qPrint(fileName),qPrint(baseName));
return "md_"+baseName;
}