summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-11-05 18:26:11 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-11-05 18:26:11 (GMT)
commit13b1feff0d0baef6eed5aac26d065b50528f3831 (patch)
tree5bb35d1a25c29ff5a3479ba340cfa18ed0cfc2a7
parent056b291534bc986c0a87653612c5d7d4d5524e21 (diff)
parentc48c5eb3c68a9b5f3f82d1d186a6695ed1d30db5 (diff)
downloadDoxygen-13b1feff0d0baef6eed5aac26d065b50528f3831.zip
Doxygen-13b1feff0d0baef6eed5aac26d065b50528f3831.tar.gz
Doxygen-13b1feff0d0baef6eed5aac26d065b50528f3831.tar.bz2
Merge branch 'albert-github-feature/issue_8156'
-rw-r--r--src/config.xml20
-rw-r--r--src/markdown.cpp9
2 files changed, 22 insertions, 7 deletions
diff --git a/src/config.xml b/src/config.xml
index b080bec..861b3c6 100644
--- a/src/config.xml
+++ b/src/config.xml
@@ -981,12 +981,20 @@ Go to the <a href="commands.html">next</a> section or return to the
<option type='bool' id='CASE_SENSE_NAMES' defval='0' altdefval='Portable::fileSystemIsCaseSensitive()'>
<docs>
<![CDATA[
- If the \c CASE_SENSE_NAMES tag is set to \c NO then doxygen
- will only generate file names in lower-case letters. If set to
- \c YES, upper-case letters are also allowed. This is useful if you have
- classes or files whose names only differ in case and if your file system
- supports case sensitive file names. Windows (including Cygwin) and
- Mac users are advised to set this option to \c NO.
+ With the correct setting of option \c CASE_SENSE_NAMES doxygen will better be able to match the
+ capabilities of the underlying filesystem.
+
+ In case the filesystem is case sensitive (i.e. it supports files in the same directory
+ whose names only differ in casing), the option must be set to \c YES to properly deal with such files
+ in case they appear in the input.
+
+ For filesystems that are not case sensitive the option should be be set to \c NO to properly
+ deal with output files written for symbols that only differ in casing, such as for two classes,
+ one named \c CLASS and the other named \c Class, and to also support references to files without
+ having to specify the exact matching casing.
+
+ On Windows (including Cygwin) and MacOS, users should typically set this option to \c NO,
+ whereas on Linux or other Unix flavors it should typically be set to \c YES.
]]>
</docs>
</option>
diff --git a/src/markdown.cpp b/src/markdown.cpp
index 4abe10e..33a471a 100644
--- a/src/markdown.cpp
+++ b/src/markdown.cpp
@@ -2685,7 +2685,14 @@ QCString markdownFileNameToId(const QCString &fileName)
QCString baseFn = stripFromPath(QFileInfo(fileName).absFilePath().utf8());
int i = baseFn.findRev('.');
if (i!=-1) baseFn = baseFn.left(i);
- QCString baseName = substitute(substitute(substitute(substitute(baseFn," ","_"),"/","_"),":","_"),"@","_");
+ QCString baseName = baseFn;
+ 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;
}