From 7508151230301113cf6531bfe631472fa4513d19 Mon Sep 17 00:00:00 2001 From: albert-github Date: Sat, 11 Aug 2018 16:28:18 +0200 Subject: Bug 634830 - Automatic links don't work correctly with operator< and operator<= A longer match was chosen by 'lex' resulting in that 'operator<' and 'operator<=' and the first argument were not correctly linked and color coded. We now test if the "operator" match is present, if so we use the right rule for operator. --- src/code.l | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/code.l b/src/code.l index 2c9b0ae..14a53ff 100644 --- a/src/code.l +++ b/src/code.l @@ -2597,6 +2597,13 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" g_name+=yytext+7; } {SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"("::"{ID})*/{B}* { // A *pt; + if (YY_START==Body) + { + // check for special case that starts with: operator{B}*<[=]?{B}*( + static QRegExp re("operator[ \t]*<[=]?[ \t]*("); + QString qq = yytext; + if (qq.find(re) == 0) REJECT; + } int i=QCString(yytext).find('<'); QCString kw = QCString(yytext).left(i).stripWhiteSpace(); if (kw.right(5)=="_cast" && YY_START==Body) -- cgit v0.12 From 8c838d66fae65187692ec5fc04389d0811860a7f Mon Sep 17 00:00:00 2001 From: albert-github Date: Wed, 5 Sep 2018 12:52:54 +0200 Subject: Remove double line with documented argument from addContentsItem in ftvhelp.cpp This is a problem of the internal doxygen generated documentation only. --- src/ftvhelp.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp index cee39f2..8c46fd5 100644 --- a/src/ftvhelp.cpp +++ b/src/ftvhelp.cpp @@ -171,11 +171,10 @@ void FTVHelp::decContentsDepth() /*! Add a list item to the contents file. * \param isDir TRUE if the item is a directory, FALSE if it is a text - * \param name The name of the item. + * \param name the name of the item. * \param ref the URL of to the item. * \param file the file containing the definition of the item * \param anchor the anchor within the file. - * \param name the name of the item. * \param separateIndex put the entries in a separate index file * \param addToNavIndex add this entry to the quick navigation index * \param def Definition corresponding to this entry -- cgit v0.12 From dc90259bb67126a6f3e016db2a67499945d6224f Mon Sep 17 00:00:00 2001 From: StefanBruens Date: Sat, 8 Sep 2018 03:45:39 +0200 Subject: Order resources not only on filename but also dirname Although the resource generation sorted files for each subdirectory, total order, i.e. including subdirectories, was not stable. As a result, the generated resources.cpp could be different on each build run. Fixes #6152 --- src/res2cc_cmd.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/res2cc_cmd.py b/src/res2cc_cmd.py index 7e0322d..86d999d 100755 --- a/src/res2cc_cmd.py +++ b/src/res2cc_cmd.py @@ -98,10 +98,11 @@ def main(): directory = sys.argv[1] files = [] for dirName, subdirList, fileList in walk(directory): - for fname in sorted(fileList): + for fname in fileList: subdir = dirName[len(directory)+1:] if dirName.startswith(directory) else dirName if subdir: files.append(File.factory(directory,subdir,fname)) + files.sort(key=lambda f: f.subdir + "/" + f.fileName) outputFile = open(sys.argv[2],"w") print("#include \"resourcemgr.h\"\n",file=outputFile) for f in files: -- cgit v0.12 From 44e4967edb03da825c899fea1c4fa226491e13f3 Mon Sep 17 00:00:00 2001 From: Croydon Date: Thu, 30 Aug 2018 09:55:36 +0200 Subject: Init Windows AppVeyor CI --- appveyor.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..636115f --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,36 @@ +image: Visual Studio 2017 + +configuration: + - Release + - Debug + +platform: + - x64 + - Win32 + +environment: + # VS VERSION IN CMAKE STYLE + matrix: + - VSVERSION: "15 2017" + - VSVERSION: "14 2015" + +init: + - cmake --version + +install: + - ps: Invoke-WebRequest https://github.com/lexxmark/winflexbison/releases/download/v2.5.15/win_flex_bison-2.5.15.zip -OutFile flex.zip + - 7z x flex.zip -oC:\deps\flex + - rename C:\deps\flex\win_bison.exe bison.exe + - rename C:\deps\flex\win_flex.exe flex.exe + - set "PATH=%PATH%;C:\deps\flex" + +before_build: + - if "%platform%"=="Win32" ( set "CMAKE_GENERATOR_NAME=Visual Studio %VSVERSION%" ) + - if "%platform%"=="x64" ( set "CMAKE_GENERATOR_NAME=Visual Studio %VSVERSION% Win64") + - mkdir build + - cd build + - cmake .. -G "%CMAKE_GENERATOR_NAME% + +build: + project: "build\\PACKAGE.vcxproj" + parallel: true -- cgit v0.12 From c573dc12a38d8de34f5f63e5e1e52b6f710ffbd8 Mon Sep 17 00:00:00 2001 From: Croydon Date: Sun, 2 Sep 2018 15:32:01 +0200 Subject: AppVeyor: Also execute tests and doc generation --- appveyor.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 636115f..62d084d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -16,21 +16,35 @@ environment: init: - cmake --version + - perl --version + - msbuild /version install: - ps: Invoke-WebRequest https://github.com/lexxmark/winflexbison/releases/download/v2.5.15/win_flex_bison-2.5.15.zip -OutFile flex.zip - 7z x flex.zip -oC:\deps\flex - rename C:\deps\flex\win_bison.exe bison.exe - rename C:\deps\flex\win_flex.exe flex.exe - - set "PATH=%PATH%;C:\deps\flex" + - ps: Invoke-WebRequest https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923/gs923w32.exe -OutFile gswin32c.exe + - gswin32c /S /D=C:\deps\ghostscript + - ps: choco install -y miktex + - refreshenv + - pip install conan + - conan install libxml2/2.9.8@bincrafters/stable -g virtualrunenv + - activate_run.bat + - set "PATH=%PATH%;C:\deps\ghostscript\bin;C:\deps\flex" before_build: - if "%platform%"=="Win32" ( set "CMAKE_GENERATOR_NAME=Visual Studio %VSVERSION%" ) - if "%platform%"=="x64" ( set "CMAKE_GENERATOR_NAME=Visual Studio %VSVERSION% Win64") - mkdir build - cd build - - cmake .. -G "%CMAKE_GENERATOR_NAME% + - cmake -G "%CMAKE_GENERATOR_NAME%" .. build: project: "build\\PACKAGE.vcxproj" parallel: true + +test_script: + - msbuild "testing\tests.vcxproj" /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" + - cmake -G "%CMAKE_GENERATOR_NAME%" -D build_doc=ON .. + - msbuild "doc\docs.vcxproj" /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" -- cgit v0.12 From cd9c5bb4ceb6bf9ce48c2861bdf72d5c1ff79752 Mon Sep 17 00:00:00 2001 From: Croydon Date: Mon, 3 Sep 2018 11:06:07 +0200 Subject: Prevent potential race condition --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 62d084d..8090d22 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -42,7 +42,7 @@ before_build: build: project: "build\\PACKAGE.vcxproj" - parallel: true + parallel: false test_script: - msbuild "testing\tests.vcxproj" /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" -- cgit v0.12 From 19deeb1181b0ab6fe3a06a5589012c5105272a34 Mon Sep 17 00:00:00 2001 From: Croydon Date: Thu, 6 Sep 2018 08:13:37 +0200 Subject: AppVeyor: Remove outdated renaming and update ghostscript Renaming of win_flex and win_bison is not any longer requires as the CMake find scripts are also looking for these binary names. Updating Ghostscript from 9.23 to 9.24 --- appveyor.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 8090d22..ad95ddf 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -22,9 +22,7 @@ init: install: - ps: Invoke-WebRequest https://github.com/lexxmark/winflexbison/releases/download/v2.5.15/win_flex_bison-2.5.15.zip -OutFile flex.zip - 7z x flex.zip -oC:\deps\flex - - rename C:\deps\flex\win_bison.exe bison.exe - - rename C:\deps\flex\win_flex.exe flex.exe - - ps: Invoke-WebRequest https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923/gs923w32.exe -OutFile gswin32c.exe + - ps: Invoke-WebRequest https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs924/gs924w32.exe -OutFile gswin32c.exe - gswin32c /S /D=C:\deps\ghostscript - ps: choco install -y miktex - refreshenv -- cgit v0.12 From 44278f94827cf772b9f679a6d9f5ea9d3a663b49 Mon Sep 17 00:00:00 2001 From: albert-github Date: Sun, 9 Sep 2018 13:40:38 +0200 Subject: Small correction installation / build procedure - Adding some indices - Adding python requirement for *nix --- doc/install.doc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/install.doc b/doc/install.doc index 497a0c0..519ee47 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -36,6 +36,7 @@ following to build the executable: \addindex make \addindex strip \addindex python +
  • You need \c python (version 2.6 or higher, see https://www.python.org).
  • In order to generate a \c Makefile for your platform, you need cmake version 2.8.12 or later. \addindex cmake @@ -151,6 +152,7 @@ standard installation procedure that is required for these packages. From version 1.8.10 onwards, build files need to be generated by cmake. cmake can be downloaded from https://cmake.org/download/ +\addindex cmake At the moment only the express version of Visual Studio 2013 is tested, but other version might also work. @@ -160,9 +162,12 @@ Alternatively, you can compile doxygen Cygwin or MinGW. +\addindex flex +\addindex bison The next step is to install modern versions of \c bison and \c flex (see https://sourceforge.net/projects/winflexbison/. After installation and adding them to your `path` rename `win_flex.exe` to `flex.exe` and `win_bison.exe` to `bison.exe`) +\addindex python Furthermore you have to install \c python (version 2.6 or higher, see https://www.python.org). These packages are needed during the compilation process. -- cgit v0.12 From b0d911e457e2e8f52ab6796d65e244df5f3881c3 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 9 Sep 2018 20:54:19 +0200 Subject: Update README.md added window's build status (via appveyor) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b30cdf..2ae297b 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,8 @@ The latest binaries and source of Doxygen can be downloaded from: Developers --------- -* Build Status: +* Linux Build Status: +* Windows Build Status: * Coverity Scan Build Status: Coverity Scan Build Status -- cgit v0.12 From cd2cbe4b044257ca984db6f70c7240079f5390f9 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 9 Sep 2018 21:00:04 +0200 Subject: Update README.md corrected URL to appveyer build page --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ae297b..b24a480 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ The latest binaries and source of Doxygen can be downloaded from: Developers --------- * Linux Build Status: -* Windows Build Status: +* Windows Build Status: * Coverity Scan Build Status: Coverity Scan Build Status -- cgit v0.12 From eef433c0531f8f5321f3034bcc5bed02c006f2cf Mon Sep 17 00:00:00 2001 From: albert-github Date: Mon, 10 Sep 2018 16:44:11 +0200 Subject: Issue 6494: asterisks before args and kwargs are ignored in python Added asterisks in the type field. The type is temporary stored in a variable as the argument field has not yet been defined for its argument. --- src/pyscanner.l | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pyscanner.l b/src/pyscanner.l index 2adf632..7b5a424 100644 --- a/src/pyscanner.l +++ b/src/pyscanner.l @@ -118,6 +118,7 @@ static bool g_packageCommentAllowed; static bool g_start_init = FALSE; static int g_search_count = 0; +static QCString g_argType = ""; //----------------------------------------------------------------------------- @@ -959,12 +960,16 @@ STARTDOCSYMS "##" ({BB}|",") { } + [\*]+ { + g_argType = yytext; + } {IDENTIFIER} { // Name of parameter lineCount(); Argument *a = new Argument; current->argList->append(a); current->argList->getLast()->name = QCString(yytext).stripWhiteSpace(); - current->argList->getLast()->type = ""; + current->argList->getLast()->type = g_argType; + g_argType = ""; } "=" { // default value // TODO: this rule is too simple, need to be able to -- cgit v0.12 From fd0d0b5902cfd4a748d1834d2ee8442a79d13184 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Mon, 10 Sep 2018 18:39:48 +0200 Subject: Update appveyor.yml disabled vs2017 build for now --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index ad95ddf..05e726c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -image: Visual Studio 2017 +image: Visual Studio 2015 configuration: - Release @@ -11,7 +11,7 @@ platform: environment: # VS VERSION IN CMAKE STYLE matrix: - - VSVERSION: "15 2017" +# - VSVERSION: "15 2017", disabled until it starts working - VSVERSION: "14 2015" init: -- cgit v0.12 From 510f342b4d6f61f4ea6f0e7cab5531895bc86a20 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Mon, 10 Sep 2018 19:04:05 +0200 Subject: Changed state guard instead of adding pattern check+reject --- src/code.l | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/code.l b/src/code.l index 14a53ff..e5e0361 100644 --- a/src/code.l +++ b/src/code.l @@ -2596,14 +2596,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" generatePHPVariableLink(*g_code,yytext); g_name+=yytext+7; } -{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"("::"{ID})*/{B}* { // A *pt; - if (YY_START==Body) - { - // check for special case that starts with: operator{B}*<[=]?{B}*( - static QRegExp re("operator[ \t]*<[=]?[ \t]*("); - QString qq = yytext; - if (qq.find(re) == 0) REJECT; - } +{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>\(]*">"("::"{ID})*/{B}* { // A *pt; int i=QCString(yytext).find('<'); QCString kw = QCString(yytext).left(i).stripWhiteSpace(); if (kw.right(5)=="_cast" && YY_START==Body) -- cgit v0.12 From f8c353715a69341f9e4658cd59e750a0adf6bd5d Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Mon, 10 Sep 2018 19:59:30 +0200 Subject: Update appveyor.yml Re-enabled vc2017, disabled debug build and building docs & tests until made working reliably --- appveyor.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 05e726c..06a1d76 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,8 +1,8 @@ -image: Visual Studio 2015 +image: Visual Studio 2017 configuration: - Release - - Debug +# - Debug platform: - x64 @@ -11,7 +11,7 @@ platform: environment: # VS VERSION IN CMAKE STYLE matrix: -# - VSVERSION: "15 2017", disabled until it starts working + - VSVERSION: "15 2017" - VSVERSION: "14 2015" init: @@ -42,7 +42,7 @@ build: project: "build\\PACKAGE.vcxproj" parallel: false -test_script: - - msbuild "testing\tests.vcxproj" /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" - - cmake -G "%CMAKE_GENERATOR_NAME%" -D build_doc=ON .. - - msbuild "doc\docs.vcxproj" /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" +#test_script: +# - msbuild "testing\tests.vcxproj" /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" +# - cmake -G "%CMAKE_GENERATOR_NAME%" -D build_doc=ON .. +# - msbuild "doc\docs.vcxproj" /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" -- cgit v0.12 From ab80e5dff5e3f3f1e9ce473ea25894ca08d1f739 Mon Sep 17 00:00:00 2001 From: albert-github Date: Tue, 11 Sep 2018 12:31:17 +0200 Subject: Namespace with name docstrings_linebreak As a regression on pull request #674 in respect to the moving of the markdown handling place the `\_linebreak` command is not translated anymore. In fact the `\_linebreak` is not necessary at all only the space is required as the `\namespace` command takes just one word as argument. --- src/pyscanner.l | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pyscanner.l b/src/pyscanner.l index 7b5a424..cd7c256 100644 --- a/src/pyscanner.l +++ b/src/pyscanner.l @@ -1430,7 +1430,7 @@ STARTDOCSYMS "##" actualDoc.prepend("\\verbatim "); actualDoc.append("\\endverbatim "); } - actualDoc.prepend("\\namespace "+g_moduleScope+"\\_linebr "); + actualDoc.prepend("\\namespace "+g_moduleScope+" "); handleCommentBlock(actualDoc, FALSE); } if ((docBlockContext==ClassBody /*&& !g_hideClassDocs*/) || -- cgit v0.12 From 70c2d03e6ca38009ac144b11d7c7cd5ef4f2d3e8 Mon Sep 17 00:00:00 2001 From: "Michael \"Croydon\" Keck" Date: Tue, 11 Sep 2018 16:07:58 +0200 Subject: Update install.doc: Qt 5 is now supported as well --- doc/install.doc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/install.doc b/doc/install.doc index 519ee47..7df0dee 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -49,7 +49,7 @@ tools should be installed.
  • Qt Software's GUI toolkit Qt \addindex Qt - version 4.3 or higher (but currently, Qt 5.x is not yet supported). + version 4.3 or higher (including Qt 5). This is needed to build the GUI front-end doxywizard.
  • A \LaTeX distribution: for instance TeX Live @@ -179,7 +179,7 @@ cd c:\tools tar zxvf doxygen-x.y.z.src.tar.gz \endverbatim to unpack the sources (you can obtain \c tar from e.g. http://gnuwin32.sourceforge.net/packages.html). -Alternatively you can use an unpack program, like 7-Zip (see http://www.7-zip.org) +Alternatively you can use an unpack program, like 7-Zip (see https://www.7-zip.org/) or use the build in unpack feature of modern Windows systems). Now your environment is setup to generate the required project files for \c doxygen. @@ -191,8 +191,8 @@ cd build cmake -G "Visual Studio 12 2013" .. \endverbatim -Note that compiling Doxywizard currently requires Qt version 4 -(see http://qt-project.org/). +Note that compiling Doxywizard requires Qt 4.3 or newer +(see https://www.qt.io/developers/). Also read the next section for additional tools you may need to install to run doxygen with certain features enabled. @@ -224,7 +224,7 @@ install LaTeX and For \LaTeX a number of distributions exists. Popular ones that should work with doxygen are MikTex -and proTeXt. +and proTeXt. Ghostscript can be downloaded from Sourceforge. -- cgit v0.12 From ef9c151c86073f107ec6556b779cd7b8da3154eb Mon Sep 17 00:00:00 2001 From: albert-github Date: Tue, 11 Sep 2018 19:35:49 +0200 Subject: Close last code line properly. When ending code fragment, check if last code line is closed, if this is not the case close it. (problem observed with inline code in Python, but might happen on other places as well) --- src/latexgen.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 13a88a9..50d4242 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -2222,11 +2222,9 @@ void LatexGenerator::startCodeFragment() void LatexGenerator::endCodeFragment() { - //if (DoxyCodeOpen) - //{ - // t << "}\n"; - // DoxyCodeOpen = FALSE; - //} + //endCodeLine checks is there is still an open code line, if so closes it. + endCodeLine(); + t << "\\end{DoxyCode}\n"; DoxyCodeOpen = FALSE; } -- cgit v0.12 From 281017b5bc493510a257d3c355d3744f78359e40 Mon Sep 17 00:00:00 2001 From: Croydon Date: Wed, 12 Sep 2018 17:45:24 +0200 Subject: Init macOS CI --- .travis.yml | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 071a7d1..7a370da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: cpp os: - - linux-ppc64le + - linux-ppc64le - linux dist: xenial compiler: @@ -22,6 +22,32 @@ addons: - cmake - cmake-data +jobs: + include: + - os: osx + compiler: clang + +before_script: + - if [ "${TRAVIS_OS_NAME}" == "osx" ]; then + pip install --quiet conan; + export HOMEBREW_NO_AUTO_UPDATE=1; + brew install ghostscript; + + travis_wait brew cask install mactex-no-gui; + curl -O -L http://mirrors.ctan.org/support/epstopdf.zip; + unzip epstopdf.zip; + mkdir -p /Users/travis/Library/TeX/texbin/; + mv epstopdf/epstopdf.pl /Users/travis/Library/TeX/texbin/epstopdf; + chmod a+x /Users/travis/Library/TeX/texbin/epstopdf; + rm -rf epstopdf*; + export PATH=/Users/travis/Library/TeX/texbin:/Library/TeX/texbin:$PATH; + + conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan; + printf "[requires] \nlibxml2/2.9.8@bincrafters/stable \nQt/5.11.1@bincrafters/stable" >> conanfile.txt; + conan install . -g virtualrunenv; + source activate_run.sh; + fi; + script: - mkdir build - cd build -- cgit v0.12 From 0a4b995cdd7735aaf42c423eed2889db5b8617ef Mon Sep 17 00:00:00 2001 From: albert-github Date: Wed, 12 Sep 2018 18:41:33 +0200 Subject: Fixing problem with possible not initialized variable (endless loop in VS 2017 debug) The not initialized variable `l` caused and endless loop in the VS2017 debug version, variable should not have been used. --- src/definition.cpp | 2 +- src/xmlgen.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/definition.cpp b/src/definition.cpp index cbfad94..66387bc 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -1633,7 +1633,7 @@ void Definition::writeToc(OutputList &ol, const LocalToc &localToc) int level=1,l; char cs[2]; cs[1]='\0'; - bool inLi[5]={ FALSE, FALSE, FALSE, FALSE }; + bool inLi[5]={ FALSE, FALSE, FALSE, FALSE, FALSE }; for (li.toFirst();(si=li.current());++li) { if (si->type==SectionInfo::Section || diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index e68c454..be866a2 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -1845,7 +1845,7 @@ static void generateXMLForPage(PageDef *pd,FTextStream &ti,bool isExample) SDict::Iterator li(*sectionDict); SectionInfo *si; int level=1,l; - bool inLi[5]={ FALSE, FALSE, FALSE, FALSE }; + bool inLi[5]={ FALSE, FALSE, FALSE, FALSE, FALSE }; int maxLevel = pd->localToc().xmlLevel(); for (li.toFirst();(si=li.current());++li) { @@ -1872,16 +1872,16 @@ static void generateXMLForPage(PageDef *pd,FTextStream &ti,bool isExample) if (l <= maxLevel) t << " " << endl; } } - if (l <= maxLevel && inLi[nextLevel]) t << " " << endl; if (nextLevel <= maxLevel) { + if (inLi[nextLevel]) t << " " << endl; QCString titleDoc = convertToXML(si->title); t << " " << endl; t << " " << (si->title.isEmpty()?si->label:titleDoc) << "" << endl; t << " " << convertToXML(pageName) << "_1" << convertToXML(si -> label) << "" << endl; + inLi[nextLevel]=TRUE; + level = nextLevel; } - inLi[nextLevel]=TRUE; - level = nextLevel; } } while (level>1 && level <= maxLevel) -- cgit v0.12 From 404eec5fce27f2c11060a000a22fb4b00e904936 Mon Sep 17 00:00:00 2001 From: Croydon Date: Thu, 13 Sep 2018 02:54:52 +0200 Subject: Readme: Travis displays macOS build status as well --- README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index b24a480..ab3f7fc 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ Doxygen =============== -Doxygen is the de facto standard tool for generating documentation from -annotated C++ sources, but it also supports other popular programming -languages such as C, Objective-C, C#, PHP, Java, Python, IDL -(Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, +Doxygen is the de facto standard tool for generating documentation from +annotated C++ sources, but it also supports other popular programming +languages such as C, Objective-C, C#, PHP, Java, Python, IDL +(Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D. Doxygen can help you in three ways: -1. It can generate an on-line documentation browser (in HTML) and/or an - off-line reference manual (in LaTeX) from a set of documented source files. - There is also support for generating output in RTF (MS-Word), PostScript, - hyperlinked PDF, compressed HTML, DocBook and Unix man pages. - The documentation is extracted directly from the sources, which makes +1. It can generate an on-line documentation browser (in HTML) and/or an + off-line reference manual (in LaTeX) from a set of documented source files. + There is also support for generating output in RTF (MS-Word), PostScript, + hyperlinked PDF, compressed HTML, DocBook and Unix man pages. + The documentation is extracted directly from the sources, which makes it much easier to keep the documentation consistent with the source code. -2. You can configure doxygen to extract the code structure from undocumented - source files. This is very useful to quickly find your way in large - source distributions. Doxygen can also visualize the relations between - the various elements by means of include dependency graphs, inheritance +2. You can configure doxygen to extract the code structure from undocumented + source files. This is very useful to quickly find your way in large + source distributions. Doxygen can also visualize the relations between + the various elements by means of include dependency graphs, inheritance diagrams, and collaboration diagrams, which are all generated automatically. -3. You can also use doxygen for creating normal documentation (as I did for +3. You can also use doxygen for creating normal documentation (as I did for the doxygen user manual and doxygen web-site). Download @@ -29,7 +29,7 @@ The latest binaries and source of Doxygen can be downloaded from: Developers --------- -* Linux Build Status: +* Linux & macOS Build Status: * Windows Build Status: * Coverity Scan Build Status: Coverity Scan Build Status @@ -37,7 +37,7 @@ Developers * Doxygen's Doxygen Documentation: * Install - * Quick install see (./INSTALL) + * Quick install see (./INSTALL) * else http://www.doxygen.org/manual/install.html * Project stats: https://www.openhub.net/p/doxygen @@ -60,7 +60,7 @@ There are three mailing lists: Source Code ---------------------------------- -In May 2013, Doxygen moved from +In May 2013, Doxygen moved from subversion to git hosted at GitHub * https://github.com/doxygen/doxygen -- cgit v0.12 From 99f948c038b763028fcb95ef2a65fdbc1d5f9520 Mon Sep 17 00:00:00 2001 From: albert-github Date: Thu, 13 Sep 2018 18:01:21 +0200 Subject: Fixing coverity messages Note: especially latexdocvisitor (dead code that should not be dead code). --- src/clangparser.cpp | 1 + src/context.cpp | 12 ++++++++---- src/definition.cpp | 1 + src/docparser.h | 2 +- src/htmlgen.cpp | 1 + src/latexdocvisitor.cpp | 2 +- src/layout.cpp | 2 +- src/layout.h | 3 ++- src/perlmodgen.cpp | 2 +- src/pyscanner.l | 1 - src/tagreader.cpp | 4 ++-- src/tclscanner.l | 1 - 12 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/clangparser.cpp b/src/clangparser.cpp index 78b8faa..18dd404 100644 --- a/src/clangparser.cpp +++ b/src/clangparser.cpp @@ -964,6 +964,7 @@ void ClangParser::writeSources(CodeOutputInterface &,FileDef *) ClangParser::ClangParser() { + p = NULL; } ClangParser::~ClangParser() diff --git a/src/context.cpp b/src/context.cpp index c9a6bb3..33e7dcf 100644 --- a/src/context.cpp +++ b/src/context.cpp @@ -6978,7 +6978,8 @@ class NamespaceTreeContext::Private SharedPtr m_namespaceTree; struct Cachable { - Cachable() : maxDepthComputed(FALSE), preferredDepthComputed(FALSE) {} + Cachable() : maxDepth(0), maxDepthComputed(FALSE), + preferredDepth(0), preferredDepthComputed(FALSE) {} int maxDepth; bool maxDepthComputed; int preferredDepth; @@ -7352,7 +7353,8 @@ class PageTreeContext::Private SharedPtr m_pageTree; struct Cachable { - Cachable() : maxDepthComputed(FALSE), preferredDepthComputed(FALSE) {} + Cachable() : maxDepth(0), maxDepthComputed(FALSE), + preferredDepth(0), preferredDepthComputed(FALSE) {} int maxDepth; bool maxDepthComputed; int preferredDepth; @@ -7604,7 +7606,8 @@ class ModuleTreeContext::Private SharedPtr m_moduleTree; struct Cachable { - Cachable() : maxDepthComputed(FALSE), preferredDepthComputed(FALSE) {} + Cachable() : maxDepth(0), maxDepthComputed(FALSE), + preferredDepth(0), preferredDepthComputed(FALSE) {} int maxDepth; bool maxDepthComputed; int preferredDepth; @@ -7807,7 +7810,8 @@ class ExampleTreeContext::Private SharedPtr m_exampleTree; struct Cachable { - Cachable() : maxDepthComputed(FALSE), preferredDepthComputed(FALSE) {} + Cachable() : maxDepth(0), maxDepthComputed(FALSE), + preferredDepth(0), preferredDepthComputed(FALSE) {} int maxDepth; bool maxDepthComputed; int preferredDepth; diff --git a/src/definition.cpp b/src/definition.cpp index cbfad94..9a4bd08 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -304,6 +304,7 @@ Definition::Definition(const Definition &d) : DefinitionIntf(), m_cookie(0) { m_name = d.m_name; m_defLine = d.m_defLine; + m_defColumn = d.m_defColumn; m_impl = new DefinitionImpl; *m_impl = *d.m_impl; m_impl->sectionDict = 0; diff --git a/src/docparser.h b/src/docparser.h index 6b75426..25602cf 100644 --- a/src/docparser.h +++ b/src/docparser.h @@ -1370,7 +1370,7 @@ class DocHtmlTable : public CompAccept { public: DocHtmlTable(DocNode *parent,const HtmlAttribList &attribs) - : m_attribs(attribs) { m_caption=0; m_parent = parent; } + : m_attribs(attribs) { m_caption=0; m_numCols=0; m_parent = parent; } ~DocHtmlTable() { delete m_caption; } Kind kind() const { return Kind_HtmlTable; } uint numRows() const { return m_children.count(); } diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index ee23fb8..8819078 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -690,6 +690,7 @@ HtmlGenerator::HtmlGenerator() : OutputGenerator() { dir=Config_getString(HTML_OUTPUT); m_emptySection=FALSE; + m_sectionCount=0; } HtmlGenerator::~HtmlGenerator() diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index c35ef11..452a481 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -1177,8 +1177,8 @@ void LatexDocVisitor::visitPre(DocHtmlCell *c) m_t << "r|}{"; break; case DocHtmlCell::Center: - break; m_t << "c|}{"; + break; default: m_t << "l|}{"; break; diff --git a/src/layout.cpp b/src/layout.cpp index 1d9a5ed..a3849b5 100644 --- a/src/layout.cpp +++ b/src/layout.cpp @@ -1268,7 +1268,7 @@ class LayoutParser : public QXmlDefaultHandler } private: - LayoutParser() : m_sHandler(163), m_eHandler(17), m_invalidEntry(FALSE) { } + LayoutParser() : m_sHandler(163), m_eHandler(17), m_invalidEntry(FALSE), m_part(0), m_rootNav(NULL) { } ~LayoutParser() { delete m_rootNav; } QDict m_sHandler; diff --git a/src/layout.h b/src/layout.h index 0b9ad9e..1906a3d 100644 --- a/src/layout.h +++ b/src/layout.h @@ -119,6 +119,7 @@ struct LayoutNavEntry { public: enum Kind { + None = -1, MainPage, Pages, Modules, @@ -158,7 +159,7 @@ struct LayoutNavEntry LayoutNavEntry *find(LayoutNavEntry::Kind k,const char *file=0) const; private: - LayoutNavEntry() : m_parent(0) {} + LayoutNavEntry() : m_parent(0), m_kind(None), m_visible(FALSE) {} LayoutNavEntry *m_parent; Kind m_kind; bool m_visible; diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp index f805383..5b4b6ea 100644 --- a/src/perlmodgen.cpp +++ b/src/perlmodgen.cpp @@ -428,7 +428,7 @@ private: }; PerlModDocVisitor::PerlModDocVisitor(PerlModOutput &output) - : DocVisitor(DocVisitor_Other), m_output(output), m_textmode(false) + : DocVisitor(DocVisitor_Other), m_output(output), m_textmode(false), m_textblockstart(FALSE) { m_output.openList("doc"); } diff --git a/src/pyscanner.l b/src/pyscanner.l index 7b5a424..19dc1ad 100644 --- a/src/pyscanner.l +++ b/src/pyscanner.l @@ -1401,7 +1401,6 @@ STARTDOCSYMS "##" BEGIN(Search); } <> { yyterminate(); - newEntry(); } } diff --git a/src/tagreader.cpp b/src/tagreader.cpp index cf64a35..82e4712 100644 --- a/src/tagreader.cpp +++ b/src/tagreader.cpp @@ -95,8 +95,8 @@ class TagMemberInfo class TagClassInfo { public: - enum Kind { Class, Struct, Union, Interface, Exception, Protocol, Category, Enum, Service, Singleton }; - TagClassInfo() { bases=0, templateArguments=0; members.setAutoDelete(TRUE); isObjC=FALSE; } + enum Kind { None=-1, Class, Struct, Union, Interface, Exception, Protocol, Category, Enum, Service, Singleton }; + TagClassInfo() { bases=0, templateArguments=0; members.setAutoDelete(TRUE); isObjC=FALSE; kind = None; } ~TagClassInfo() { delete bases; delete templateArguments; } QCString name; QCString filename; diff --git a/src/tclscanner.l b/src/tclscanner.l index 7ca5ade..ca5294b 100644 --- a/src/tclscanner.l +++ b/src/tclscanner.l @@ -1431,7 +1431,6 @@ tcl_inf("(%d) ?%s?\n",what,tcl.string_last.data()); yyless(0); tcl_inf("(.%d) ?%s?\n",what,tcl.string_last.data()); return; - myWhite=0; break; default: tcl_err("wrong state: %d\n",what); -- cgit v0.12 From b7cdfc8d47dc7a7f86605bbbc74aa78501d2bc33 Mon Sep 17 00:00:00 2001 From: albert-github Date: Thu, 13 Sep 2018 18:06:48 +0200 Subject: Fixing coverity messages (Namespace tag) Correcting missing break in namespace when writing a tag file. (Could not find a case; incase the FALL THROUGH case is correct this has to be clearly indicated in the code). --- src/namespacedef.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp index d3eb0df..8e6c881 100644 --- a/src/namespacedef.cpp +++ b/src/namespacedef.cpp @@ -326,6 +326,7 @@ void NamespaceDef::writeTagFile(FTextStream &tagFile) } } } + break; case LayoutDocEntry::MemberDecl: { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; -- cgit v0.12 From 9766554d63dd85ba8857fe18eb7064c84b0231f6 Mon Sep 17 00:00:00 2001 From: albert-github Date: Fri, 14 Sep 2018 15:55:30 +0200 Subject: Usage of '{', '}' and ',' in ALIAS Based on the stack overflow question: https://stackoverflow.com/questions/52314045/how-to-use-addtogroup-with-an-aliases-command/52314821#52314821 ALIASES += opengroup{1}="^^* \addtogroup \1_GROUP ^^ * \{ ^^" ALIASES += close="\}" /** \opengroup{LEVEL_1} */ // ...code statements... /** \close */ // opengroup Does not create a group due to the change of `\{` to just `}`, this behavior has been documented now. --- doc/custcmd.doc | 5 +++++ src/config.xml | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/doc/custcmd.doc b/doc/custcmd.doc index acc0224..02805da 100644 --- a/doc/custcmd.doc +++ b/doc/custcmd.doc @@ -44,6 +44,11 @@ Note that you can put `\n`'s in the value part of an alias to insert newlines (in the resulting output). You can put `^^` in the value part of an alias to insert a newline as if a physical newline was in the original file. +Note when you need a literal `{` or `}` or `,` in the value part of an alias you have to +escape them by means of a backslash (`\`), this can lead to conflicts with the +commands \c \\{ and \c \\} for these it is advised to use the version \c @@{ and \c @@} or +use a double escape (\c \\\\{ and \c \\\\}) + Also note that you can redefine existing special commands if you wish. Some commands, such as \ref cmdxrefitem "\\xrefitem" are designed to be used in diff --git a/src/config.xml b/src/config.xml index e12141c..08795dc 100644 --- a/src/config.xml +++ b/src/config.xml @@ -551,6 +551,30 @@ Go to the next section or return to the a physical newline was in the original file. ]]> + + + + + + + + +