doxygen-users Mailing List for Doxygen (Page 570)
Brought to you by:
dimitri
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(118) |
Jun
(150) |
Jul
(115) |
Aug
(75) |
Sep
(92) |
Oct
(102) |
Nov
(139) |
Dec
(87) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(131) |
Feb
(60) |
Mar
(114) |
Apr
(83) |
May
(125) |
Jun
(82) |
Jul
(95) |
Aug
(98) |
Sep
(109) |
Oct
(97) |
Nov
(72) |
Dec
(70) |
2003 |
Jan
(117) |
Feb
(122) |
Mar
(187) |
Apr
(114) |
May
(154) |
Jun
(131) |
Jul
(130) |
Aug
(98) |
Sep
(121) |
Oct
(107) |
Nov
(80) |
Dec
(54) |
2004 |
Jan
(78) |
Feb
(71) |
Mar
(118) |
Apr
(56) |
May
(56) |
Jun
(64) |
Jul
(164) |
Aug
(104) |
Sep
(101) |
Oct
(69) |
Nov
(107) |
Dec
(98) |
2005 |
Jan
(75) |
Feb
(77) |
Mar
(107) |
Apr
(114) |
May
(142) |
Jun
(106) |
Jul
(79) |
Aug
(108) |
Sep
(115) |
Oct
(140) |
Nov
(128) |
Dec
(63) |
2006 |
Jan
(86) |
Feb
(71) |
Mar
(125) |
Apr
(55) |
May
(48) |
Jun
(143) |
Jul
(99) |
Aug
(91) |
Sep
(93) |
Oct
(82) |
Nov
(46) |
Dec
(45) |
2007 |
Jan
(69) |
Feb
(97) |
Mar
(125) |
Apr
(112) |
May
(65) |
Jun
(80) |
Jul
(82) |
Aug
(84) |
Sep
(56) |
Oct
(74) |
Nov
(63) |
Dec
(74) |
2008 |
Jan
(161) |
Feb
(115) |
Mar
(58) |
Apr
(73) |
May
(58) |
Jun
(79) |
Jul
(57) |
Aug
(115) |
Sep
(79) |
Oct
(62) |
Nov
(93) |
Dec
(37) |
2009 |
Jan
(69) |
Feb
(115) |
Mar
(77) |
Apr
(85) |
May
(124) |
Jun
(58) |
Jul
(44) |
Aug
(85) |
Sep
(90) |
Oct
(80) |
Nov
(87) |
Dec
(48) |
2010 |
Jan
(52) |
Feb
(71) |
Mar
(54) |
Apr
(37) |
May
(66) |
Jun
(86) |
Jul
(84) |
Aug
(68) |
Sep
(94) |
Oct
(66) |
Nov
(36) |
Dec
(53) |
2011 |
Jan
(59) |
Feb
(77) |
Mar
(59) |
Apr
(67) |
May
(76) |
Jun
(54) |
Jul
(95) |
Aug
(92) |
Sep
(84) |
Oct
(72) |
Nov
(46) |
Dec
(60) |
2012 |
Jan
(43) |
Feb
(77) |
Mar
(88) |
Apr
(121) |
May
(81) |
Jun
(69) |
Jul
(97) |
Aug
(64) |
Sep
(55) |
Oct
(55) |
Nov
(38) |
Dec
(60) |
2013 |
Jan
(85) |
Feb
(70) |
Mar
(81) |
Apr
(83) |
May
(51) |
Jun
(65) |
Jul
(71) |
Aug
(39) |
Sep
(47) |
Oct
(32) |
Nov
(43) |
Dec
(28) |
2014 |
Jan
(64) |
Feb
(22) |
Mar
(54) |
Apr
(20) |
May
(59) |
Jun
(20) |
Jul
(50) |
Aug
(17) |
Sep
(37) |
Oct
(56) |
Nov
(40) |
Dec
(24) |
2015 |
Jan
(51) |
Feb
(29) |
Mar
(57) |
Apr
(31) |
May
(23) |
Jun
(50) |
Jul
(30) |
Aug
(66) |
Sep
(59) |
Oct
(21) |
Nov
(29) |
Dec
(12) |
2016 |
Jan
(33) |
Feb
(30) |
Mar
(19) |
Apr
(23) |
May
(16) |
Jun
(31) |
Jul
(17) |
Aug
(19) |
Sep
(21) |
Oct
(20) |
Nov
(15) |
Dec
(6) |
2017 |
Jan
(16) |
Feb
(13) |
Mar
(16) |
Apr
(23) |
May
(16) |
Jun
(5) |
Jul
(14) |
Aug
(13) |
Sep
(12) |
Oct
(11) |
Nov
(3) |
Dec
(6) |
2018 |
Jan
(4) |
Feb
(6) |
Mar
(5) |
Apr
(11) |
May
(26) |
Jun
(5) |
Jul
(10) |
Aug
(7) |
Sep
(3) |
Oct
|
Nov
(3) |
Dec
(7) |
2019 |
Jan
(17) |
Feb
(18) |
Mar
(5) |
Apr
(6) |
May
(3) |
Jun
|
Jul
(9) |
Aug
(19) |
Sep
(3) |
Oct
(1) |
Nov
(23) |
Dec
(5) |
2020 |
Jan
(7) |
Feb
(1) |
Mar
(7) |
Apr
(11) |
May
(8) |
Jun
(7) |
Jul
(10) |
Aug
(3) |
Sep
(4) |
Oct
(7) |
Nov
(6) |
Dec
|
2021 |
Jan
(3) |
Feb
|
Mar
(4) |
Apr
(4) |
May
|
Jun
|
Jul
(1) |
Aug
(3) |
Sep
|
Oct
|
Nov
(8) |
Dec
(3) |
2022 |
Jan
(2) |
Feb
|
Mar
(1) |
Apr
|
May
(3) |
Jun
(1) |
Jul
|
Aug
(3) |
Sep
(9) |
Oct
(2) |
Nov
|
Dec
(2) |
2023 |
Jan
(2) |
Feb
(5) |
Mar
(3) |
Apr
(7) |
May
(6) |
Jun
(2) |
Jul
(5) |
Aug
|
Sep
(4) |
Oct
(1) |
Nov
(5) |
Dec
(5) |
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
(4) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: Roberto B. <ba...@cs...> - 2001-05-28 12:56:14
|
Hi there, the attached testcase shows that, under some circumstances I do not understand, the Doxygen 1.2.7 release can generate an empty list like \begin{CompactItemize} \end{CompactItemize} To this kind of empty lists, LaTeX reacts badly: ! LaTeX Error: Something's wrong--perhaps a missing \item. See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help. ... l.101 \end{CompactItemize} Am I doing something wrong? Is there any workaround? Thanks a lot, Roberto P.S. To run the attached testcase, simply `doxygen Doxyfile'. -- Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:ba...@cs... |
From: Luigi B. <lui...@ri...> - 2001-05-28 11:48:15
|
Hi all (and especially Dimitri), I write just to notify a glitch: I fed Doxygen the files below (of course with EXTRACT_ALL set to YES since I didn't document them): ---- test.h ----- namespace A { class TestA { public: TestA() {} }; } namespace B { class TestB { public: TestB(A::TestA); }; } namespace C { class TestC { public: TestC(const A::TestA&); }; } ---- test.cpp ---- #include "test.h" using A::TestA; namespace B { TestB::TestB(TestA a) {} } namespace C { TestC::TestC(const TestA& a) {} } -------- TestB gets processed correctly. However, TestC issues a warning to the effect that "no matching class member (was) found for C::TestC::TestC(const TestA& a)". The resulting documentation seems ok, though - the constructor for TestC is shown and its argument is correctly linked to the TestA documentation. Bye, Luigi |
From: Andrew S. <AS...@al...> - 2001-05-28 09:59:38
|
At 01:50 PM 5/22/01 +0200, you wrote: >Hi, > >I think I've found a bug in the doxygen parser relating to inner classes, >but aren't entirely sure. The following code fails to document correctly: > >#define API_SPEC >// Outer class >class API_SPEC A [snip] >It would appear that my use of the API_SPEC (which under Windows is often >#define'd to be __declspec(export)) confuses the parser somehow. It works >fine with the outer class, but the inner class fails to document unless I >remove the use of the API_SPEC define when declaring the class. Silly me. I should have read the documentation before posting since MACRO_EXPANSION=yes solves the problem with the inner classes being missed. - Andrew |
From: Eric B. <eb...@so...> - 2001-05-27 18:26:23
|
I am trying to build doxygen on the following platforms and am not having a lot of success. Any suggestions? gcc/g++ in all cases is 2.95.2 HP-UX 10.20 aCC g++ Success failed (minor change) Had to add #include <alloca.h> in constexp.y when __hpux true. aCC: HP ANSI C++ B3910B A.01.21 HP-UX 11.00 aCC g++ failed failed. (aCC: HP ANSI C++ B3910B A.03.25) AIX 4.3 xlC g++ failed (not currently installed will have to check latter). xlC -c -+ -qstrict -D_BSD -O3 -I../qtools -o ../objects/language.o language.cpp xlC: 1501-229 Compilation ended due to lack of space Note on solaris install should be /usr/ucb/install since the install on linux is the BSD flavor the defualt install on Solaris is Sys V. Solaris 2.6 sparc CC (WS 5.0) g++ failed failed (see link errors for 2.8) In file included from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/../../../../include/g++-3/streambuf.h:36, from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/../../../../include/g++-3/iostream.h:31, from code.l:24: /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/../../../../include/g++-3/libio.h:30: _G_config.h: No such file or dir Solaris 2.7 sparc CC (WS 5.0) g++ failed failed (see link errors for 2.8) g++ -c -Wall -W -O2 -I../qtools -o ../objects/code.o code.cpp In file included from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3/streambuf.h:36, from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3/iostream.h:31, from code.l:24: /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3/libio.h:30: _G_config.h: No such file or dir Solaris 2.7 x86 CC (WS 5.0) g++ failed Success with minor header fix. (see link errors for 2.8) Solaris 2.8 x86 CC (WS 5.0) g++ failed Success with minor header fix. For CC the compile is clean but I get the following link errors: Undefined first referenced symbol in file void QDict<MemberDef>::deleteItem(void*) ../lib/libdoxygen.a(1g4xBy76lXAAWDs2wkp6.o) void QList<EdgeInfo>::deleteItem(void*) ../lib/libdoxygen.a(Yke0XYSiBTBkY9otEEgm.o) void QList<OutputGenerator>::deleteItem(void*) ../lib/libdoxygen.a(ScWCwOxbUfUAwSZQeXkJ.o) void QList<QCString>::deleteItem(void*) ../lib/libdoxygen.a(R6yfYv3HnGkTZVVTNtST.o) void QList<IncludeInfo>::deleteItem(void*) ../lib/libdoxygen.a(QXvmFT9emCoqAV74txMD.o) void QList<IndexField>::deleteItem(void*) ../lib/libdoxygen.a(htmlhelp.o) void QDict<DotNode>::deleteItem(void*) ../lib/libdoxygen.a(lk5S5hQDefTkP8RKeaFQ.o) void QList<DotNode>::deleteItem(void*) ../lib/libdoxygen.a(dot.o) void QList<PageInfo>::deleteItem(void*) ../lib/libdoxygen.a(Zj4L2MmsrL_V1ZoXkZ9l.o) void QDict<ConfigOption>::deleteItem(void*) ../lib/libdoxygen.a(6BlWCPOZ6Isz9M5nU27j.o) void QList<TagFileInfo>::deleteItem(void*) ../lib/libdoxygen.a(G1FZOkZ5YYjoiKpmoFd-.o) void QDict<CodeClassDef>::deleteItem(void*) ../lib/libdoxygen.a(xTg6AbS76GaYh0UQXOYo.o) void QIntDict<MemberDef>::deleteItem(void*) ../lib/libdoxygen.a(CK6t9Gku6PnjpN9Y7AUX.o) void QList<FileName>::deleteItem(void*) ../lib/libdoxygen.a(filename.o) void QDict<TagFileParser::StartElementHandler>::deleteItem(void*) ../lib/libdoxygen.a(CDWNNX-2zYQ9CDLhHeZv.o) void QDict<IncludeInfo>::deleteItem(void*) ../lib/libdoxygen.a(nPm2_HWh3NWk73gME2Cc.o) void QList<TagPackageInfo>::deleteItem(void*) ../lib/libdoxygen.a(s0S3aXwwqhjsBYOAhXa1.o) void QList<Formula>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) void QIntDict<QCString>::deleteItem(void*) ../lib/libdoxygen.a(HOrVSmADQYoTkBWwuH9N.o) void QList<MemberName>::deleteItem(void*) ../lib/libdoxygen.a(membername.o) void QDict<ClassDef>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) void QList<FileDef>::deleteItem(void*) ../lib/libdoxygen.a(filename.o) void QList<MemberDef>::deleteItem(void*) ../lib/libdoxygen.a(memberlist.o) void QIntDict<MemberGroup>::deleteItem(void*) ../lib/libdoxygen.a(filedef.o) void QList<DiagramRow>::deleteItem(void*) ../lib/libdoxygen.a(diagram.o) void QDict<int>::deleteItem(void*) ../lib/libdoxygen.a(KZO6bfBdqvUSs-Tvi0Rg.o) void QList<MemberGroup>::deleteItem(void*) ../lib/libdoxygen.a(filedef.o) void QIntDict<Definition>::deleteItem(void*) ../lib/libdoxygen.a(DXPMtw414396EXKb62kB.o) void QList<TagClassInfo>::deleteItem(void*) ../lib/libdoxygen.a(CkNUp19BKzwl279RMF_u.o) void QList<GroupDef>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) void QList<BaseInfo>::deleteItem(void*) ../lib/libdoxygen.a(tOYYSeVhx3U-0uxke3ET.o) void QList<Argument>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) void QDict<Formula>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) void QDict<QCString>::deleteItem(void*) ../lib/libdoxygen.a(jrE4R8t4uf6e8AZCaIOn.o) void QList<PackageDef>::deleteItem(void*) ../lib/libdoxygen.a(KeZfImQgtebjmLYo1S-L.o) void QDict<MemberNameInfo>::deleteItem(void*) ../lib/libdoxygen.a(groupdef.o) void QDict<UsesClassDef>::deleteItem(void*) ../lib/libdoxygen.a(K3l3tLvAVTX0rYeM2Bk-.o) void QList<QGDictIterator>::deleteItem(void*) ../lib/libqtools.a(qgdict.o) void QDict<FileName>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) void QList<char>::deleteItem(void*) ../lib/libdoxygen.a(3nVHSOzIYlcMEhggW8dW.o) void QList<BaseClassDef>::deleteItem(void*) ../lib/libdoxygen.a(K3l3tLvAVTX0rYeM2Bk-.o) void QDict<PageInfo>::deleteItem(void*) ../lib/libdoxygen.a(GYq7QzkFdA5u5AMEWUDA.o) void QList<Example>::deleteItem(void*) ../lib/libdoxygen.a(memberdef.o) void QDict<NamespaceDef>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) alloca ../lib/libdoxygen.a(ce_parse.o) void QDict<TagFileParser::EndElementHandler>::deleteItem(void*) ../lib/libdoxygen.a(73aUhpY4OrXSo0C9BNDo.o) void QList<int>::deleteItem(void*) ../lib/libdoxygen.a(AJxPfP4e59Fyr62Fan-q.o) void QList<FileList>::deleteItem(void*) ../lib/libdoxygen.a(index.o) void QList<TableElem>::deleteItem(void*) ../lib/libdoxygen.a(goQFDyCtzarTWrS6OjiN.o) void QList<NamespaceDef>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) void QList<TagPageInfo>::deleteItem(void*) ../lib/libdoxygen.a(oH6u7xrEPBAk8Uz4AiNm.o) void QList<QTextCodec>::deleteItem(void*) ../lib/libqtools.a(fp0VYLz3PF9v7kZnrQ3a.o) void QList<QFileInfo>::deleteItem(void*) ../lib/libqtools.a(oNTWwDgsODF387K3Es0k.o) void QDict<StyleData>::deleteItem(void*) ../lib/libdoxygen.a(ZGVvrCHqnnEKKil9zTTs.o) void QList<DiagramItem>::deleteItem(void*) ../lib/libdoxygen.a(diagram.o) void QList<MemberInfo>::deleteItem(void*) ../lib/libdoxygen.a(membername.o) void QDict<Example>::deleteItem(void*) ../lib/libdoxygen.a(memberdef.o) void QDict<SectionInfo>::deleteItem(void*) ../lib/libdoxygen.a(doxygen.o) void QList<TagMemberInfo>::deleteItem(void*) ../lib/libdoxygen.a(s_8xDXx7hdX4UsaMz0X6.o) void QList<ConfigOption>::deleteItem(void*) ../lib/libdoxygen.a(yyPhEntg-o2BFT1x0Ye-.o) void QList<CodeVarDef>::deleteItem(void*) ../lib/libdoxygen.a(ybaQ-HSHEJcTqvz-D2kc.o) void QIntDict<RefItem>::deleteItem(void*) ../lib/libdoxygen.a(lWvY8qAZuoEmP9U1GdCm.o) void QDict<PackageDef>::deleteItem(void*) ../lib/libdoxygen.a(qIK0vEENauTPqLGbwEBe.o) void QList<Entry>::deleteItem(void*) ../lib/libdoxygen.a(CjlGrTVgBVlYXFgLZA7P.o) void QDict<IndexField>::deleteItem(void*) ../lib/libdoxygen.a(htmlhelp.o) void QDict<void>::deleteItem(void*) ../lib/libdoxygen.a(ZP0CpGWoEAhSq11ZV5xL.o) void QDict<Define>::deleteItem(void*) ../lib/libdoxygen.a(kiQLTclXk1-XGfxWA4V_.o) void QList<ClassDef>::deleteItem(void*) ../lib/libdoxygen.a(classlist.o) void QDict<FileList>::deleteItem(void*) ../lib/libdoxygen.a(index.o) void QList<TagGroupInfo>::deleteItem(void*) ../lib/libdoxygen.a(JC6D0CT50XhXvsJ6zWhF.o) void QDict<MemberName>::deleteItem(void*) ../lib/libdoxygen.a(0FCzxyK3AnWfwUZje2x7.o) void QList<TagNamespaceInfo>::deleteItem(void*) ../lib/libdoxygen.a(errT_5xQoV5rZzcmGTLQ.o) void QList<MemberNameInfo>::deleteItem(void*) ../lib/libdoxygen.a(K3l3tLvAVTX0rYeM2Bk-.o) void QDict<GroupDef>::deleteItem(void*) ../lib/libdoxygen.a(PVqKbLyDTjVzzO44LRc9.o) ld: fatal: Symbol referencing errors. No output written to ../bin/doxygen |
From: Dimitri v. H. <di...@st...> - 2001-05-24 16:36:13
|
Hi, Here is the changelog for this CVS update: ---------------------------------------------------------------------------- + ADD: Added MAN_LINKS option (thanks to Patrick Ohly for the patch). + ADD: Added grouping patches by Patrick Ohly: There are now three commands to define a group: \defgroup name title \addtogroup name [title] \weakgroup name [title] \defgroup must be used exactly once for a group, so you should provide a title. Without the title you will get a warning and doxygen will use the name as title (this is the old behaviour). /** \addtogroup name */ can be used to add documentation or members to a group (as in 1.2.7), but the group is created if it doesn't exist yet. You can provide the title later with another block: /** * \addgroup name title * documentation */ Setting different titles will trigger a warning without overwriting the title once more. \weakgroup is exactly the same as \addtogroup, but if a member is put into such a group with \weakgroup name @{ @} and into another group with \[def|addto]group @{ @}, then it will be placed into the other group without issuing a warning. Actually there is a four-level hierarchy for grouping with (from strongest to weakest) \ingroup, \defgroup, \addtogroup, \weakgroup. You will get warnings when putting members into groups with commands of the same level, but only when you really document this member. This will not trigger a warning and put variable a into Group1: /** \addtogroup Group1 */ /*@{*/ /** this is the real group */ extern int a; /*@}*/ /** \addtogroup Group2 */ /*@{*/ extern int a; /*@}*/ + ADD: Merged translation related patches sent by Petr Prikryl. + BUG: Applied a number of patches sent by Jens Seidel: typos: various typos. spec: remove CVS directories after make install de: german updates in translator_de.h misc: added "\n"'s in charset table (trRTFansicp()) in src/translator_en added SEARCH_INCLUDES to INCLUDE_GRAPH, INCLUDED_BY_GRAPH descript in doc/config.doc mgroup:removed (invalid) \mgroup commands in src/translator_*.h + BUG: Fixed compiler limit problem on Windows (thanks to Trevor Robinson). + BUG: Add -dBATCH in system calls to ghostscipt (needed for formulas) to avoid a command prompt for newer versions of ghostscript (thanks to Marvin Wolfthal). + BUG: For pages, the header appeared twice in the output. + BUG: In some situations doxygen wanted to write a files containing a \n. + CHG: Doxygen now uses a more natural naming scheme for man pages. + CHG: Man page and rtf output are now disabled by default. ---------------------------------------------------------------------------- Enjoy, Dimitri |
From: Andrew S. <AS...@al...> - 2001-05-22 11:53:06
|
Hi, I think I've found a bug in the doxygen parser relating to inner classes, but aren't entirely sure. The following code fails to document correctly: #define API_SPEC // Outer class class API_SPEC A { public: A(); ~A(); // Forward declaration class B; }; // Inner class class API_SPEC A::B { public: B(); ~B(); }; /*! \class A * * Documentation for outer class A. */ /*! \brief Constructor. * * Constructor for outer class A. */ A::A() { return; } /*! \brief Destructor. * * Destructor for outer class A. */ A::~A() { return; } /*! \class A::B * * Documentation for inner class A::B. */ /*! \brief Constructor. * * Constructor for inner class A::B. */ A::B::B() { return; } /*! \brief Destructor. * * Destructor for inner class A::B. */ A::B::~B() { return; } This elicits the following warnings: example.cc:43: Warning: no matching class member found for A::B::B() example.cc:48: Warning: no matching class member found for A::B::~B() example.cc:17: Warning: Member B of class A is not documented. example.cc:18: Warning: Member ~B of class A is not documented. It would appear that my use of the API_SPEC (which under Windows is often #define'd to be __declspec(export)) confuses the parser somehow. It works fine with the outer class, but the inner class fails to document unless I remove the use of the API_SPEC define when declaring the class. If anyone could shed some light on this issue (and a fix or workaround) it would be much appreciated. Cheers, - Andrew |
From: Angela S. <sta...@sa...> - 2001-05-22 11:16:18
|
Hi, how can I get a detailed html description (i.e. by clikking "More...") without adding a brief description? It seems that if there is not the brief one, the detailed one is ignored. Thanks, Angela. |
From: Angela S. <sta...@sa...> - 2001-05-22 06:34:51
|
Hi all! Do you know if it possible to write Doxygen comments inside C++ code? I mean, writing something like this: ... /*! The i-th element of \p scalar_prod will contain the scalar product of the k-th row of \p source and the i-th row of \p dest. If this product is 0 it means that the i-th generator saturates the k-th constraint. */ vector<Integer> scalar_prod(dest_num_rows); /*! \p index_non_zero will indicate the first row of \p dest that does not saturate the k-th constraint. */ size_t index_non_zero = dest_num_rows; ... is the Doxygen directive \p recognized? And do the comments appear in the documentation pages (and not only in the code)? I guess they don't, but I hope there is a way to make they appear. Thanks, Angela. |
From: Luigi B. <lui...@ri...> - 2001-05-21 07:26:28
|
At 01:23 AM 5/21/01 -0400, Marvin Wolfthal wrote: >I don't get it, all I sent was the question itself, nothing else. The question itself was followed by the quotation of the whole digest you were replying to. The same goes for your second mail. You might want to check your mail client configuration - it could be doing this behind your back. Bye, Luigi |
From: Prikryl,Petr <PRI...@sk...> - 2001-05-21 06:03:01
|
[related to doc/translator.pl] Ah, now I see... Please, don't try to adapt the rest of Doxygen to translator.pl. As I replied to the earlier question in this thread, the translator.pl should be placed in the doc subdirectory and it should read the source files from the src subdirectory (on the same level as the doc is). If you don't have the src subdirectory (i.e. you do not compile from sources), simply ignore the translator.pl. In other words, nothing should be patched to work with translator.pl -- except the translator.pl itself. Joseph Heenan wrote... >On 19 May, Jens Seidel wrote: >> make install complains about a missing ../src/translator.h file. >> I attached a patch, which fixes this. >> >> PS: Marvin, your mail was to large, if you really want to submit files of >> this size, use an attachment! > > Looks like it should really using install rather than mkdir, > otherwise make aborts if the directory is already there: >[...] Regards, Petr -- Petr Prikryl, SKIL, spol. s r.o., pri...@sk... |
From: Prikryl,Petr <PRI...@sk...> - 2001-05-21 05:51:19
|
Marvin Wolfthal asked... >[...] > The path ../src in translator.pl is incorrect? The translator.pl should be placed in the doc subdirectory. Then the path to sources should be correct. You can modify the variable at the beginning of the translator.pl if your sources are placed somewhere else. It was created exactly for that purpose. However... The translator.pl that you have obtained with 1.2.7.-20010517 was rather experimental with respect to the environment variables and the Doxygen subdirectories. I have sent new version to Dimitri last Friday (18.5.). It is coupled with some minor changes in translator_adapter.h and translator_xx.h (the class for the newest translator adapter was renamed to TranslatorAdapterCVS). The translator.pl was modified so, that it can be executed via doc/Makefile. So, you will just type make (or nmake) to generate the Doxygen documentation, and the translator.pl will be run automatically. There still be a possibility to run translator.pl manually inside the doc subdirectory, where it is placed (for example to check your updates in your translator_ab.h). The translator.pl helps only to generate the documentation -- namely the language.doc and translator.txt. It has nothing to do with compilation of the Doxygen, nor with Doxygen functionality. So, I would recommend to wait until the next CVS for the updates ;-) Regards, Petr P.S.: Here is what you may see in translator.txt after running translator.pl from the next CVS release. <<translator.zip>> -- Petr Prikryl, SKIL, spol. s r.o., pri...@sk... |
From: Marvin W. <ma...@we...> - 2001-05-21 05:23:39
|
I don't get it, all I sent was the question itself, nothing else. --------------------------------------------------------- Marvin Wolfthal Chief Architect IMRglobal (617) 914-0317 mwo...@im... ma...@dv... ----- Original Message ----- > Message: 1 > Date: Sun, 20 May 2001 00:35:26 +0200 (MEST) > From: Jens Seidel <jen...@hr...> > To: <dox...@li...> > Subject: Re: [Doxygen-users] Re: Doxygen-users digest, Vol 1 #24 - 3 msgs > Reply-To: dox...@li... > > This message is in MIME format. The first part should be readable text, > while the remaining parts are likely unreadable without MIME-aware tools. > Send mail to mi...@do... for more info. > > --1837522564-1296031297-990311726=:23734 > Content-Type: TEXT/PLAIN; charset=US-ASCII > > make install complains about a missing ../src/translator.h file. > I attached a patch, which fixes this. > > PS: Marvin, your mail was to large, if you really want to submit files of > this size, use an attachment! > > > On Fri, 18 May 2001, Marvin Wolfthal wrote: > > > The path ../src in translator.pl is incorrect? > > --------------------------------------------------------- > > Marvin Wolfthal > > Chief Architect > > IMRglobal (617) 914-0317 > > mwo...@im... > > ma...@dv... |
From: Joseph H. <jo...@pi...> - 2001-05-20 12:05:05
|
On 19 May, Jens Seidel wrote: > make install complains about a missing ../src/translator.h file. > I attached a patch, which fixes this. > > PS: Marvin, your mail was to large, if you really want to submit files of > this size, use an attachment! Looks like it should really using install rather than mkdir, otherwise make aborts if the directory is already there: --- Makefile.in 2001/04/01 17:28:21 1.18 +++ Makefile.in 2001/05/20 11:59:55 @@ -52,6 +52,8 @@ $(INSTTOOL) -m 755 bin/doxytag $(INSTALL)/bin $(INSTTOOL) -m 755 bin/doxysearch $(INSTALL)/bin cp -r doc $(DOCDIR) + $(INSTTOOL) -d $(DOCDIR)/src + cp src/translator.h $(DOCDIR)/src cp -r examples $(DOCDIR) echo "DOXYGEN = $(INSTALL)" > $(DOCDIR)/doc/Makefile echo "DOXYDOCS = .." >> $(DOCDIR)/doc/Makefile @@ -59,7 +61,7 @@ cat doc/Makefile.in >> $(DOCDIR)/doc/Makefile cd $(DOCDIR)/examples ; $(MAKE) cd $(DOCDIR)/doc ; $(MAKE) - rm -rf $(DOCDIR)/doc + rm -rf $(DOCDIR)/doc $(DOCDIR)/src cd $(DOCDIR)/latex ; $(MAKE) cp $(DOCDIR)/latex/doxygen_manual.pdf $(DOCDIR) cp $(DOCDIR)/latex/doxygen_manual.ps $(DOCDIR) Also, doing 'make install' from the CVS version fails if PATH doesn't contain '.': cd /usr/local/share/doc/packages/doxygen/doc ; /usr/bin/make make[1]: Entering directory `/usr/local/share/doc/packages/doxygen/doc' translator.pl make[1]: translator.pl: Command not found make[1]: *** [language.doc] Error 127 make[1]: Leaving directory `/usr/local/share/doc/packages/doxygen/doc' make: *** [install] Error 2 bfn, Joseph -- Joseph Heenan, Software Engineer, Picsel Technologies Ltd. [ Opinions expressed are not necessarily those of my employer ] |
From: Jens S. <jen...@hr...> - 2001-05-19 22:37:08
|
make install complains about a missing ../src/translator.h file. I attached a patch, which fixes this. PS: Marvin, your mail was to large, if you really want to submit files of this size, use an attachment! On Fri, 18 May 2001, Marvin Wolfthal wrote: > The path ../src in translator.pl is incorrect? > --------------------------------------------------------- > Marvin Wolfthal > Chief Architect > IMRglobal (617) 914-0317 > mwo...@im... > ma...@dv... |
From: Dimitri v. H. <di...@st...> - 2001-05-19 12:52:52
|
On Fri, May 18, 2001 at 11:23:51AM +0200, Patrick Ohly wrote: > On Thu, May 17, 2001 at 09:34:56PM +0200, Dimitri van Heesch wrote: > > Hi, > > > > I've commited a new release to CVS. Here's the changelog: > > ------------------------------------------------------------------------ > [...] > > + ADD: Added man patch by Patrick Ohly which allows to create freestyle > > man pages using \page and puts man page with non-default extension > > in the correct directory. > > Thanks. Any reason why the MAN_LINKS extension was not included (yet)? I guess I must have missed that patch. > In case you still want to included, please find attached a recent diff > against this CVS version. > > I will also resend the latest patches for the new grouping, so that > they apply to the current CVS version. > Thanks for your help. I'll merge your patches. Regards, Dimitri |
From: Trevor R. <Tre...@pe...> - 2001-05-19 01:13:27
|
FYI, I got the following error building doxygen-1.2.7-20010517 with MS VC++ 6 on Win2K. cl -c -nologo -DQT_NODLL -W3 -O2 -I"..\qtools" -I"." -Fo..\objects\language.obj language.cpp language.cpp translator_dk.h(338) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit Adding "-Zm200" (which doubles the maximum) to line 145 of src/libdoxygen.pro.in fixes the problem: win32:TMAKE_CXXFLAGS += -DQT_NODLL -Zm200 -Trevor |
From: Marvin W. <ma...@we...> - 2001-05-18 15:53:48
|
The path ../src in translator.pl is incorrect? --------------------------------------------------------- Marvin Wolfthal Chief Architect IMRglobal (617) 914-0317 mwo...@im... ma...@dv... ----- Original Message ----- From: <dox...@li...> To: <dox...@li...> Sent: Friday, May 18, 2001 3:58 AM Subject: Doxygen-users digest, Vol 1 #24 - 3 msgs > Send Doxygen-users mailing list submissions to > dox...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.sourceforge.net/lists/listinfo/doxygen-users > or, via email, send a message with subject or body 'help' to > dox...@li... > > You can reach the person managing the list at > dox...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Doxygen-users digest..." > > > Today's Topics: > > 1. Doxygen-1.2.7-20010517 in CVS (Dimitri van Heesch) > 2. Re: w2k compiling failed (Victor A. Wagner, Jr.) > 3. RE: w2k compiling failed (=3D?iso-8859-1?Q?Peter_Thie=3DDF?=3D) > > --__--__-- > > Message: 1 > Date: Thu, 17 May 2001 21:34:56 +0200 > From: Dimitri van Heesch <di...@st...> > To: dox...@li... > Subject: [Doxygen-users] Doxygen-1.2.7-20010517 in CVS > Reply-To: dox...@li... > > Hi, > > I've commited a new release to CVS. Here's the changelog: > -----------------------------------------------------------------------= - > + ADD: The dot generated inheritance and collaboration graphs for class= es > should now show the proper template instantation for the derived/used > classes. For instance it should show that class S uses class V > (indirectly) in the following example: > class V {}; > template<class T> class U1 { T *m_t; }; > template<class T> class U2 { U1<T> *m_t; }; > template<class T> class B1 { U2<T> *m_t; }; > template<class T> class B2 : public B1<T> {}; > class S : public B2<V> {}; > Please report any example of class hierarchies that are not show= n > properly. > + ADD: Added doc/translator.pl script created by Petr Prikryl. > Its main purpose is to extract information from doxygen's source= s > related to internationalization (i.e. the translator classes), t= o > avoid duplication of information (i.e. doc/language.doc is now > generated) and to generate reports about the status of the translations > (e.g. missing methods). > + ADD: Added Italian translator update sent by Alessandro Falappa. > Also included updates for Russian and added support for > Danish (thanks to Erik S=F8e S=F8rensen) > + ADD: Added support patch for "KBD" tags and HTML tags (thanks to Albi= n Wu). > + ADD: Added man patch by Patrick Ohly which allows to create freestyle > man pages using \page and puts man page with non-default extensi= on > in the correct directory. > + BUG: Fixed a bug in the LaTeX output generation (empty lists). > + BUG: Doxygen can now distiguishing f(const A) from f(const B) > even though they match from a syntactical point of view. > + BUG: A template base class that is actually an inherited template > argument of the derived class is no longer shown in the output > indices and hierarchies. > + BUG: TOC_EXPAND could result in a broken tree view > (patch by Alexandr Chalpanov). > + BUG: If a base class had member names which has the same name as enumerator > values in a derived class, the enumerator values did not show up= in > the documentation (thanks to John Harris for reporting this). > -----------------------------------------------------------------------= - > Enjoy, > Dimitri > > > --__--__-- > > Message: 2 > Date: Thu, 17 May 2001 21:45:42 -0400 > To: dox...@li... > From: "Victor A. Wagner, Jr." <va...@ru...> > Subject: Re: [Doxygen-users] w2k compiling failed > Reply-To: dox...@li... > > I'm using Doxygen on Win2k with NO problems. I use the version that is= =3D20 > already built. > > At Thursday 2001/05/17 12:45, you wrote: > >On Fri, May 18, 2001 at 03:59:26PM -0700, Peter Thie=3DDF wrote: > > > I am using doxygen quite a bit among Win NT 4.0, now I started usin= g w2k > > > professinell and doxygen refused to work proper. I looked into the FAQ=3D > but > > > did not find anything about w2k. > > > I am currently using version 1.2.5 of doxygen. > > > >Doxygen should work on w2k just like it does on NT. > > > > > > > > As a seccond step I tried (for the first time) to compile the actual=3D20 > > tarball > > > version but it failed, see appended file - I would be glad for any hints > > > resolving this. > > > >For those that do not read images: > >Your error was: > > > >bison: Bad address > > > >This error is caused by bison not being able to find a /tmp dir (yes t= he > >error message is not very helpful). To fix this start a bash shell > >(included with cygwin) and type "mkdir /tmp". After that all should be > >fine again. > > > > > Further more I'd be intrested in experiences using doxygen among windows > > > 2000. > > > > > > The only output doxygen generates at my w2k installation is the=3D > following: > > > Searching for include files... > > > Searching for example files... > > > Searching for images... > > > Searching for files to exclude > > > Reading input files... > > > > > > It seams that doxygen doesn't find anything to do on W2K, whereas i= t did=3D > on > > > NT 4.0 .... > > > >I'm sure this is some configuration issue. > > > >Regards, > > Dimitri > > > >_______________________________________________ > >Doxygen-users mailing list > >Dox...@li... > >http://lists.sourceforge.net/lists/listinfo/doxygen-users > > Victor A. Wagner, Jr. > PGP RSA fingerprint =3D3D 4D20 EBF6 0101 B069 3817 8DBF C846 E47A > PGP D-H fingerprint =3D3D 98BC 65E3 1A19 43EC 3908 65B9 F755 E6F4 63BB = 9D93 > The five most dangerous words in the English language: > "There oughta be a law" > > > > --__--__-- > > Message: 3 > From: =3D?iso-8859-1?Q?Peter_Thie=3DDF?=3D <ph...@ra...> > To: <dox...@li...> > Subject: RE: [Doxygen-users] w2k compiling failed > Date: Sat, 19 May 2001 09:54:46 -0700 > Reply-To: dox...@li... > > This is a multi-part message in MIME format. > > ------=3D_NextPart_000_0008_01C0E049.BCB707C0 > Content-Type: text/plain; > charset=3D"iso-8859-1" > Content-Transfer-Encoding: 7bit > > Good Morning, > > Well that helped a lot, may you help me once again? Now I get some Link= er > errors (see logfile) affecting class or namespace Config ... > > Best Regards, Peter > > ------=3D_NextPart_000_0008_01C0E049.BCB707C0 > Content-Type: application/octet-stream; > name=3D"make_dox1.log" > Content-Transfer-Encoding: quoted-printable > Content-Disposition: attachment; > filename=3D"make_dox1.log" > > echo char versionString[]=3D3D"1.2.7"; > src\version.cpp > set TMAKEPATH=3D3DE:\doxygen-1.2.7\tar\tmake\lib\win32-msvc > cd qtools > nmake > perl E:\doxygen-1.2.7\tar\tmake\bin\tmake qtools.pro >Makefile.qtools > nmake -f Makefile.qtools all > cd .. > cd src > nmake > perl E:\doxygen-1.2.7\tar\tmake\bin\tmake libdoxygen.pro =3D > >Makefile.libdoxygen > perl E:\doxygen-1.2.7\tar\tmake\bin\tmake libdoxycfg.pro =3D > >Makefile.libdoxycfg > perl E:\doxygen-1.2.7\tar\tmake\bin\tmake doxygen.pro =3D > >Makefile.doxygen > perl E:\doxygen-1.2.7\tar\tmake\bin\tmake doxytag.pro =3D > >Makefile.doxytag > perl E:\doxygen-1.2.7\tar\tmake\bin\tmake doxysearch.pro =3D > >Makefile.doxysearch > nmake -f Makefile.libdoxycfg all > nmake -f Makefile.libdoxygen all > cl -c -nologo -DQT_NODLL -W3 -O2 -I"..\qtools" -I"." =3D > -Fo..\objects\version.obj version.cpp > version.cpp > lib /NOLOGO /OUT:..\lib\doxygen.lib =3D > @C:\DOCUME~1\phe\LOCALS~1\Temp\nma01532. > nmake -f Makefile.doxygen all > link /NOLOGO /LIBPATH:..\lib /SUBSYSTEM:console /OUT:..\bin\doxygen.exe= =3D > @C:\DOCUME~1\phe\LOCALS~1\Temp\nma01540. > doxygen.lib(diagram.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(dot.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(code.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(define.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(formula.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(htmlhelp.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(index.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(doc.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(rtfgen.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(scanner.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(memberlist.obj) : error LNK2001: unresolved external symbol= =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(packagedef.obj) : error LNK2001: unresolved external symbol= =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(pre.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(latexgen.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(htmlgen.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(language.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(memberdef.obj) : error LNK2001: unresolved external symbol = =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(filedef.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(namespacedef.obj) : error LNK2001: unresolved external =3D > symbol "public: bool & __thiscall Config::getBool(char const *,int,char= =3D > const *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(message.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(util.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(classdef.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(groupdef.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(definition.obj) : error LNK2001: unresolved external symbol= =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(classlist.obj) : error LNK2001: unresolved external symbol = =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(membername.obj) : error LNK2001: unresolved external symbol= =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(filename.obj) : error LNK2001: unresolved external symbol =3D > "public: bool & __thiscall Config::getBool(char const *,int,char const = =3D > *)const " (?getBool@Config@@QBEAA_NPBDH0@Z) > doxygen.lib(dot.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(code.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(define.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(doc.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(mangen.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(instdox.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(diagram.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(formula.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(ftvhelp.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(htmlhelp.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(index.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(rtfgen.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(scanner.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(memberlist.obj) : error LNK2001: unresolved external symbol= =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(packagedef.obj) : error LNK2001: unresolved external symbol= =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(pre.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(latexgen.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(htmlgen.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(language.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(memberdef.obj) : error LNK2001: unresolved external symbol = =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(filedef.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(namespacedef.obj) : error LNK2001: unresolved external =3D > symbol "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(message.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(util.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(classdef.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(groupdef.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(definition.obj) : error LNK2001: unresolved external symbol= =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(classlist.obj) : error LNK2001: unresolved external symbol = =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(membername.obj) : error LNK2001: unresolved external symbol= =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(filename.obj) : error LNK2001: unresolved external symbol =3D > "private: static struct Config * Config::m_instance" =3D > (?m_instance@Config@@0PAU1@A) > doxygen.lib(dot.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(code.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(define.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(doc.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(mangen.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(instdox.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(diagram.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(formula.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(ftvhelp.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(htmlhelp.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(index.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(rtfgen.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(scanner.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(memberlist.obj) : error LNK2001: unresolved external symbol= =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(packagedef.obj) : error LNK2001: unresolved external symbol= =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(pre.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(latexgen.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(htmlgen.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(language.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(memberdef.obj) : error LNK2001: unresolved external symbol = =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(filedef.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(namespacedef.obj) : error LNK2001: unresolved external =3D > symbol "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(message.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(util.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(classdef.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(groupdef.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(definition.obj) : error LNK2001: unresolved external symbol= =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(classlist.obj) : error LNK2001: unresolved external symbol = =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(membername.obj) : error LNK2001: unresolved external symbol= =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(filename.obj) : error LNK2001: unresolved external symbol =3D > "protected: void __thiscall Config::create(void)" =3D > (?create@Config@@IAEXXZ) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: void __thiscall Config::init(void)" (?init@Config@@QAEXXZ) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: void __thiscall Config::check(void)" (?check@Config@@QAEXXZ) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: void __thiscall Config::substituteEnvironmentVars(void)" =3D > (?substituteEnvironmentVars@Config@@QAEXXZ) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: void __thiscall Config::convertStrToVal(void)" =3D > (?convertStrToVal@Config@@QAEXXZ) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: void __thiscall Config::parse(class QCString const &,char cons= t =3D > *)" (?parse@Config@@QAEXABVQCString@@PBD@Z) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: void __thiscall Config::writeTemplate(class QFile *,bool)" =3D > (?writeTemplate@Config@@QAEXPAVQFile@@_N@Z) > doxygen.lib(formula.obj) : error LNK2001: unresolved external symbol =3D > "public: class QStrList & __thiscall Config::getList(char const =3D > *,int,char const *)const " (?getList@Config@@QBEAAVQStrList@@PBDH0@Z) > doxygen.lib(doc.obj) : error LNK2001: unresolved external symbol =3D > "public: class QStrList & __thiscall Config::getList(char const =3D > *,int,char const *)const " (?getList@Config@@QBEAAVQStrList@@PBDH0@Z) > doxygen.lib(instdox.obj) : error LNK2001: unresolved external symbol =3D > "public: class QStrList & __thiscall Config::getList(char const =3D > *,int,char const *)const " (?getList@Config@@QBEAAVQStrList@@PBDH0@Z) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: class QStrList & __thiscall Config::getList(char const =3D > *,int,char const *)const " (?getList@Config@@QBEAAVQStrList@@PBDH0@Z) > doxygen.lib(util.obj) : error LNK2001: unresolved external symbol =3D > "public: class QStrList & __thiscall Config::getList(char const =3D > *,int,char const *)const " (?getList@Config@@QBEAAVQStrList@@PBDH0@Z) > doxygen.lib(pre.obj) : error LNK2001: unresolved external symbol =3D > "public: class QStrList & __thiscall Config::getList(char const =3D > *,int,char const *)const " (?getList@Config@@QBEAAVQStrList@@PBDH0@Z) > doxygen.lib(latexgen.obj) : error LNK2001: unresolved external symbol =3D > "public: class QStrList & __thiscall Config::getList(char const =3D > *,int,char const *)const " (?getList@Config@@QBEAAVQStrList@@PBDH0@Z) > doxygen.lib(index.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(doc.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(mangen.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(dot.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(htmlgen.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(rtfgen.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(memberlist.obj) : error LNK2001: unresolved external symbol= =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(ftvhelp.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(definition.obj) : error LNK2001: unresolved external symbol= =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(memberdef.obj) : error LNK2001: unresolved external symbol = =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(latexgen.obj) : error LNK2001: unresolved external symbol =3D > "public: int & __thiscall Config::getInt(char const *,int,char const =3D > *)const " (?getInt@Config@@QBEAAHPBDH0@Z) > doxygen.lib(mangen.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(instdox.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(dot.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(ftvhelp.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(htmlhelp.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(index.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(doc.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(htmlgen.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(rtfgen.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(memberlist.obj) : error LNK2001: unresolved external symbol= =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(packagedef.obj) : error LNK2001: unresolved external symbol= =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(namespacedef.obj) : error LNK2001: unresolved external =3D > symbol "public: class QCString & __thiscall Config::getString(char cons= t =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(message.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(pre.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(latexgen.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(groupdef.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(definition.obj) : error LNK2001: unresolved external symbol= =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(memberdef.obj) : error LNK2001: unresolved external symbol = =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(filedef.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(doxygen.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(classlist.obj) : error LNK2001: unresolved external symbol = =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(util.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(classdef.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getString(char const =3D > *,int,char const *)const " (?getString@Config@@QBEAAVQCString@@PBDH0@Z) > doxygen.lib(latexgen.obj) : error LNK2001: unresolved external symbol =3D > "public: class QCString & __thiscall Config::getEnum(char const =3D > *,int,char const *)const " (?getEnum@Config@@QBEAAVQCString@@PBDH0@Z) > ..\bin\doxygen.exe : fatal error LNK1120: 13 unresolved externals > > ------=3D_NextPart_000_0008_01C0E049.BCB707C0-- > > > > > --__--__-- > > _______________________________________________ > Doxygen-users mailing list > Dox...@li... > http://lists.sourceforge.net/lists/listinfo/doxygen-users > > > End of Doxygen-users Digest |
From: Irwin D. <ir...@ca...> - 2001-05-18 15:18:32
|
I'm using /defgroup to create logical groupings of functions for a C API. When you define a group, doxygen creates a page for each group and a modules.html page with a linked list to each group page. I have several questions about the default doxygen behavior. 1. Can I add documentation to the modules.html page? Since I'm documenting a C API, I'm grouping by function, and I'd like to say something "common" to all the function groups. The best place for this is on the modules.html page. 2. /defgroup takes only a single string without spaces. This string is used as the URL on the modules.html page to link to a group's documentation. I'd like to use a phrase as the group name, for example, "Connectivity Objects". I've tried escaping, quotes, braces, etc., but the best I can do is something like "Connectivity_Objects". Is there a way to use a space-separated string for a group name? 3. I currently using 1.2.6 with the OPTIMIZE_OUTPUT_FOR_C tag set to YES. This has made an improvement in how the documentation is generated, but there still seem to be some lingering C++ anomalies. For example, the data fields pages use the form DbArcRec DbObjectUnion::arc. Is this a bug, or is there another configuration option I can use to better optimize for C? I'm quite impressed with doxygen, but my pet peeve is the many built-in, non-configurable headings and introductory phrases added to the generated documentation. For example, the use of "Modules" to identify the groups I've created for this C API seems strange. I realize I can change the source and recompile, but more configuration options for page headings and the like would be a significant improvement to an already awesome application. Dimitri, has this been suggested or considered previously? Thanks for any help you might offer. Irwin Diehl |
From: Guntram B. <be...@Ma...> - 2001-05-18 12:01:06
|
Hi, it seems doxygen does not provide grouping for local classes. In the example below, a member group is created for the functions, but not for the classes (if the typedefs are removed, the group name does not show up at all). version used: 1.2.7 Any ideas? --guntram /*! global class with group of local classes */ class G { public: /*! @name Local classes group */ //@{ //! Docs for L1 - does not show up in doc of G class L1 { }; //! Docs for L2 - does not show up in doc of G class L2 { }; typedef L1 L1_type; typedef L2 L2_type; //@} /*! @name Local functions group */ //@{ //! Docs for f1 int f1(); //! Docs for f2 int f2(); //@} }; |
From: Patrick O. <Pat...@pa...> - 2001-05-18 10:54:15
|
On Fri, May 18, 2001 at 11:51:42AM +0200, Ronald van Eijck wrote: > > Patrick Ohly wrote: > > Member groups (i.e. grouping of struct/class members) works as > > before. > > Are there any plans to add the current grouping functions for Member groups aswell? I don't have such plans. The two concepts are completely disjunct and supporting member groups that you can refer to later would require some more rewrites. Bye, Patrick -- // pallas GmbH ............ Patrick Ohly ............. Hermuelheimer Str. 10 Software-Engineer D-50321 Bruehl, Germany po...@pa... fax +49-(0)2232-1896-29 phone +49-(0)2232-1896-30 http://www.pallas.com .......................................................... |
From: Patrick O. <Pat...@pa...> - 2001-05-18 10:15:07
|
Hi, here's the same patch, but this time against 1.2.7 20010517. On Thu, May 17, 2001 at 06:03:04PM +0200, Patrick Ohly wrote: > Hi all, > > here are patches for doxygen that enhance (or so I hope) the > grouping capabilities: > > There are now three commands to define a group: > \defgroup name title > \addtogroup name [title] > \weakgroup name [title] > > \defgroup must be used exactly once for a group, so you should > provide a title. Without the title you will get a warning and > doxygen will use the name as title (this is the old behaviour). > > /** \addtogroup name */ can be used to add documentation or > members to a group (as in 1.2.7), but the group is created if > it doesn't exist yet. You can provide the title later > with another block: > /** > * \addgroup name title ^^^^^^^^^ should be \addtogroup > * documentation > */ > > Setting different titles will trigger a warning without overwriting > the title once more. > > \weakgroup is exactly the same as \addtogroup, but if a member > was put into such a group with \weakgroup name @{ @} and into > another group with \[def|addto]group @{ @}, then it will be > placed into the other group without issuing a warning. > > Actually there is a four-level hierarchy for grouping with > (from strongest to weakest) \ingroup, \defgroup, \addtogroup, > \weakgroup. You will get warnings when putting members into > groups with commands of the same level, but only when you really > document this member. This will not trigger a warning and put > variable a into Group1: > > /** \addtogroup Group1 */ > /*@{*/ > /** this is the real group */ > extern int a; > /*@}*/ > > /** \addtogroup Group2 */ > /*@{*/ > extern int a; > /*@}*/ > > Member groups (i.e. grouping of struct/class members) works as > before. > > I have attached the diff and an example that uses the new > features and also triggers some warnings on purpose. > > Bye, Patrick > -- > // pallas GmbH ............ Patrick Ohly ............. > Hermuelheimer Str. 10 Software-Engineer > D-50321 Bruehl, Germany po...@pa... > fax +49-(0)2232-1896-29 phone +49-(0)2232-1896-30 > http://www.pallas.com > .......................................................... > Index: src//doxygen.cpp > =================================================================== > RCS file: /Projects/psp/local/src/CVS-Repository/doxygen/src/doxygen.cpp,v > retrieving revision 1.1.1.10.2.1 > diff -c -r1.1.1.10.2.1 doxygen.cpp > *** src//doxygen.cpp 2001/05/09 11:42:32 1.1.1.10.2.1 > --- src//doxygen.cpp 2001/05/17 14:44:45 > *************** > *** 268,278 **** > static void addRelatedPage(Entry *root) > { > GroupDef *gd=0; > ! QListIterator<QCString> sli(*root->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > ! if (!s->isEmpty() && (gd=Doxygen::groupDict[*s])) break; > } > addRelatedPage(root->name,root->args,root->doc,root->anchors, > root->fileName,root->startLine,root->todoId, > --- 268,278 ---- > static void addRelatedPage(Entry *root) > { > GroupDef *gd=0; > ! QListIterator<Grouping> gli(*root->groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > ! if (!g->groupname.isEmpty() && (gd=Doxygen::groupDict[g->groupname])) break; > } > addRelatedPage(root->name,root->args,root->doc,root->anchors, > root->fileName,root->startLine,root->todoId, > *************** > *** 391,400 **** > > if ((gd=Doxygen::groupDict[root->name])) > { > ! warn(root->fileName,root->startLine, > ! "Warning: group %s already documented. " > ! "Skipping documentation.", > ! root->name.data()); > } > else > { > --- 391,420 ---- > > if ((gd=Doxygen::groupDict[root->name])) > { > ! if ( root->groupdoctype==Entry::GROUPDOC_NORMAL ) > ! { > ! warn(root->fileName,root->startLine, > ! "Warning: group %s already documented. " > ! "Skipping documentation.", > ! root->name.data()); > ! } > ! else > ! { > ! if ( !gd->hasGroupTitle() ) > ! gd->setGroupTitle( root->type ); > ! else if ( root->type.length() > 0 && root->name != root->type && gd->groupTitle() != root->type ) > ! warn( root->fileName,root->startLine, > ! "group %s: ignoring title \"%s\" that does not match old title \"%s\"\n", > ! root->name.data(), root->type.data(), gd->groupTitle() ); > ! if ( gd->briefDescription().isEmpty() ) > ! gd->setBriefDescription(root->brief); > ! if ( !root->doc.stripWhiteSpace().isEmpty() ) > ! gd->setDocumentation( gd->documentation().isEmpty() ? root->doc : > ! gd->documentation() + "\n\n" + root->doc ); > ! gd->addSectionsToDefinition(root->anchors); > ! gd->setRefItems(root->todoId,root->testId,root->bugId); > ! addGroupToGroups(root,gd); > ! } > } > else > { > *************** > *** 438,467 **** > } > } > > - static void addToGroupSections(Entry *root) > - { > - if (root->section==Entry::ADDGRPDOC_SEC && !root->name.isEmpty()) > - { > - GroupDef *gd = Doxygen::groupDict[root->name]; > - if (gd) > - { > - gd->setDocumentation(gd->documentation()+"<p>"+root->brief+root->doc); > - } > - else > - { > - warn(root->fileName,root->startLine, > - "Warning: ignoring addtogroup command for undefined " > - "group `%s'.",root->name.data()); > - } > - } > - EntryListIterator eli(*root->sublist); > - Entry *e; > - for (;(e=eli.current());++eli) > - { > - addToGroupSections(e); > - } > - } > - > //---------------------------------------------------------------------- > > static void buildFileList(Entry *root) > --- 458,463 ---- > *************** > *** 494,505 **** > fd->setBriefDescription(root->brief); > fd->addSectionsToDefinition(root->anchors); > fd->setRefItems(root->todoId,root->testId,root->bugId); > ! QListIterator<QCString> sli(*root->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > GroupDef *gd=0; > ! if (!s->isEmpty() && (gd=Doxygen::groupDict[*s])) > { > gd->addFile(fd); > //printf("File %s: in group %s\n",fd->name().data(),s->data()); > --- 490,501 ---- > fd->setBriefDescription(root->brief); > fd->addSectionsToDefinition(root->anchors); > fd->setRefItems(root->todoId,root->testId,root->bugId); > ! QListIterator<Grouping> gli(*root->groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > GroupDef *gd=0; > ! if (!g->groupname.isEmpty() && (gd=Doxygen::groupDict[g->groupname])) > { > gd->addFile(fd); > //printf("File %s: in group %s\n",fd->name().data(),s->data()); > *************** > *** 1010,1021 **** > nd->setBriefDescription(root->brief); > nd->addSectionsToDefinition(root->anchors); > > ! QListIterator<QCString> sli(*root->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > GroupDef *gd=0; > ! if (!s->isEmpty() && (gd=Doxygen::groupDict[*s])) > gd->addNamespace(nd); > } > > --- 1006,1017 ---- > nd->setBriefDescription(root->brief); > nd->addSectionsToDefinition(root->anchors); > > ! QListIterator<Grouping> gli(*root->groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > GroupDef *gd=0; > ! if (!g->groupname.isEmpty() && (gd=Doxygen::groupDict[g->groupname])) > gd->addNamespace(nd); > } > > *************** > *** 1355,1366 **** > // merge ingroup specifiers > if (md->getGroupDef()==0 && root->groups->first()) > { > ! GroupDef *gd=Doxygen::groupDict[root->groups->first()->data()]; > ! md->setGroupDef(gd); > } > else if (md->getGroupDef()!=0 && root->groups->count()==0) > { > ! root->groups->append(new QCString(md->getGroupDef()->name())); > } > } > } > --- 1351,1362 ---- > // merge ingroup specifiers > if (md->getGroupDef()==0 && root->groups->first()) > { > ! GroupDef *gd=Doxygen::groupDict[root->groups->first()->groupname.data()]; > ! md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, root->doc.length() != 0); > } > else if (md->getGroupDef()!=0 && root->groups->count()==0) > { > ! root->groups->append(new Grouping(md->getGroupDef()->name(), md->getGroupPri())); > } > } > } > *************** > *** 1906,1917 **** > // merge ingroup specifiers > if (md->getGroupDef()==0 && root->groups->first()) > { > ! GroupDef *gd=Doxygen::groupDict[root->groups->first()->data()]; > ! md->setGroupDef(gd); > } > else if (md->getGroupDef()!=0 && root->groups->count()==0) > { > ! root->groups->append(new QCString(md->getGroupDef()->name())); > } > } > } > --- 1902,1913 ---- > // merge ingroup specifiers > if (md->getGroupDef()==0 && root->groups->first()) > { > ! GroupDef *gd=Doxygen::groupDict[root->groups->first()->groupname.data()]; > ! md->setGroupDef(gd, root->groups->first()->pri, root->fileName, root->startLine, root->doc.length() != 0); > } > else if (md->getGroupDef()!=0 && root->groups->count()==0) > { > ! root->groups->append(new Grouping(md->getGroupDef()->name(), md->getGroupPri())); > } > } > } > *************** > *** 6351,6357 **** > msg("Building group list...\n"); > buildGroupList(root); > organizeSubGroups(root); > - addToGroupSections(root); > > msg("Building namespace list...\n"); > buildNamespaceList(root); > --- 6347,6352 ---- > Index: src//entry.cpp > =================================================================== > RCS file: /Projects/psp/local/src/CVS-Repository/doxygen/src/entry.cpp,v > retrieving revision 1.1.1.5 > diff -c -r1.1.1.5 entry.cpp > *** src//entry.cpp 2001/03/30 15:11:35 1.1.1.5 > --- src//entry.cpp 2001/05/17 08:44:32 > *************** > *** 29,35 **** > sublist->setAutoDelete(TRUE); > extends = new QList<BaseInfo>; > extends->setAutoDelete(TRUE); > ! groups = new QList<QCString>; > groups->setAutoDelete(TRUE); > anchors = new QList<QCString>; > anchors->setAutoDelete(TRUE); > --- 29,35 ---- > sublist->setAutoDelete(TRUE); > extends = new QList<BaseInfo>; > extends->setAutoDelete(TRUE); > ! groups = new QList<Grouping>; > groups->setAutoDelete(TRUE); > anchors = new QList<QCString>; > anchors->setAutoDelete(TRUE); > *************** > *** 40,45 **** > --- 40,46 ---- > mtArgList = 0; > mGrpId = -1; > tagInfo = 0; > + groupdoctype = GROUPDOC_NORMAL; > reset(); > } > > *************** > *** 82,88 **** > sublist->setAutoDelete(TRUE); > extends = new QList<BaseInfo>; > extends->setAutoDelete(TRUE); > ! groups = new QList<QCString>; > groups->setAutoDelete(TRUE); > anchors = new QList<QCString>; > anchors->setAutoDelete(TRUE); > --- 83,89 ---- > sublist->setAutoDelete(TRUE); > extends = new QList<BaseInfo>; > extends->setAutoDelete(TRUE); > ! groups = new QList<Grouping>; > groups->setAutoDelete(TRUE); > anchors = new QList<QCString>; > anchors->setAutoDelete(TRUE); > *************** > *** 91,96 **** > --- 92,98 ---- > //printf("Entry::Entry(copy) tArgList=0\n"); > tArgList = 0; > mtArgList = 0; > + groupdoctype = e.groupdoctype; > > // deep copy of the child entry list > QListIterator<Entry> eli(*e.sublist); > *************** > *** 109,122 **** > } > > // deep copy group list > ! QListIterator<QCString> sli(*e.groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > ! groups->append(new QCString(*s)); > } > > QListIterator<QCString> sli2(*e.anchors); > for (;(s=sli2.current());++sli2) > { > anchors->append(new QCString(*s)); > --- 111,125 ---- > } > > // deep copy group list > ! QListIterator<Grouping> gli(*e.groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > ! groups->append(new Grouping(*g)); > } > > QListIterator<QCString> sli2(*e.anchors); > + QCString *s; > for (;(s=sli2.current());++sli2) > { > anchors->append(new QCString(*s)); > *************** > *** 234,239 **** > --- 237,243 ---- > memSpec = 0; > subGrouping = TRUE; > protection = Public; > + groupdoctype = GROUPDOC_NORMAL; > sublist->clear(); > extends->clear(); > groups->clear(); > *************** > *** 270,283 **** > size+=bi->name.length()+1+sizeof(bi->prot)+sizeof(bi->virt); > bi=extends->next(); > } > ! QCString *s=groups->first(); > ! while (s) > { > size+=sizeof(QLNode); > ! size+=s->length()+1; > ! s=groups->next(); > } > ! s=anchors->first(); > while (s) > { > size+=sizeof(QLNode); > --- 274,288 ---- > size+=bi->name.length()+1+sizeof(bi->prot)+sizeof(bi->virt); > bi=extends->next(); > } > ! Grouping *g=groups->first(); > ! while (g) > { > size+=sizeof(QLNode); > ! size+=g->groupname.length()+1; > ! size+=sizeof(g->pri); > ! g=groups->next(); > } > ! QCString *s=anchors->first(); > while (s) > { > size+=sizeof(QLNode); > Index: src//entry.h > =================================================================== > RCS file: /Projects/psp/local/src/CVS-Repository/doxygen/src/entry.h,v > retrieving revision 1.1.1.6 > diff -c -r1.1.1.6 entry.h > *** src//entry.h 2001/05/02 12:38:24 1.1.1.6 > --- src//entry.h 2001/05/17 08:49:30 > *************** > *** 121,126 **** > --- 121,173 ---- > QCString anchor; > }; > > + struct Grouping { > + typedef enum { > + GROUPING_LOWEST, > + GROUPING_AUTO_WEAK = > + GROUPING_LOWEST, //!< membership in group was defined via @weakgroup @{ @} > + GROUPING_AUTO_ADD, //!< membership in group was defined via @add[to]group @{ @} > + GROUPING_AUTO_DEF, //!< membership in group was defined via @defgroup @{ @} > + GROUPING_AUTO_HIGHEST = > + GROUPING_AUTO_DEF, > + GROUPING_INGROUP, //!< membership in group was defined by @ingroup > + GROUPING_HIGHEST = > + GROUPING_INGROUP > + } GroupPri_t; > + > + static const char *getGroupPriName( GroupPri_t priority ) > + { > + switch( priority ) > + { > + case GROUPING_AUTO_WEAK: > + return "@weakgroup"; > + break; > + case GROUPING_AUTO_ADD: > + return "@addtogroup"; > + break; > + case GROUPING_AUTO_DEF: > + return "@defgroup"; > + break; > + case GROUPING_INGROUP: > + return "@ingroup"; > + break; > + default: > + return "???"; > + break; > + } > + } > + > + Grouping( const char *gn, GroupPri_t p ) : > + groupname(gn), > + pri(p) {} > + Grouping( const Grouping &g ) : > + groupname(g.groupname), > + pri(g.pri) {} > + QCString groupname; //!< name of the group > + GroupPri_t pri; //!< priority of this definition > + > + }; > + > /*! \brief Represents an unstructured piece of information, about an > * entity found in the sources. > * > *************** > *** 176,183 **** > MAINPAGEDOC_SEC = 0x01200000, > MEMBERGRP_SEC = 0x01300000, > USINGDECL_SEC = 0x01400000, > ! PACKAGE_SEC = 0x01500000, > ! ADDGRPDOC_SEC = 0x01600000 > }; > enum MemberSpecifier > { > --- 223,229 ---- > MAINPAGEDOC_SEC = 0x01200000, > MEMBERGRP_SEC = 0x01300000, > USINGDECL_SEC = 0x01400000, > ! PACKAGE_SEC = 0x01500000 > }; > enum MemberSpecifier > { > *************** > *** 231,238 **** > int endBodyLine; //!< line number where the definition ends > int mGrpId; //!< member group id > QList<Entry> *sublist; //!< entries that are children of this one > ! QList<BaseInfo> *extends; //!< list of base classes > ! QList<QCString> *groups; //!< list of groups this entry belongs to > QList<QCString> *anchors; //!< list of anchors defined in this entry > QCString fileName; //!< file this entry was extracted from > int startLine; //!< start line of entry in the source > --- 277,284 ---- > int endBodyLine; //!< line number where the definition ends > int mGrpId; //!< member group id > QList<Entry> *sublist; //!< entries that are children of this one > ! QList<BaseInfo> *extends; //!< list of base classes > ! QList<Grouping> *groups; //!< list of groups this entry belongs to > QList<QCString> *anchors; //!< list of anchors defined in this entry > QCString fileName; //!< file this entry was extracted from > int startLine; //!< start line of entry in the source > *************** > *** 241,246 **** > --- 287,333 ---- > int bugId; //!< id of the bug list item of this entry > TagInfo *tagInfo; //!< tag file info > static int num; //!< counts the total number of entries > + enum { > + GROUPDOC_NORMAL, //<! @defgroup > + GROUPDOC_ADD, //<! @addgroup > + GROUPDOC_WEAK //<! @weakgroup > + } groupdoctype; //!< kind of group > + /// return the command name used to define GROUPDOC_SEC > + const char *groupdoccmd() const > + { > + switch( this->groupdoctype ) { > + case GROUPDOC_NORMAL: > + return "\\defgroup"; > + break; > + case GROUPDOC_ADD: > + return "\\addgroup"; > + break; > + case GROUPDOC_WEAK: > + return "\\weakgroup"; > + break; > + default: > + return "unknown group command"; > + } > + } > + Grouping::GroupPri_t groupingpri() const > + { > + if( this->section != GROUPDOC_SEC ) { > + return Grouping::GROUPING_LOWEST; > + } > + switch( this->groupdoctype ) { > + case GROUPDOC_NORMAL: > + return Grouping::GROUPING_AUTO_DEF; > + break; > + case GROUPDOC_ADD: > + return Grouping::GROUPING_AUTO_ADD; > + break; > + case GROUPDOC_WEAK: > + return Grouping::GROUPING_AUTO_WEAK; > + break; > + default: > + return Grouping::GROUPING_LOWEST; > + } > + } > private: > Entry &operator=(const Entry &); > } ; > Index: src//groupdef.cpp > =================================================================== > RCS file: /Projects/psp/local/src/CVS-Repository/doxygen/src/groupdef.cpp,v > retrieving revision 1.1.1.10 > diff -c -r1.1.1.10 groupdef.cpp > *** src//groupdef.cpp 2001/05/02 12:38:26 1.1.1.10 > --- src//groupdef.cpp 2001/05/17 15:59:10 > *************** > *** 44,57 **** > exampleDict = new PageSDict(257); > allMemberList = new MemberList; > allMemberNameInfoDict = new MemberNameInfoDict(1009); > - if (t) > - title = t; > - else > - { > - title = na; > - title.at(0)=toupper(title.at(0)); > - } > fileName = (QCString)"group_"+na; > memberGroupList = new MemberGroupList; > memberGroupList->setAutoDelete(TRUE); > memberGroupDict = new MemberGroupDict(1009); > --- 44,51 ---- > exampleDict = new PageSDict(257); > allMemberList = new MemberList; > allMemberNameInfoDict = new MemberNameInfoDict(1009); > fileName = (QCString)"group_"+na; > + setGroupTitle( t ); > memberGroupList = new MemberGroupList; > memberGroupList->setAutoDelete(TRUE); > memberGroupDict = new MemberGroupDict(1009); > *************** > *** 90,95 **** > --- 84,105 ---- > delete memberGroupDict; > } > > + void GroupDef::setGroupTitle( const char *t ) > + { > + if ( t && strlen(t) ) > + { > + title = t; > + titleSet = true; > + } > + else > + { > + title = name(); > + title.at(0)=toupper(title.at(0)); > + titleSet = false; > + } > + } > + > + > void GroupDef::distributeMemberGroupDocumentation() > { > MemberGroupListIterator mgli(*memberGroupList); > *************** > *** 200,206 **** > > void GroupDef::insertMember(MemberDef *md) > { > ! //printf("GroupDef::insertMember(%s)\n",md->name().data()); > MemberNameInfo *mni=0; > if ((mni=(*allMemberNameInfoDict)[md->name()])) > { // member with this name already found > --- 210,216 ---- > > void GroupDef::insertMember(MemberDef *md) > { > ! // fprintf(stderr, "GroupDef(%s)::insertMember(%s)\n", title.data(), md->name().data()); > MemberNameInfo *mni=0; > if ((mni=(*allMemberNameInfoDict)[md->name()])) > { // member with this name already found > *************** > *** 279,284 **** > --- 289,358 ---- > //addMemberToGroup(md,groupId); > } > > + void GroupDef::removeMember(MemberDef *md) > + { > + // fprintf(stderr, "GroupDef(%s)::removeMember( %s )\n", title.data(), md->name().data()); > + MemberNameInfo *mni = allMemberNameInfoDict->find(md->name()); > + if (mni) > + { > + MemberNameInfoIterator mnii(*mni); > + while( mnii.current() ) > + { > + if( mnii.current()->memberDef == md ) > + { > + mni->remove(mnii.current()); > + break; > + } > + ++mnii; > + } > + if( mni->isEmpty() ) > + { > + allMemberNameInfoDict->remove(md->name()); > + delete mni; > + } > + > + allMemberList->remove(md); > + switch(md->memberType()) > + { > + case MemberDef::Variable: > + decVarMembers.remove(md); > + docVarMembers.remove(md); > + break; > + case MemberDef::Function: > + decFuncMembers.remove(md); > + docFuncMembers.remove(md); > + break; > + case MemberDef::Typedef: > + decTypedefMembers.remove(md); > + docTypedefMembers.remove(md); > + break; > + case MemberDef::Enumeration: > + decEnumMembers.remove(md); > + docEnumMembers.remove(md); > + break; > + case MemberDef::EnumValue: > + decEnumValMembers.remove(md); > + docEnumValMembers.remove(md); > + break; > + case MemberDef::Prototype: > + decProtoMembers.remove(md); > + docProtoMembers.remove(md); > + break; > + case MemberDef::Define: > + decDefineMembers.remove(md); > + docDefineMembers.remove(md); > + break; > + default: > + err("GroupDef::removeMember(): unexpected member remove in file!\n"); > + } > + } > + } > + > + bool GroupDef::containsGroup(const GroupDef *def) > + { > + return groupList->find(def) >= 0; > + } > + > void GroupDef::addGroup(const GroupDef *def) > { > if (Config_getBool("SORT_MEMBER_DOCS")) > *************** > *** 552,563 **** > > void addClassToGroups(Entry *root,ClassDef *cd) > { > ! QListIterator<QCString> sli(*root->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > GroupDef *gd=0; > ! if (!s->isEmpty() && (gd=Doxygen::groupDict[*s])) > { > gd->addClass(cd); > //printf("Compound %s: in group %s\n",cd->name().data(),s->data()); > --- 626,637 ---- > > void addClassToGroups(Entry *root,ClassDef *cd) > { > ! QListIterator<Grouping> gli(*root->groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > GroupDef *gd=0; > ! if (!g->groupname.isEmpty() && (gd=Doxygen::groupDict[g->groupname])) > { > gd->addClass(cd); > //printf("Compound %s: in group %s\n",cd->name().data(),s->data()); > *************** > *** 568,580 **** > void addNamespaceToGroups(Entry *root,NamespaceDef *nd) > { > //printf("root->groups->count()=%d\n",root->groups->count()); > ! QListIterator<QCString> sli(*root->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > GroupDef *gd=0; > //printf("group `%s'\n",s->data()); > ! if (!s->isEmpty() && (gd=Doxygen::groupDict[*s])) > { > gd->addNamespace(nd); > //printf("Namespace %s: in group %s\n",nd->name().data(),s->data()); > --- 642,654 ---- > void addNamespaceToGroups(Entry *root,NamespaceDef *nd) > { > //printf("root->groups->count()=%d\n",root->groups->count()); > ! QListIterator<Grouping> gli(*root->groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > GroupDef *gd=0; > //printf("group `%s'\n",s->data()); > ! if (!g->groupname.isEmpty() && (gd=Doxygen::groupDict[g->groupname])) > { > gd->addNamespace(nd); > //printf("Namespace %s: in group %s\n",nd->name().data(),s->data()); > *************** > *** 584,595 **** > > void addGroupToGroups(Entry *root,GroupDef *subGroup) > { > ! QListIterator<QCString> sli(*root->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > GroupDef *gd=0; > ! if (!s->isEmpty() && (gd=Doxygen::groupDict[*s])) > { > gd->addGroup(subGroup); > subGroup->addParentGroup(gd); > --- 658,670 ---- > > void addGroupToGroups(Entry *root,GroupDef *subGroup) > { > ! QListIterator<Grouping> gli(*root->groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > GroupDef *gd=0; > ! if (!g->groupname.isEmpty() && (gd=Doxygen::groupDict[g->groupname]) && > ! !gd->containsGroup(subGroup) ) > { > gd->addGroup(subGroup); > subGroup->addParentGroup(gd); > *************** > *** 597,627 **** > } > } > > ! /*! Add a member to all groups it is contained in */ > void addMemberToGroups(Entry *root,MemberDef *md) > { > ! QListIterator<QCString> sli(*root->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > ! GroupDef *gd=0; > ! if (!s->isEmpty() && (gd=Doxygen::groupDict[*s])) > { > ! GroupDef *mgd = md->getGroupDef(); > ! if (mgd==0) > ! { > ! gd->insertMember(md); > ! md->setGroupDef(gd); > } > ! else if (mgd!=gd) > { > ! warn(mgd->getDefFileName(),mgd->getDefLine(), > ! "Warning: Member %s found in multiple groups.!\n" > ! "The member will be put in group %s, and not in group %s", > ! md->name().data(),mgd->name().data(),gd->name().data() > ! ); > } > - //printf("Member %s: in group %s\n",md->name().data(),s->data()); > } > } > } > --- 672,753 ---- > } > } > > ! /*! Add a member to the group with the highest priority */ > void addMemberToGroups(Entry *root,MemberDef *md) > { > ! //printf(" Root 0x%p = %s, md 0x%p %s\n", root, root->name.data(), md, md->name().data() ); > ! QListIterator<Grouping> gli(*root->groups); > ! Grouping *g; > ! > ! // Search entry's group list for group with highest pri. > ! Grouping::GroupPri_t pri = Grouping::GROUPING_LOWEST; > ! GroupDef *fgd=0; > ! for (;(g=gli.current());++gli) > { > ! GroupDef *gd; > ! if (!g->groupname.isEmpty() && > ! (gd=Doxygen::groupDict[g->groupname]) && > ! g->pri >= pri) > { > ! if( fgd && g->pri == pri ) { > ! warn(root->fileName.data(), root->startLine, > ! "Warning: Member %s found in multiple %s groups! " > ! "The member will be put in group %s, and not in group %s", > ! md->name().data(), Grouping::getGroupPriName( pri ), > ! gd->name().data(), fgd->name().data() > ! ); > } > ! > ! fgd = gd; > ! pri = g->pri; > ! } > ! } > ! > ! // put member into group defined by this entry? > ! if( fgd ) > ! { > ! GroupDef *mgd = md->getGroupDef(); > ! if (mgd==0) > ! { > ! fgd->insertMember(md); > ! md->setGroupDef(fgd, pri, root->fileName, root->startLine, root->doc.length() != 0); > ! } > ! else if (mgd!=fgd) > ! { > ! bool moveit = false; > ! > ! // move member from one group to another if > ! // - the new one has a higher priority > ! // - the new entry has the same priority, but with docs where the old one had no docs > ! if( md->getGroupPri() < pri ) > ! moveit = true; > ! else > { > ! if( md->getGroupPri() == pri ) > ! { > ! > ! if( root->doc.length() != 0 && !md->getGroupHasDocs() ) > ! moveit = true; > ! else if( root->doc.length() != 0 && md->getGroupHasDocs() ) > ! { > ! warn(md->getGroupFileName(),md->getGroupStartLine(), > ! "Warning: Member documentation for %s found several times in %s groups!\n" > ! "%s:%d: The member will remain in group %s, and won't be put into group %s", > ! md->name().data(), Grouping::getGroupPriName( pri ), > ! root->fileName.data(), root->startLine, > ! mgd->name().data(), > ! fgd->name().data() > ! ); > ! } > ! } > ! } > ! > ! if( moveit ) > ! { > ! mgd->removeMember(md); > ! fgd->insertMember(md); > ! md->setGroupDef(fgd, pri, root->fileName, root->startLine, root->doc.length() != 0); > } > } > } > } > *************** > *** 629,640 **** > > void addExampleToGroups(Entry *root,PageInfo *eg) > { > ! QListIterator<QCString> sli(*root->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > GroupDef *gd=0; > ! if (!s->isEmpty() && (gd=Doxygen::groupDict[*s])) > { > gd->addExample(eg); > //printf("Example %s: in group %s\n",eg->name().data(),s->data()); > --- 755,766 ---- > > void addExampleToGroups(Entry *root,PageInfo *eg) > { > ! QListIterator<Grouping> gli(*root->groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > GroupDef *gd=0; > ! if (!g->groupname.isEmpty() && (gd=Doxygen::groupDict[g->groupname])) > { > gd->addExample(eg); > //printf("Example %s: in group %s\n",eg->name().data(),s->data()); > Index: src//groupdef.h > =================================================================== > RCS file: /Projects/psp/local/src/CVS-Repository/doxygen/src/groupdef.h,v > retrieving revision 1.1.1.7 > diff -c -r1.1.1.7 groupdef.h > *** src//groupdef.h 2001/04/26 11:54:15 1.1.1.7 > --- src//groupdef.h 2001/05/17 14:44:26 > *************** > *** 48,53 **** > --- 48,55 ---- > DefType definitionType() { return TypeGroup; } > QCString getOutputFileBase() const; > const char *groupTitle() const { return title; } > + void setGroupTitle( const char *newtitle ); > + bool hasGroupTitle( ) { return titleSet; } > void addFile(const FileDef *def); > void addClass(const ClassDef *def); > void addNamespace(const NamespaceDef *def); > *************** > *** 55,61 **** > --- 57,65 ---- > void addParentGroup(const GroupDef *def); > void addPage(PageInfo *def); // pages in this group > void addExample(const PageInfo *def); // examples in this group > + bool containsGroup(const GroupDef *def); // true if def is already a subgroup > void insertMember(MemberDef *def); > + void removeMember(MemberDef *md); > void writeDocumentation(OutputList &ol); > int countMembers() const; > bool isLinkableInProject() > *************** > *** 82,87 **** > --- 86,92 ---- > > private: > QCString title; // title of the group > + bool titleSet; // true if title is not the same as the name > QCString fileName; // base name of the generated file > FileList *fileList; // list of files in the group > ClassList *classList; // list of classes in the group > *************** > *** 115,121 **** > /* user defined member groups */ > MemberGroupList *memberGroupList; // list of member groups in this group > MemberGroupDict *memberGroupDict; > - > }; > > class GroupList : public QList<GroupDef> > --- 120,125 ---- > Index: src//memberdef.h > =================================================================== > RCS file: /Projects/psp/local/src/CVS-Repository/doxygen/src/memberdef.h,v > retrieving revision 1.1.1.6 > diff -c -r1.1.1.6 memberdef.h > *** src//memberdef.h 2001/04/26 11:54:21 1.1.1.6 > --- src//memberdef.h 2001/05/17 09:37:10 > *************** > *** 85,95 **** > > // scope query members > ClassDef *getClassDef() const { return classDef; } > - GroupDef *getGroupDef() const { return group; } > FileDef *getFileDef() const { return fileDef; } > NamespaceDef* getNamespaceDef() const { return nspace; } > //Definition *getCompoundDef() const; > > // direct kind info > Protection protection() const { return prot; } > Specifier virtualness() const { return virt; } > --- 85,101 ---- > > // scope query members > ClassDef *getClassDef() const { return classDef; } > FileDef *getFileDef() const { return fileDef; } > NamespaceDef* getNamespaceDef() const { return nspace; } > //Definition *getCompoundDef() const; > > + // querying the grouping definition > + GroupDef *getGroupDef() const { return group; } > + Grouping::GroupPri_t getGroupPri() const { return grouppri; } > + const char *getGroupFileName() const { return groupFileName; } > + int getGroupStartLine() const { return groupStartLine; } > + bool getGroupHasDocs() const { return groupHasDocs; } > + > // direct kind info > Protection protection() const { return prot; } > Specifier virtualness() const { return virt; } > *************** > *** 138,144 **** > void setMaxInitLines(int lines) { userInitLines=lines; } > void setMemberClass(ClassDef *cd) { classDef=cd; } > void setSectionList(MemberList *sl) { section=sl; } > ! void setGroupDef(GroupDef *gd) { group=gd; } > void setExplicitExternal(bool b) { explExt=b; } > > void makeRelated() { related=TRUE; } > --- 144,157 ---- > void setMaxInitLines(int lines) { userInitLines=lines; } > void setMemberClass(ClassDef *cd) { classDef=cd; } > void setSectionList(MemberList *sl) { section=sl; } > ! void setGroupDef(GroupDef *gd, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs) > ! { > ! group=gd; > ! grouppri=pri; > ! groupFileName=fileName; > ! groupStartLine=startLine; > ! groupHasDocs=hasDocs; > ! } > void setExplicitExternal(bool b) { explExt=b; } > > void makeRelated() { related=TRUE; } > *************** > *** 269,274 **** > --- 282,292 ---- > MemberGroup *memberGroup; // group's member definition > > GroupDef *group; // group in which this member is in > + Grouping::GroupPri_t grouppri; // priority of this definition > + QCString groupFileName; // file where this grouping was defined > + int groupStartLine; // line " " " " " > + bool groupHasDocs; // true if the entry that caused the grouping was documented > + > bool explExt; // member was explicitly declared external > > > Index: src//membergroup.cpp > =================================================================== > RCS file: /Projects/psp/local/src/CVS-Repository/doxygen/src/membergroup.cpp,v > retrieving revision 1.1.1.4 > diff -c -r1.1.1.4 membergroup.cpp > *** src//membergroup.cpp 2001/04/26 11:54:21 1.1.1.4 > --- src//membergroup.cpp 2001/05/17 09:49:42 > *************** > *** 75,81 **** > GroupDef *gd; > if (firstMd && (gd=firstMd->getGroupDef())) > { > ! md->setGroupDef(gd); > gd->insertMember(md); > } > } > --- 75,81 ---- > GroupDef *gd; > if (firstMd && (gd=firstMd->getGroupDef())) > { > ! md->setGroupDef(gd, firstMd->getGroupPri(), firstMd->getGroupFileName(), firstMd->getGroupStartLine(), firstMd->getGroupHasDocs()); > gd->insertMember(md); > } > } > Index: src//scanner.l > =================================================================== > RCS file: /Projects/psp/local/src/CVS-Repository/doxygen/src/scanner.l,v > retrieving revision 1.1.1.11 > diff -c -r1.1.1.11 scanner.l > *** src//scanner.l 2001/05/02 12:38:35 1.1.1.11 > --- src//scanner.l 2001/05/17 13:53:04 > *************** > *** 142,149 **** > static QCString *pCopyCurlyString; > static QCString *pCopyQuotedString; > static QCString *pSkipDoc; > ! static QStack<QCString> autoGroupNameStack; > ! static QCString lastDefGroup; > > static bool insideFormula; > static bool insideTryBlock=FALSE; > --- 142,149 ---- > static QCString *pCopyCurlyString; > static QCString *pCopyQuotedString; > static QCString *pSkipDoc; > ! static QStack<Grouping> autoGroupStack; > ! static Grouping lastDefGroup( "", Grouping::GROUPING_LOWEST ); > > static bool insideFormula; > static bool insideTryBlock=FALSE; > *************** > *** 168,174 **** > virt = Normal; > baseVirt = Normal; > isTypedef = FALSE; > ! autoGroupNameStack.clear(); > insideTryBlock = FALSE; > insideIDL = FALSE; > } > --- 168,174 ---- > virt = Normal; > baseVirt = Normal; > isTypedef = FALSE; > ! autoGroupStack.clear(); > insideTryBlock = FALSE; > insideIDL = FALSE; > } > *************** > *** 180,217 **** > current->virt = virt; > current->stat = gstat; > current->mGrpId = memberGroupId; > ! if (!autoGroupNameStack.isEmpty()) > { > ! current->groups->append(new QCString(*autoGroupNameStack.top())); > } > } > > //----------------------------------------------------------------------------- > > ! /// remove old group name (if given) and add new one (if given) > ! static void setCurrentGroup( QCString *oldgroup, QCString *newgroup ) > { > ! if (oldgroup) > { > ! /* remove auto group name from current entry and discard it */ > ! QCString *s = current->groups->first(); > ! int i=0; > ! while (s) > ! { > ! if (*s==*oldgroup) > ! { > ! current->groups->remove(i); > ! break; > ! } > ! s=current->groups->next(); > ! i++; > ! } > } > > /* use new group name instead? */ > if ( newgroup ) > { > ! current->groups->append(new QCString(*newgroup)); > } > } > > --- 180,214 ---- > current->virt = virt; > current->stat = gstat; > current->mGrpId = memberGroupId; > ! if (!autoGroupStack.isEmpty()) > { > ! current->groups->append(new Grouping(*autoGroupStack.top())); > } > } > > //----------------------------------------------------------------------------- > > ! /// remove any automatic grouping and add new one (if given) > ! static void setCurrentGroup( QCString *newgroup, Grouping::GroupPri_t pri ) > { > ! /* remove auto group name from current entry and discard it */ > ! Grouping *g = current->groups->first(); > ! int i=0; > ! while (g) > { > ! if (g->pri <= Grouping::GROUPING_AUTO_DEF) > ! { > ! current->groups->remove(i); > ! i--; > ! } > ! g=current->groups->next(); > ! i++; > } > > /* use new group name instead? */ > if ( newgroup ) > { > ! current->groups->append(new Grouping(*newgroup, pri)); > } > } > > *************** > *** 474,480 **** > %x DocBaseClass > %x CppQuote > %x EndCppQuote > - %x AddGroupDocArg1 > %x GroupDocArg1 > %x GroupDocArg2 > %x GroupName > --- 471,476 ---- > *************** > *** 1690,1700 **** > varEntry->mGrpId = current->mGrpId; > > // deep copy group list > ! QListIterator<QCString> sli(*current->groups); > ! QCString *s; > ! for (;(s=sli.current());++sli) > { > ! varEntry->groups->append(new QCString(*s)); > } > > //printf("Add: type=`%s',name=`%s',args=`%s'\n", > --- 1686,1696 ---- > varEntry->mGrpId = current->mGrpId; > > // deep copy group list > ! QListIterator<Grouping> gli(*current->groups); > ! Grouping *g; > ! for (;(g=gli.current());++gli) > { > ! varEntry->groups->append(new Grouping(*g)); > } > > //printf("Add: type=`%s',name=`%s',args=`%s'\n", > *************** > *** 2685,2698 **** > current->section = Entry::GROUPDOC_SEC; > current->fileName = yyFileName; > current->startLine = yyLineNr; > BEGIN( GroupDocArg1 ); > } > <Doc,JavaDoc>{B}*{CMD}"addtogroup"{B}+ { > ! current->section = Entry::ADDGRPDOC_SEC; > current->fileName = yyFileName; > current->startLine = yyLineNr; > ! BEGIN( AddGroupDocArg1 ); > } > <Doc,JavaDoc>{B}*{CMD}"namespace"{B}+ { > current->section = Entry::NAMESPACEDOC_SEC; > current->fileName = yyFileName; > --- 2681,2703 ---- > current->section = Entry::GROUPDOC_SEC; > current->fileName = yyFileName; > current->startLine = yyLineNr; > + current->groupdoctype = Entry::GROUPDOC_NORMAL; > BEGIN( GroupDocArg1 ); > } > <Doc,JavaDoc>{B}*{CMD}"addtogroup"{B}+ { > ! current->section = Entry::GROUPDOC_SEC; > current->fileName = yyFileName; > current->startLine = yyLineNr; > ! current->groupdoctype = Entry::GROUPDOC_ADD; > ! BEGIN( GroupDocArg1 ); > } > + <Doc,JavaDoc>{B}*{CMD}"weakgroup"{B}+ { > + current->section = Entry::GROUPDOC_SEC; > + current->fileName = yyFileName; > + current->startLine = yyLineNr; > + current->groupdoctype = Entry::GROUPDOC_WEAK; > + BEGIN( GroupDocArg1 ); > + } > <Doc,JavaDoc>{B}*{CMD}"namespace"{B}+ { > current->section = Entry::NAMESPACEDOC_SEC; > current->fileName = yyFileName; > *************** > *** 2754,2760 **** > BEGIN( ExampleDocArg1 ); > } > <LineDoc>{CMD}"name"[^\n]*\n { > ! lastDefGroup.resize(0); > memberGroupHeader=&yytext[5]; > memberGroupHeader=memberGroupHeader.stripWhiteSpace(); > current->section = Entry::MEMBERGRP_SEC; > --- 2759,2765 ---- > BEGIN( ExampleDocArg1 ); > } > <LineDoc>{CMD}"name"[^\n]*\n { > ! lastDefGroup.groupname.resize(0); > memberGroupHeader=&yytext[5]; > memberGroupHeader=memberGroupHeader.stripWhiteSpace(); > current->section = Entry::MEMBERGRP_SEC; > *************** > *** 2764,2770 **** > BEGIN( lastDocContext ); > } > <Doc,JavaDoc>{CMD}"name"{B}+ { > ! lastDefGroup.resize(0); > current->section = Entry::MEMBERGRP_SEC; > current->fileName = yyFileName; > current->startLine = yyLineNr; > --- 2769,2775 ---- > BEGIN( lastDocContext ); > } > <Doc,JavaDoc>{CMD}"name"{B}+ { > ! lastDefGroup.groupname.resize(0); > current->section = Entry::MEMBERGRP_SEC; > current->fileName = yyFileName; > current->startLine = yyLineNr; > *************** > *** 2947,2976 **** > yyLineNr++; > > } > - <AddGroupDocArg1>{ID} { > - current->name = yytext; > - lastDefGroup = yytext; > - newDocState(); > - } > - <AddGroupDocArg1>"\n" { > - warn(yyFileName,yyLineNr, > - "Warning: missing argument after " > - "\\addtogroup." > - ); > - yyLineNr++; > - BEGIN( Doc ); > - } > - <GroupDocArg2>"*/" { > - unput('/');unput('*'); > - warn(yyFileName,yyLineNr, > - "Warning: missing argument after " > - "\\addtogroup." > - ); > - BEGIN( Doc ); > - } > <GroupDocArg1>{ID}(".html"?) { > current->name = yytext; > ! lastDefGroup = yytext; > // the .html stuff is for Qt compatibility > if (current->name.right(5)==".html") > current->name=current->name.left(current->name.length()-5); > --- 2952,2961 ---- > yyLineNr++; > > } > <GroupDocArg1>{ID}(".html"?) { > current->name = yytext; > ! lastDefGroup.groupname = yytext; > ! lastDefGroup.pri = current->groupingpri(); > // the .html stuff is for Qt compatibility > if (current->name.right(5)==".html") > current->name=current->name.left(current->name.length()-5); > *************** > *** 2979,3003 **** > <GroupDocArg1>"\\"{B}*"\n" { yyLineNr++; } > <GroupDocArg1>"\n" { > warn(yyFileName,yyLineNr, > ! "Warning: missing argument after " > ! "\\defgroup." > ); > yyLineNr++; > BEGIN( Doc ); > } > <GroupDocArg2>[^\n\*]+ { > current->type += yytext; > current->type = current->type.stripWhiteSpace(); > } > - <GroupDocArg2>. { > - current->type += yytext; > - } > - <GroupDocArg2>"\\"{B}*"\n" { yyLineNr++; } > - <GroupDocArg2>"*/" { > - unput('/');unput('*'); > - newDocState(); > - } > <GroupDocArg2>"\n" { > yyLineNr++; > newDocState(); > } > --- 2964,2992 ---- > <GroupDocArg1>"\\"{B}*"\n" { yyLineNr++; } > <GroupDocArg1>"\n" { > warn(yyFileName,yyLineNr, > ! "Warning: missing group name after %s", > ! current->groupdoccmd() > ); > yyLineNr++; > BEGIN( Doc ); > } > + <GroupDocArg2>{B}*"*/" { > + // fake input for end of title rule > + yyLineNr--; > + unput('/');unput('*');unput('\n'); > + } > + <GroupDocArg2>"\\"{B}*"\n" { yyLineNr++; } > <GroupDocArg2>[^\n\*]+ { > current->type += yytext; > current->type = current->type.stripWhiteSpace(); > } > <GroupDocArg2>"\n" { > + if( current->groupdoctype == Entry::GROUPDOC_NORMAL && > + current->type.length() == 0 ) > + warn(yyFileName,yyLineNr, > + "Warning: missing title after " > + "\\defgroup %s", current->name.data() > + ); > yyLineNr++; > newDocState(); > } > *************** > *** 3241,3251 **** > BEGIN( GroupName ); > } > <ClassDoc,Doc,JavaDoc>{CMD}"{" { > ! if (current->section==Entry::GROUPDOC_SEC || > ! current->section==Entry::ADDGRPDOC_SEC > ! ) > { > ! autoGroupNameStack.push(new QCString(current->name)); > } > else if (current->section == Entry::MEMBERGRP_SEC) > { > --- 3230,3240 ---- > BEGIN( GroupName ); > } > <ClassDoc,Doc,JavaDoc>{CMD}"{" { > ! if (current->section==Entry::GROUPDOC_SEC ) > { > ! autoGroupStack.push(new Grouping(current->name, > ! current->groupingpri() > ! )); > } > else if (current->section == Entry::MEMBERGRP_SEC) > { > *************** > *** 3393,3399 **** > } > <GroupName>{ID} { > current->groups->append( > ! new QCString(yytext) > ); > } > <GroupName>\n { > --- 3382,3388 ---- > } > <GroupName>{ID} { > current->groups->append( > ! new Grouping(yytext, Grouping::GROUPING_INGROUP) > ); > } > <GroupName>\n { > *************** > *** 3746,3763 **** > warn(yyFileName,yyLineNr,"Warning: ignoring nested member group. " > "Previous command was found at line %d.",lastMemberGroupLine); > } > ! else if (!lastDefGroup.isEmpty()) > { > ! setCurrentGroup( autoGroupNameStack.top(), &lastDefGroup); > ! autoGroupNameStack.push(new QCString(lastDefGroup)); > ! lastDefGroup.resize(0); > } > else > { > if (memberGroupHeader.isEmpty()) > { > ! //warn("Warning: member group does not have a header " > ! // "at line %d of %s.\n",yyLineNr,yyFileName); > memberGroupHeader="[NOHEADER]"; > } > memberGroupId = newMemberGroupId(); > --- 3735,3751 ---- > warn(yyFileName,yyLineNr,"Warning: ignoring nested member group. " > "Previous command was found at line %d.",lastMemberGroupLine); > } > ! else if (!lastDefGroup.groupname.isEmpty()) > { > ! setCurrentGroup( &lastDefGroup.groupname, lastDefGroup.pri ); > ! autoGroupStack.push(new Grouping(lastDefGroup)); > ! lastDefGroup.groupname.resize(0); > } > else > { > if (memberGroupHeader.isEmpty()) > { > ! // warn( yyFileName, yyLineNr, "Warning: member group does not have a header" ); > memberGroupHeader="[NOHEADER]"; > } > memberGroupId = newMemberGroupId(); > *************** > *** 3768,3774 **** > > static void endGroup() > { > ! if (memberGroupId==NOGROUP && autoGroupNameStack.isEmpty()) > { > warn(yyFileName,yyLineNr, > "Warning: end of group without matching begin."); > --- 3756,3762 ---- > > static void endGroup() > { > ! if (memberGroupId==NOGROUP && autoGroupStack.isEmpty()) > { > warn(yyFileName,yyLineNr, > "Warning: end of group without matching begin."); > *************** > *** 3789,3799 **** > memberGroupHeader.resize(0); > memberGroupDocs.resize(0); > } > ! else if (!autoGroupNameStack.isEmpty()) // end of group > { > ! QCString *oldName = autoGroupNameStack.pop(); > ! setCurrentGroup(oldName,autoGroupNameStack.top()); > ! delete oldName; > } > } > > --- 3777,3792 ---- > memberGroupHeader.resize(0); > memberGroupDocs.resize(0); > } > ! else if (!autoGroupStack.isEmpty()) // end of group > { > ! Grouping *current = autoGroupStack.pop(); > ! Grouping *parent = autoGroupStack.top(); > ! if( parent ) { > ! setCurrentGroup( &parent->groupname, parent->pri ); > ! } else { > ! setCurrentGroup( NULL, Grouping::GROUPING_LOWEST ); > ! } > ! delete current; > } > } > > *************** > *** 3854,3868 **** > > memberGroupId = NOGROUP; > > ! // rebuild compound's group context > ! QCString *s = ce->groups->first(); > ! if (s) > ! { > ! lastDefGroup=*s; > ! startGroup(); > ! } > > ! current->mGrpId = memberGroupId = ce->mGrpId; > > scanYYlex() ; > delete current; current=0; > --- 3847,3861 ---- > > memberGroupId = NOGROUP; > > ! // don't rebuild compound's group context > ! // Grouping *g = ce->groups->first(); > ! // if (g) > ! // { > ! // lastDefGroup=*g; > ! // startGroup(); > ! // } > > ! // current->mGrpId = memberGroupId = ce->mGrpId; > > scanYYlex() ; > delete current; current=0; > # Doxyfile 1.2.6-20010422 > > # This file describes the settings to be used by doxygen for a project > # > # All text after a hash (#) is considered a comment and will be ignored > # The format is: > # TAG = value [value, ...] > # For lists items can also be appended using: > # TAG += value [value, ...] > # Values that contain spaces should be placed between quotes (" ") > > #--------------------------------------------------------------------------- > # General configuration options > #--------------------------------------------------------------------------- > > # The PROJECT_NAME tag is a single word (or a sequence of words surrounded > # by quotes) that should identify the project. > > PROJECT_NAME = > > # The PROJECT_NUMBER tag can be used to enter a project or revision number. > # This could be handy for archiving the generated documentation or > # if some version control system is used. > > PROJECT_NUMBER = > > # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) > # base path where the generated documentation will be put. > # If a relative path is entered, it will be relative to the location > # where doxygen was started. If left blank the current directory will be used. > > OUTPUT_DIRECTORY = > > # The OUTPUT_LANGUAGE tag is used to specify the language in which all > # documentation generated by doxygen is written. Doxygen will use this > # information to generate all constant output in the proper language. > # The default language is English, other supported languages are: > # Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, > # Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian, > # Polish, Portuguese, Brazilian and Slovene. > > OUTPUT_LANGUAGE = English > > # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in > # documentation are documented, even if no documentation was available. > # Private class members and static file members will be hidden unless > # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES > > EXTRACT_ALL = YES > > # If the EXTRACT_PRIVATE tag is set to YES all private members of a class > # will be included in the documentation. > > EXTRACT_PRIVATE = YES > > # If the EXTRACT_STATIC tag is set to YES all static members of a file > # will be included in the documentation. > > EXTRACT_STATIC = YES > > # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all > # undocumented members of documented classes, files or namespaces. > # If set to NO (the default) these members will be included in the > # various overviews, but no documentation section is generated. > # This option has no effect if EXTRACT_ALL is enabled. > > HIDE_UNDOC_MEMBERS = NO > > # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all > # undocumented classes that are normally visible in the class hierarchy. > # If set to NO (the default) these class will be included in the various > # overviews. This option has no effect if EXTRACT_ALL is enabled. > > HIDE_UNDOC_CLASSES = NO > > # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will > # include brief member descriptions after the members that are listed in > # the file and class documentation (similar to JavaDoc). > # Set to NO to disable this. > > BRIEF_MEMBER_DESC = YES > > # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend > # the brief description of a member or function before the detailed description. > # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the > # brief descriptions will be completely suppressed. > > REPEAT_BRIEF = YES > > # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then > # Doxygen will generate a detailed section even if there is only a brief > # description. > > ALWAYS_DETAILED_SEC = NO > > # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full > # path before files name in the file list and in the header files. If set > # to NO the shortest path that makes the file name unique will be used. > > FULL_PATH_NAMES = NO > > # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag > # can be used to strip a user defined part of the path. Stripping is > # only done if one of the specified strings matches the left-hand part of > # the path. It is allowed to use relative paths in the argument list. > > STRIP_FROM_PATH = > > # The INTERNAL_DOCS tag determines if documentation > # that is typed after a \internal command is included. If the tag is set > # to NO (the default) then the documentation will be excluded. > # Set it to YES to include the internal documentation. > > INTERNAL_DOCS = NO > > # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will > # generate a class diagram (in Html and LaTeX) for classes with base or > # super classes. Setting the tag to NO turns the diagrams off. > > CLASS_DIAGRAMS = YES > > # If the SOURCE_BROWSER tag is set to YES then a list of source files will > # be generated. Documented entities will be cross-referenced with these sources. > > SOURCE_BROWSER = NO > > # Setting the INLINE_SOURCES tag to YES will include the body > # of functions and classes directly in the documentation. > > INLINE_SOURCES = NO > > # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct > # doxygen to hide any special comment blocks from generated source code > # fragments. Normal C and C++ comments will always remain visible. > > STRIP_CODE_COMMENTS = YES > > # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate > # file names in lower case letters. If set to YES upper case letters are also > # allowed. This is useful if you have classes or files whose names only differ > # in case and if your file system supports case sensitive file names. Windows > # users are adviced to set this option to NO. > > CASE_SENSE_NAMES = YES > > # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter > # (but less readable) file names. This can be useful is your file systems > # doesn't support long names like on DOS, Mac, or CD-ROM. > > SHORT_NAMES = NO > > # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen > # will show members with their full class and namespace scopes in the > # documentation. If set to YES the scope will be hidden. > > HIDE_SCOPE_NAMES = NO > > # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen > # will generate a verbatim copy of the header file for each class for > # which an include is specified. Set to NO to disable this. > > VERBATIM_HEADERS = YES > > # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen > # will put list of the files that are included by a file in the documentation > # of that file. > > SHOW_INCLUDE_FILES = YES > > # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen > # will interpret the first line (until the first dot) of a JavaDoc-style > # comment as the brief description. If set to NO, the JavaDoc > # comments will behave just like the Qt-style comments (thus requiring an > # explict @brief command for a brief description. > > JAVADOC_AUTOBRIEF = NO > > # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented > # member inherits the documentation from any documented member that it > # reimplements. > > INHERIT_DOCS = YES > > # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] > # is inserted in the documentation for inline members. > > INLINE_INFO = YES > > # If the SORT_MEMBER_DOCS tag... [truncated message content] |
From: Ronald v. E. <eij...@iq...> - 2001-05-18 09:58:28
|
DQpQYXRyaWNrIE9obHkgd3JvdGU6DQo+IE1lbWJlciBncm91cHMgKGkuZS4gZ3JvdXBpbmcgb2Yg c3RydWN0L2NsYXNzIG1lbWJlcnMpIHdvcmtzIGFzDQo+IGJlZm9yZS4NCg0KQXJlIHRoZXJlIGFu eSBwbGFucyB0byBhZGQgdGhlIGN1cnJlbnQgZ3JvdXBpbmcgZnVuY3Rpb25zIGZvciBNZW1iZXIg Z3JvdXBzIGFzd2VsbD8NCg0KQyd5YSwNCg0KICAgIFJvbmFsZA0K |
From: Patrick O. <Pat...@pa...> - 2001-05-18 09:24:02
|
On Thu, May 17, 2001 at 09:34:56PM +0200, Dimitri van Heesch wrote: > Hi, > > I've commited a new release to CVS. Here's the changelog: > ------------------------------------------------------------------------ [...] > + ADD: Added man patch by Patrick Ohly which allows to create freestyle > man pages using \page and puts man page with non-default extension > in the correct directory. Thanks. Any reason why the MAN_LINKS extension was not included (yet)? In case you still want to included, please find attached a recent diff against this CVS version. I will also resend the latest patches for the new grouping, so that they apply to the current CVS version. Bye, Patrick -- // pallas GmbH ............ Patrick Ohly ............. Hermuelheimer Str. 10 Software-Engineer D-50321 Bruehl, Germany po...@pa... fax +49-(0)2232-1896-29 phone +49-(0)2232-1896-30 http://www.pallas.com .......................................................... |
From: <ph...@ra...> - 2001-05-18 07:56:51
|
Good Morning, Well that helped a lot, may you help me once again? Now I get some Linker errors (see logfile) affecting class or namespace Config ... Best Regards, Peter |
From: Victor A. W. Jr. <va...@ru...> - 2001-05-18 01:47:55
|
I'm using Doxygen on Win2k with NO problems. I use the version that is=20 already built. At Thursday 2001/05/17 12:45, you wrote: >On Fri, May 18, 2001 at 03:59:26PM -0700, Peter Thie=DF wrote: > > I am using doxygen quite a bit among Win NT 4.0, now I started using w2k > > professinell and doxygen refused to work proper. I looked into the FAQ= but > > did not find anything about w2k. > > I am currently using version 1.2.5 of doxygen. > >Doxygen should work on w2k just like it does on NT. > > > > > As a seccond step I tried (for the first time) to compile the actual=20 > tarball > > version but it failed, see appended file - I would be glad for any hints > > resolving this. > >For those that do not read images: >Your error was: > >bison: Bad address > >This error is caused by bison not being able to find a /tmp dir (yes the >error message is not very helpful). To fix this start a bash shell >(included with cygwin) and type "mkdir /tmp". After that all should be >fine again. > > > Further more I'd be intrested in experiences using doxygen among windows > > 2000. > > > > The only output doxygen generates at my w2k installation is the= following: > > Searching for include files... > > Searching for example files... > > Searching for images... > > Searching for files to exclude > > Reading input files... > > > > It seams that doxygen doesn't find anything to do on W2K, whereas it did= on > > NT 4.0 .... > >I'm sure this is some configuration issue. > >Regards, > Dimitri > >_______________________________________________ >Doxygen-users mailing list >Dox...@li... >http://lists.sourceforge.net/lists/listinfo/doxygen-users Victor A. Wagner, Jr. PGP RSA fingerprint =3D 4D20 EBF6 0101 B069 3817 8DBF C846 E47A PGP D-H fingerprint =3D 98BC 65E3 1A19 43EC 3908 65B9 F755 E6F4 63BB 9D93 The five most dangerous words in the English language: "There oughta be a law" |