summaryrefslogtreecommitdiffstats
path: root/src/util.cpp
diff options
context:
space:
mode:
authortttapa <pieter.pas@outlook.com>2020-06-18 13:32:21 (GMT)
committerGitHub <noreply@github.com>2020-06-18 13:32:21 (GMT)
commitc13144eddc3fca3e112e546dbfa01501da3e711a (patch)
tree7503d83c38df5f35b1e0c714fa3ce53bc302520e /src/util.cpp
parentd0f24b762e23b1b0c069209978aa403acc027cdf (diff)
downloadDoxygen-c13144eddc3fca3e112e546dbfa01501da3e711a.zip
Doxygen-c13144eddc3fca3e112e546dbfa01501da3e711a.tar.gz
Doxygen-c13144eddc3fca3e112e546dbfa01501da3e711a.tar.bz2
Don't crash if output subdirectories already exist
See doxygen/doxygen#7860
Diffstat (limited to 'src/util.cpp')
-rw-r--r--src/util.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/util.cpp b/src/util.cpp
index 710de06..8b3f618 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -5023,15 +5023,19 @@ void createSubDirs(QDir &d)
int l1,l2;
for (l1=0;l1<16;l1++)
{
- if (!d.mkdir(QCString().sprintf("d%x",l1)))
+ QCString subdir;
+ subdir.sprintf("d%x",l1);
+ if (!d.exists(subdir) && !d.mkdir(subdir))
{
- term("Failed to create output directory '%s'\n",(QCString().sprintf("d%x",l1)).data());
+ term("Failed to create output directory '%s'\n",subdir.data());
}
for (l2=0;l2<256;l2++)
{
- if (!d.mkdir(QCString().sprintf("d%x/d%02x",l1,l2)))
+ QCString subsubdir;
+ subsubdir.sprintf("d%x/d%02x",l1,l2);
+ if (!d.exists(subsubdir) && !d.mkdir(subsubdir))
{
- term("Failed to create output directory '%s'\n",(QCString().sprintf("d%x/d%02x",l1,l2)).data());
+ term("Failed to create output directory '%s'\n",subsubdir.data());
}
}
}