GNOME Bugzilla – Bug 625952
"///" not stripped from brief description when MULTILINE_CPP_IS_BRIEF=YES
Last modified: 2010-10-09 08:19:29 UTC
For example: ==== Doxyfile ==== MULTILINE_CPP_IS_BRIEF = YES ==== test.h ==== /** @class foo test.h */ /// Foo /// bar /** baz */ class foo { public: foo() { } }; The expected brief description of class foo is "Foo bar" but instead it appears as "Foo /// bar". This was introduced in svn change 730, when src/scanner.l's docBlock variable was changed from QCString to QGString. The problem appears on line 5194 of src/scanner.l: <DocLine>[^\n]*"\n"[ \t]*"//"[/!] { // continuation of multiline C++-style comment docBlock+=yytext; docBlock.resize(docBlock.size() - 3); yyLineNr++; } QGString::size() doesn't mean the same thing as QCString::size(). Using "docBlock.length() - 3" instead would work, or maybe changing the meaning of QGString::size() is better. Also QGString::resize() removes one character too many. Consider for example what qtools/qgstring.cpp's resize()'s "m_data[newlen-1]='\0';" does for docBlock.resize(1).
Hi John, Thanks for the analysis. You are correct. docBlock.size() should have been docBlock.length() and QGString::resize() should do m_data[newlen]='\0';
*** Bug 626799 has been marked as a duplicate of this bug. ***
*** Bug 624256 has been marked as a duplicate of this bug. ***
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.7.2. Please verify if this is indeed the case. Reopen the bug if you think it is not fixed and please include any additional information that you think can be relevant.