diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2019-11-16 13:29:10 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-16 13:29:10 (GMT) |
commit | 241221933ffbd6afbb66e17ee4b81339471aae75 (patch) | |
tree | ce731eab47e4c9b9ae455a8aef4851f98e860a14 /src | |
parent | e43827ff91188fa49feec5ba5e5f4cbd825b164f (diff) | |
parent | 4d173a0b2e13b2cd26c996894480afc65d50cd87 (diff) | |
download | Doxygen-241221933ffbd6afbb66e17ee4b81339471aae75.zip Doxygen-241221933ffbd6afbb66e17ee4b81339471aae75.tar.gz Doxygen-241221933ffbd6afbb66e17ee4b81339471aae75.tar.bz2 |
Merge pull request #7402 from albert-github/feature/bug_hhc
HHC and directory elements starting with "."
Diffstat (limited to 'src')
-rw-r--r-- | src/doxygen.cpp | 1 | ||||
-rw-r--r-- | src/portable.cpp | 17 | ||||
-rw-r--r-- | src/portable.h | 2 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp index c622f78..b4a4deb 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -11862,6 +11862,7 @@ void generateOutput() g_s.begin("Running html help compiler...\n"); QString oldDir = QDir::currentDirPath(); QDir::setCurrent(Config_getString(HTML_OUTPUT)); + portable_setShortDir(); portable_sysTimerStart(); if (portable_system(Config_getString(HHC_LOCATION), "index.hhp", Debug::isFlagSet(Debug::ExtCmd))!=1) { diff --git a/src/portable.cpp b/src/portable.cpp index c6e829d..b447adc 100644 --- a/src/portable.cpp +++ b/src/portable.cpp @@ -478,3 +478,20 @@ void portable_unlink(const char *fileName) #endif } +void portable_setShortDir(void) +{ +#if defined(_WIN32) && !defined(__CYGWIN__) + long length = 0; + TCHAR* buffer = NULL; + // First obtain the size needed by passing NULL and 0. + length = GetShortPathName(QDir::currentDirPath().data(), NULL, 0); + // Dynamically allocate the correct size + // (terminating null char was included in length) + buffer = new TCHAR[length]; + // Now simply call again using same (long) path. + length = GetShortPathName(QDir::currentDirPath().data(), buffer, length); + // Set the correct directory (short name) + QDir::setCurrent(buffer); + delete [] buffer; +#endif +} diff --git a/src/portable.h b/src/portable.h index 83f90ef..c1b8c29 100644 --- a/src/portable.h +++ b/src/portable.h @@ -4,6 +4,7 @@ #include <sys/types.h> #include <stdio.h> #include <qglobal.h> +#include <qdir.h> #if defined(_WIN32) typedef __int64 portable_off_t; @@ -37,6 +38,7 @@ double portable_getSysElapsedTime(); void portable_sleep(int ms); bool portable_isAbsolutePath(const char *fileName); void portable_correct_path(void); +void portable_setShortDir(void); extern "C" { void * portable_iconv_open(const char* tocode, const char* fromcode); |