Recognise and ignore Doxygen group commands @{ and @}

Fixes #1750
This commit is contained in:
Olly Betts 2022-04-07 12:05:54 +12:00
commit 1aeaa2a644
6 changed files with 33 additions and 5 deletions

View file

@ -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)
===========================
2022-04-07: olly
#1750 SWIG now recognises and ignores Doxygen group commands `@{` and `@}`.
2022-04-06: wsfulton
./configure now enables C++11 and later C++ standards testing by default (when
running: 'make check').

View file

@ -133,6 +133,15 @@ struct SomeAnotherStruct
}
};
struct Foo1750
{
/// @name Group name
/// @{
int a;
/// @}
int b;
};
#ifdef SWIGPYTHON_BUILTIN
bool is_python_builtin() { return true; }
#else

View file

@ -132,6 +132,14 @@ public class doxygen_parsing_runme {
wantedComments.put("doxygen_parsing.doxygen_parsingConstants.CONSTANT_VALUE",
"The constant comment \n" +
"");
wantedComments.put("doxygen_parsing.Foo1750.getA()",
"");
wantedComments.put("doxygen_parsing.Foo1750.getB()",
"");
wantedComments.put("doxygen_parsing.Foo1750.setA(int)",
"");
wantedComments.put("doxygen_parsing.Foo1750.setB(int)",
"");
// and ask the parser to check comments for us
System.exit(CommentParser.check(wantedComments));

View file

@ -44,6 +44,8 @@ const int sectionIndicatorsSize = sizeof(sectionIndicators) / sizeof(*sectionInd
const char *simpleCommands[] = {
// the first line are escaped chars, except \~, which is a language ID command.
"n", "$", "@", "\\", "&", "~", "<", ">", "#", "%", "\"", ".", "::",
// Member groups, which we currently ignore.
"{", "}",
"endcond",
"callgraph", "callergraph", "showinitializer", "hideinitializer", "internal",
"nosubgrouping", "public", "publicsection", "private", "privatesection",

View file

@ -238,7 +238,7 @@ private:
* Method for Adding a Simple Command
* Format: @command
* Plain commands, such as newline etc, they contain no other data
* \n \\ \@ \& \$ \# \< \> \%
* \n \\ \@ \& \$ \# \< \> \% \{ \}
*/
void addSimpleCommand(const std::string &theCommand, DoxygenEntityList &doxyList);
/*

View file

@ -5053,8 +5053,11 @@ public:
Printv(f_shadow, tab4, symname, variable_annotation, " = property(", module, ".", getname, NIL);
if (assignable)
Printv(f_shadow, ", ", module, ".", setname, NIL);
if (have_docstring(n))
Printv(f_shadow, ", doc=", docstring(n, AUTODOC_VAR, tab4), NIL);
if (have_docstring(n)) {
String *s = docstring(n, AUTODOC_VAR, tab4);
if (Len(s))
Printv(f_shadow, ", doc=", s, NIL);
}
Printv(f_shadow, ")\n", NIL);
Delete(variable_annotation);
Delete(mname);
@ -5121,8 +5124,11 @@ public:
Printv(f_shadow, tab4, symname, " = property(", module, ".", getname, NIL);
if (assignable)
Printv(f_shadow, ", ", module, ".", setname, NIL);
if (have_docstring(n))
Printv(f_shadow, ", doc=", docstring(n, AUTODOC_VAR, tab4), NIL);
if (have_docstring(n)) {
String *s = docstring(n, AUTODOC_VAR, tab4);
if (Len(s))
Printv(f_shadow, ", doc=", s, NIL);
}
Printv(f_shadow, ")\n", NIL);
}
String *getter = Getattr(n, "pybuiltin:getter");