summaryrefslogtreecommitdiffstats
path: root/src/template.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-03-11 22:05:13 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-03-18 20:57:40 (GMT)
commit0d05e79d67b5b808918541f429b06805207e8bdb (patch)
tree2ab5bbcc57e494bfef99421e99a84af0eb8d9797 /src/template.cpp
parent3204a2206aa617b41c6da5999c3b826057d274f3 (diff)
downloadDoxygen-0d05e79d67b5b808918541f429b06805207e8bdb.zip
Doxygen-0d05e79d67b5b808918541f429b06805207e8bdb.tar.gz
Doxygen-0d05e79d67b5b808918541f429b06805207e8bdb.tar.bz2
Refactoring: Replaced QDir with Dir
- Dir is based on ghc::filesystem, a std::filesystem compatible implementation that does not require C++17.
Diffstat (limited to 'src/template.cpp')
-rw-r--r--src/template.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/template.cpp b/src/template.cpp
index 989b596..ae55fc4 100644
--- a/src/template.cpp
+++ b/src/template.cpp
@@ -22,7 +22,6 @@
#include <cstdio>
#include <qfile.h>
-#include <qdir.h>
#include "ftextstream.h"
#include "message.h"
@@ -31,6 +30,7 @@
#include "portable.h"
#include "regex.h"
#include "fileinfo.h"
+#include "dir.h"
#define ENABLE_TRACING 0
@@ -2772,36 +2772,35 @@ template<class T> class TemplateNodeCreator : public TemplateNode
return dynamic_cast<TemplateImpl*>(root);
}
protected:
- void mkpath(TemplateContextImpl *ci,const QCString &fileName)
+ void mkpath(TemplateContextImpl *ci,const std::string &fileName)
{
- int i=fileName.find('/');
- QCString outputDir = ci->outputDirectory();
- QDir d(outputDir);
+ size_t i=fileName.find('/');
+ std::string outputDir = ci->outputDirectory().str();
+ Dir d(outputDir);
if (!d.exists())
{
- QDir rootDir;
- rootDir.setPath(QDir::currentDirPath());
+ Dir rootDir;
if (!rootDir.mkdir(outputDir))
{
err("tag OUTPUT_DIRECTORY: Output directory '%s' does not "
- "exist and cannot be created\n",outputDir.data());
+ "exist and cannot be created\n",outputDir.c_str());
return;
}
d.setPath(outputDir);
}
- int j=0;
- while (i!=-1) // fileName contains path part
+ size_t j=0;
+ while (i!=std::string::npos) // fileName contains path part
{
if (d.exists())
{
- bool ok = d.mkdir(fileName.mid(j,i-j));
+ bool ok = d.mkdir(fileName.substr(j,i-j));
if (!ok)
{
- err("Failed to create directory '%s'\n",(fileName.mid(j,i-j)).data());
+ err("Failed to create directory '%s'\n",(fileName.substr(j,i-j)).c_str());
break;
}
- QCString dirName = outputDir+'/'+fileName.left(i);
- d = QDir(dirName);
+ std::string dirName = outputDir+'/'+fileName.substr(0,i);
+ d = Dir(dirName);
j = i+1;
}
i=fileName.find('/',i+1);
@@ -3629,7 +3628,7 @@ class TemplateNodeCreate : public TemplateNodeCreator<TemplateNodeCreate>
TemplateImpl *createTemplate = ct ? dynamic_cast<TemplateImpl*>(ct) : 0;
if (createTemplate)
{
- mkpath(ci,outputFile);
+ mkpath(ci,outputFile.str());
if (!ci->outputDirectory().isEmpty())
{
outputFile.prepend(ci->outputDirectory()+"/");
@@ -4338,7 +4337,7 @@ class TemplateNodeResource : public TemplateNodeCreator<TemplateNodeResource>
if (m_asExpr)
{
QCString targetFile = m_asExpr->resolve(c).toString();
- mkpath(ci,targetFile);
+ mkpath(ci,targetFile.str());
if (targetFile.isEmpty())
{ ci->warn(m_templateName,m_line,"invalid parameter at right side of 'as' for resource command\n");
}