variable. Only set the variable if another global variable is true,
but that variable is always false. The effect is that the variable is
never written, but as far as the compiler is concerned it might escape.
typemapes escape, and refer to them using local variables loaded at
the start of the function, in case the argout or freearg template
causes a stack copy.
- Restructure runtime code into declarations, function
and class definitions, and initialisation code
- Rename internal functions/types to follow SWIG_Octave...
or SwigOct... naming styles
- Style/comment/whitespace cleanups
- Used "astyle -A10 -s2 -N -p -H -U -k1" for style cleanup
- Replaced NewString("") with NewStringEmpty()
- Used 'w' instead of 'f' for Wrapper() objects
Add %feature("doxygen:ignore:<command>") implementation, documentation and
test case.
This feature allows to use custom tags in C++ Doxygen comments for
C++-specific things that don't make sense in the context of the target
language and also allows to insert contents specific to the target language in
the C++ comments using (different) custom commands, which is very useful in
practice to explain the particularities of the API wrappers.
For some reason, Doxygen comments such as @class or @enum were considered to
be "structural" (whatever this means) and completely removed during the
parsing time. This is wrong as such comments can be attached to their
corresponding declarations and while it would be arguably better to check that
this is indeed the case (e.g. "@class Foo" really appears before or after the
declaration of this class), throwing them away is definitely not the right
thing to do and keeping them without any further checks is a better alternative.
The code wrongly recognized something like "@direction" as a structural "@dir"
comment (why is the latter structural is another question).
Add a check that we've really found the entire tag and not just a prefix of
some other tag.
Although all standard Doxygen commands are composed from lower case letters
and some special symbols only, custom commands can include upper case letters
and digits too.
Also use a symbolic constant defined once instead of repeating the same set of
characters twice.
DoxygenParser::commandBelongs() returned the same value (0) for simple
commands and unrecognized commands. Fix this by returning a different NONE
value for the latter.
Silently ignoring unknown Doxygen commands is not a reasonable default
behaviour, it's simple enough to turn off the warning if the command is really
supposed to be just ignored, but it's too easy to not notice a real problem if
it isn't.
Turn WARN_DOXYGEN_UNKNOWN_COMMAND on by default and add a test to the errors
test suite checking that it is indeed given.