From 3204a2206aa617b41c6da5999c3b826057d274f3 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Mon, 8 Mar 2021 23:00:00 +0100 Subject: Refactoring: Replaced QFileInfo with FileInfo - FileInfo is based on ghc::filesystem, a std::filesystem compatible implementation that does not require C++17. --- src/CMakeLists.txt | 1 + src/cite.cpp | 90 +- src/classdef.cpp | 6 +- src/configimpl.l | 47 +- src/docbookvisitor.cpp | 15 +- src/docparser.cpp | 12 +- src/dotgraph.cpp | 7 +- src/doxygen.cpp | 81 +- src/filedef.cpp | 4 +- src/filedef.h | 2 +- src/fileinfo.cpp | 130 ++ src/fileinfo.h | 47 + src/filesystem.hpp | 5809 +++++++++++++++++++++++++++++++++++++++++++++++ src/formula.cpp | 11 +- src/ftvhelp.cpp | 1 - src/htags.cpp | 3 +- src/htmldocvisitor.cpp | 13 +- src/htmlgen.cpp | 31 +- src/htmlhelp.cpp | 4 +- src/latexdocvisitor.cpp | 14 +- src/latexgen.cpp | 18 +- src/layout.cpp | 1 - src/linkedmap.h | 32 +- src/mandocvisitor.cpp | 15 +- src/markdown.cpp | 19 +- src/perlmodgen.cpp | 15 - src/plantuml.cpp | 5 +- src/portable.cpp | 8 +- src/pre.l | 30 +- src/pyscanner.l | 13 +- src/rtfdocvisitor.cpp | 15 +- src/sqlite3gen.cpp | 9 +- src/template.cpp | 3 +- src/util.cpp | 78 +- src/util.h | 2 + src/vhdldocgen.cpp | 1 - src/vhdljjparser.cpp | 1 - src/xmldocvisitor.cpp | 15 +- 38 files changed, 6326 insertions(+), 282 deletions(-) create mode 100644 src/fileinfo.cpp create mode 100644 src/fileinfo.h create mode 100644 src/filesystem.hpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7b421f6..6f47e15 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -256,6 +256,7 @@ add_library(doxymain STATIC emoji.cpp entry.cpp filedef.cpp + fileinfo.cpp fileparser.cpp formula.cpp ftvhelp.cpp diff --git a/src/cite.cpp b/src/cite.cpp index ab090e0..914fbc6 100644 --- a/src/cite.cpp +++ b/src/cite.cpp @@ -23,9 +23,9 @@ #include "resourcemgr.h" #include "util.h" #include "debug.h" +#include "fileinfo.h" #include -#include #include #include @@ -112,7 +112,7 @@ void CitationManager::insertCrossReferencesForBibFile(const QCString &bibFile) { return; } - QFileInfo fi(bibFile); + FileInfo fi(bibFile.str()); if (!fi.exists()) { err("bib file %s not found!\n",bibFile.data()); @@ -287,7 +287,7 @@ void CitationManager::generatePage() { QCString bibFile = bibdata.c_str(); if (!bibFile.isEmpty() && bibFile.right(4)!=".bib") bibFile+=".bib"; - QFileInfo fi(bibFile); + FileInfo fi(bibFile.str()); if (fi.exists()) { if (!bibFile.isEmpty()) @@ -317,55 +317,57 @@ void CitationManager::generatePage() QDir::setCurrent(oldDir); // 6. read back the file - f.setName(citeListFile); - if (!f.open(IO_ReadOnly)) - { - err("could not open file %s for reading\n",citeListFile.data()); - } - QCString doc; - QFileInfo fi(citeListFile); - QCString input(fi.size()+1); - f.readBlock(input.rawData(),fi.size()); - f.close(); - input.at(fi.size())='\0'; - - bool insideBib=FALSE; - int pos=0,s; - //printf("input=[%s]\n",input.data()); - while ((s=input.find('\n',pos))!=-1) { - QCString line = input.mid((uint)pos,(uint)(s-pos)); - //printf("pos=%d s=%d line=[%s]\n",pos,s,line.data()); - pos=s+1; + f.setName(citeListFile); + if (!f.open(IO_ReadOnly)) + { + err("could not open file %s for reading\n",citeListFile.data()); + } + + FileInfo fi(citeListFile.str()); + QCString input(fi.size()+1); + f.readBlock(input.rawData(),fi.size()); + f.close(); + input.at(fi.size())='\0'; - if (line.find("