diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2021-03-01 23:14:53 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2021-03-01 23:14:53 +0000 |
commit | bff805dae562bb64a0d6322808808c4c5a68eeb0 (patch) | |
tree | b094964522bc3465312a306cea4c059b70e007e3 | |
parent | e74876f1b828b6c883ef9f6a6088eed8651cf840 (diff) | |
parent | 69f9509c2bb973071a97af3cb21fda2866848cd0 (diff) | |
download | swig-bff805dae562bb64a0d6322808808c4c5a68eeb0.tar.gz |
Merge branch 'ignore-empty-doxygen-commands'
* ignore-empty-doxygen-commands:
Fix incorrect warning "Unknown Doxygen command: ."
Don't use invalid iterators in Doxygen command parsing code
Conflicts:
CHANGES.current
-rw-r--r-- | CHANGES.current | 3 | ||||
-rw-r--r-- | Examples/test-suite/doxygen_parsing.i | 1 | ||||
-rw-r--r-- | Examples/test-suite/java/doxygen_parsing_runme.java | 6 | ||||
-rw-r--r-- | Source/Doxygen/doxyparser.cxx | 12 |
4 files changed, 22 insertions, 0 deletions
diff --git a/CHANGES.current b/CHANGES.current index c5400b381..cf0fcd142 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -7,6 +7,9 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/ Version 4.1.0 (in progress) =========================== +2021-03-01: vadz + #1952 Fix incorrect warning "Unknown Doxygen command: ." + 2021-02-28: p2k #969 [Javascript] v8/node - prevent crash calling a constructor without new keyword. diff --git a/Examples/test-suite/doxygen_parsing.i b/Examples/test-suite/doxygen_parsing.i index 40f37a4c2..3a559053d 100644 --- a/Examples/test-suite/doxygen_parsing.i +++ b/Examples/test-suite/doxygen_parsing.i @@ -29,6 +29,7 @@ enum SomeEnum */ struct SomeStruct { + int width; ///< \**immutable** image width in pixels }; /** diff --git a/Examples/test-suite/java/doxygen_parsing_runme.java b/Examples/test-suite/java/doxygen_parsing_runme.java index 10d65fca8..29e524f78 100644 --- a/Examples/test-suite/java/doxygen_parsing_runme.java +++ b/Examples/test-suite/java/doxygen_parsing_runme.java @@ -45,6 +45,12 @@ public class doxygen_parsing_runme { " The struct comment \n" + " \n" + ""); + wantedComments.put("doxygen_parsing.SomeStruct.setWidth(int)", + "**immutable** image width in pixels \n" + + ""); + wantedComments.put("doxygen_parsing.SomeStruct.getWidth()", + "**immutable** image width in pixels \n" + + ""); wantedComments.put("doxygen_parsing.doxygen_parsing.setSomeVar(int)", " The var comment \n" + " \n" + diff --git a/Source/Doxygen/doxyparser.cxx b/Source/Doxygen/doxyparser.cxx index 35d18363f..d5a0a15eb 100644 --- a/Source/Doxygen/doxyparser.cxx +++ b/Source/Doxygen/doxyparser.cxx @@ -1081,6 +1081,13 @@ bool DoxygenParser::addDoxyCommand(DoxygenParser::TokenList &tokList, const std: tokList.push_back(Token(COMMAND, cmd)); return true; } else { + if (cmd.empty()) { + // This actually indicates a bug in the code in this file, as this + // function shouldn't be called at all in this case. + printListError(WARN_DOXYGEN_UNKNOWN_COMMAND, "Unexpected empty Doxygen command."); + return false; + } + // This function is called for the special Doxygen commands, but also for // HTML commands (or anything that looks like them, actually) and entities. // We don't recognize all of those, so just ignore them and pass them @@ -1181,6 +1188,11 @@ void DoxygenParser::processWordCommands(size_t &pos, const std::string &line) { size_t endOfWordPos = getEndOfWordCommand(line, pos); string cmd = line.substr(pos, endOfWordPos - pos); + if (cmd.empty()) { + // This was a bare backslash, just ignore it. + return; + } + addDoxyCommand(m_tokenList, cmd); // A flag for whether we want to skip leading spaces after the command |